Attachment "1334947-8-5.patch" to
ticket [1334947fff]
added by
msofer
2005-11-05 05:42:49.
0000: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 Index: generic/t
0010: 63 6c 42 69 6e 61 72 79 2e 63 0a 3d 3d 3d 3d 3d clBinary.c.=====
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0050: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 ==============.R
0060: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f CS file: /cvsroo
0070: 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 t/tcl/tcl/generi
0080: 63 2f 74 63 6c 42 69 6e 61 72 79 2e 63 2c 76 0a c/tclBinary.c,v.
0090: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
00a0: 69 6f 6e 20 31 2e 32 36 0a 64 69 66 66 20 2d 75 ion 1.26.diff -u
00b0: 20 2d 72 31 2e 32 36 20 74 63 6c 42 69 6e 61 72 -r1.26 tclBinar
00c0: 79 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f y.c.--- generic/
00d0: 74 63 6c 42 69 6e 61 72 79 2e 63 09 32 37 20 53 tclBinary.c.27 S
00e0: 65 70 20 32 30 30 35 20 31 35 3a 32 30 3a 33 35 ep 2005 15:20:35
00f0: 20 2d 30 30 30 30 09 31 2e 32 36 0a 2b 2b 2b 20 -0000.1.26.+++
0100: 67 65 6e 65 72 69 63 2f 74 63 6c 42 69 6e 61 72 generic/tclBinar
0110: 79 2e 63 09 34 20 4e 6f 76 20 32 30 30 35 20 32 y.c.4 Nov 2005 2
0120: 32 3a 32 36 3a 32 36 20 2d 30 30 30 30 0a 40 40 2:26:26 -0000.@@
0130: 20 2d 31 30 38 35 2c 37 20 2b 31 30 38 35 2c 36 -1085,7 +1085,6
0140: 20 40 40 0a 20 09 09 61 72 67 2b 2b 3b 0a 20 09 @@. ..arg++;. .
0150: 09 69 66 20 28 72 65 73 75 6c 74 50 74 72 20 3d .if (resultPtr =
0160: 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 09 20 20 20 = NULL) {. ..
0170: 20 44 65 6c 65 74 65 53 63 61 6e 4e 75 6d 62 65 DeleteScanNumbe
0180: 72 43 61 63 68 65 28 6e 75 6d 62 65 72 43 61 63 rCache(numberCac
0190: 68 65 50 74 72 29 3b 0a 2d 09 09 20 20 20 20 54 hePtr);.-.. T
01a0: 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 cl_DecrRefCount(
01b0: 76 61 6c 75 65 50 74 72 29 3b 09 2f 2a 20 75 6e valuePtr);./* un
01c0: 6e 65 65 64 65 64 20 2a 2f 0a 20 09 09 20 20 20 needed */. ..
01d0: 20 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f return TCL_ERRO
01e0: 52 3b 0a 20 09 09 7d 0a 20 09 09 6f 66 66 73 65 R;. ..}. ..offse
01f0: 74 20 2b 3d 20 63 6f 75 6e 74 3b 0a 40 40 20 2d t += count;.@@ -
0200: 31 31 34 30 2c 37 20 2b 31 31 33 39 2c 36 20 40 1140,7 +1139,6 @
0210: 40 0a 20 09 09 61 72 67 2b 2b 3b 0a 20 09 09 69 @. ..arg++;. ..i
0220: 66 20 28 72 65 73 75 6c 74 50 74 72 20 3d 3d 20 f (resultPtr ==
0230: 4e 55 4c 4c 29 20 7b 0a 20 09 09 20 20 20 20 44 NULL) {. .. D
0240: 65 6c 65 74 65 53 63 61 6e 4e 75 6d 62 65 72 43 eleteScanNumberC
0250: 61 63 68 65 28 6e 75 6d 62 65 72 43 61 63 68 65 ache(numberCache
0260: 50 74 72 29 3b 0a 2d 09 09 20 20 20 20 54 63 6c Ptr);.-.. Tcl
0270: 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 76 61 _DecrRefCount(va
0280: 6c 75 65 50 74 72 29 3b 09 2f 2a 20 75 6e 6e 65 luePtr);./* unne
0290: 65 64 65 64 20 2a 2f 0a 20 09 09 20 20 20 20 72 eded */. .. r
02a0: 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b eturn TCL_ERROR;
02b0: 0a 20 09 09 7d 0a 20 09 09 6f 66 66 73 65 74 20 . ..}. ..offset
02c0: 2b 3d 20 28 63 6f 75 6e 74 20 2b 20 37 20 29 20 += (count + 7 )
02d0: 2f 20 38 3b 0a 40 40 20 2d 31 31 39 37 2c 37 20 / 8;.@@ -1197,7
02e0: 2b 31 31 39 35 2c 36 20 40 40 0a 20 09 09 61 72 +1195,6 @@. ..ar
02f0: 67 2b 2b 3b 0a 20 09 09 69 66 20 28 72 65 73 75 g++;. ..if (resu
0300: 6c 74 50 74 72 20 3d 3d 20 4e 55 4c 4c 29 20 7b ltPtr == NULL) {
0310: 0a 20 09 09 20 20 20 20 44 65 6c 65 74 65 53 63 . .. DeleteSc
0320: 61 6e 4e 75 6d 62 65 72 43 61 63 68 65 28 6e 75 anNumberCache(nu
0330: 6d 62 65 72 43 61 63 68 65 50 74 72 29 3b 0a 2d mberCachePtr);.-
0340: 09 09 20 20 20 20 54 63 6c 5f 44 65 63 72 52 65 .. Tcl_DecrRe
0350: 66 43 6f 75 6e 74 28 76 61 6c 75 65 50 74 72 29 fCount(valuePtr)
0360: 3b 09 2f 2a 20 75 6e 6e 65 65 64 65 64 20 2a 2f ;./* unneeded */
0370: 0a 20 09 09 20 20 20 20 72 65 74 75 72 6e 20 54 . .. return T
0380: 43 4c 5f 45 52 52 4f 52 3b 0a 20 09 09 7d 0a 20 CL_ERROR;. ..}.
0390: 09 09 6f 66 66 73 65 74 20 2b 3d 20 28 63 6f 75 ..offset += (cou
03a0: 6e 74 20 2b 20 31 29 20 2f 20 32 3b 0a 40 40 20 nt + 1) / 2;.@@
03b0: 2d 31 32 36 37 2c 37 20 2b 31 32 36 34 2c 36 20 -1267,7 +1264,6
03c0: 40 40 0a 20 09 09 61 72 67 2b 2b 3b 0a 20 09 09 @@. ..arg++;. ..
03d0: 69 66 20 28 72 65 73 75 6c 74 50 74 72 20 3d 3d if (resultPtr ==
03e0: 20 4e 55 4c 4c 29 20 7b 0a 20 09 09 20 20 20 20 NULL) {. ..
03f0: 44 65 6c 65 74 65 53 63 61 6e 4e 75 6d 62 65 72 DeleteScanNumber
0400: 43 61 63 68 65 28 6e 75 6d 62 65 72 43 61 63 68 Cache(numberCach
0410: 65 50 74 72 29 3b 0a 2d 09 09 20 20 20 20 54 63 ePtr);.-.. Tc
0420: 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 76 l_DecrRefCount(v
0430: 61 6c 75 65 50 74 72 29 3b 09 2f 2a 20 75 6e 6e aluePtr);./* unn
0440: 65 65 64 65 64 20 2a 2f 0a 20 09 09 20 20 20 20 eeded */. ..
0450: 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 return TCL_ERROR
0460: 3b 0a 20 09 09 7d 0a 20 09 09 62 72 65 61 6b 3b ;. ..}. ..break;
0470: 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f .Index: generic/
0480: 74 63 6c 43 6d 64 41 48 2e 63 0a 3d 3d 3d 3d 3d tclCmdAH.c.=====
0490: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 ==============.R
04d0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f CS file: /cvsroo
04e0: 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 t/tcl/tcl/generi
04f0: 63 2f 74 63 6c 43 6d 64 41 48 2e 63 2c 76 0a 72 c/tclCmdAH.c,v.r
0500: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 etrieving revisi
0510: 6f 6e 20 31 2e 36 39 0a 64 69 66 66 20 2d 75 20 on 1.69.diff -u
0520: 2d 72 31 2e 36 39 20 74 63 6c 43 6d 64 41 48 2e -r1.69 tclCmdAH.
0530: 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63 c.--- generic/tc
0540: 6c 43 6d 64 41 48 2e 63 09 38 20 4f 63 74 20 32 lCmdAH.c.8 Oct 2
0550: 30 30 35 20 31 34 3a 34 32 3a 34 34 20 2d 30 30 005 14:42:44 -00
0560: 30 30 09 31 2e 36 39 0a 2b 2b 2b 20 67 65 6e 65 00.1.69.+++ gene
0570: 72 69 63 2f 74 63 6c 43 6d 64 41 48 2e 63 09 34 ric/tclCmdAH.c.4
0580: 20 4e 6f 76 20 32 30 30 35 20 32 32 3a 32 36 3a Nov 2005 22:26:
0590: 32 37 20 2d 30 30 30 30 0a 40 40 20 2d 32 36 37 27 -0000.@@ -267
05a0: 2c 37 20 2b 32 36 37 2c 36 20 40 40 0a 20 09 54 ,7 +267,6 @@. .T
05b0: 63 6c 5f 4f 62 6a 20 2a 6f 70 74 69 6f 6e 73 20 cl_Obj *options
05c0: 3d 20 54 63 6c 5f 47 65 74 52 65 74 75 72 6e 4f = Tcl_GetReturnO
05d0: 70 74 69 6f 6e 73 28 69 6e 74 65 72 70 2c 20 72 ptions(interp, r
05e0: 65 73 75 6c 74 29 3b 0a 20 09 69 66 20 28 4e 55 esult);. .if (NU
05f0: 4c 4c 20 3d 3d 20 54 63 6c 5f 4f 62 6a 53 65 74 LL == Tcl_ObjSet
0600: 56 61 72 32 28 69 6e 74 65 72 70 2c 20 6f 70 74 Var2(interp, opt
0610: 69 6f 6e 56 61 72 4e 61 6d 65 50 74 72 2c 20 4e ionVarNamePtr, N
0620: 55 4c 4c 2c 0a 20 09 09 6f 70 74 69 6f 6e 73 2c ULL,. ..options,
0630: 20 30 29 29 20 7b 0a 2d 09 20 20 20 20 54 63 6c 0)) {.-. Tcl
0640: 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 6f 70 _DecrRefCount(op
0650: 74 69 6f 6e 73 29 3b 0a 20 09 20 20 20 20 54 63 tions);. . Tc
0660: 6c 5f 52 65 73 65 74 52 65 73 75 6c 74 28 69 6e l_ResetResult(in
0670: 74 65 72 70 29 3b 0a 20 09 20 20 20 20 54 63 6c terp);. . Tcl
0680: 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28 69 6e _AppendResult(in
0690: 74 65 72 70 2c 0a 20 09 09 20 20 20 20 22 63 6f terp,. .. "co
06a0: 75 6c 64 6e 27 74 20 73 61 76 65 20 72 65 74 75 uldn't save retu
06b0: 72 6e 20 6f 70 74 69 6f 6e 73 20 69 6e 20 76 61 rn options in va
06c0: 72 69 61 62 6c 65 22 2c 20 4e 55 4c 4c 29 3b 0a riable", NULL);.
06d0: 40 40 20 2d 31 34 38 35 2c 37 20 2b 31 34 38 34 @@ -1485,7 +1484
06e0: 2c 36 20 40 40 0a 20 20 20 20 20 76 61 6c 75 65 ,6 @@. value
06f0: 20 3d 20 28 6f 62 6a 65 63 74 29 3b 20 5c 0a 20 = (object); \.
0700: 20 20 20 20 69 66 20 28 54 63 6c 5f 4f 62 6a 53 if (Tcl_ObjS
0710: 65 74 56 61 72 32 28 69 6e 74 65 72 70 2c 76 61 etVar2(interp,va
0720: 72 4e 61 6d 65 2c 66 69 65 6c 64 2c 76 61 6c 75 rName,field,valu
0730: 65 2c 54 43 4c 5f 4c 45 41 56 45 5f 45 52 52 5f e,TCL_LEAVE_ERR_
0740: 4d 53 47 29 3d 3d 4e 55 4c 4c 29 20 7b 20 5c 0a MSG)==NULL) { \.
0750: 20 09 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 .Tcl_DecrRefCou
0760: 6e 74 28 66 69 65 6c 64 29 3b 20 5c 0a 2d 09 54 nt(field); \.-.T
0770: 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 cl_DecrRefCount(
0780: 76 61 6c 75 65 29 3b 20 5c 0a 20 09 72 65 74 75 value); \. .retu
0790: 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 20 5c 0a rn TCL_ERROR; \.
07a0: 20 20 20 20 20 7d 0a 20 0a 40 40 20 2d 31 38 30 }. .@@ -180
07b0: 35 2c 32 30 20 2b 31 38 30 33 2c 31 35 20 40 40 5,20 +1803,15 @@
07c0: 0a 20 09 20 20 20 20 66 6f 72 20 28 76 3d 30 20 . . for (v=0
07d0: 3b 20 76 3c 76 61 72 63 4c 69 73 74 5b 69 5d 20 ; v<varcList[i]
07e0: 3b 20 76 2b 2b 29 20 7b 0a 20 09 09 69 6e 74 20 ; v++) {. ..int
07f0: 6b 20 3d 20 69 6e 64 65 78 5b 69 5d 2b 2b 3b 0a k = index[i]++;.
0800: 20 09 09 54 63 6c 5f 4f 62 6a 20 2a 76 61 6c 75 ..Tcl_Obj *valu
0810: 65 50 74 72 2c 20 2a 76 61 72 56 61 6c 75 65 50 ePtr, *varValueP
0820: 74 72 3b 0a 2d 09 09 69 6e 74 20 69 73 45 6d 70 tr;.-..int isEmp
0830: 74 79 4f 62 6a 20 3d 20 30 3b 0a 20 0a 20 09 09 tyObj = 0;. . ..
0840: 69 66 20 28 6b 20 3c 20 61 72 67 63 4c 69 73 74 if (k < argcList
0850: 5b 69 5d 29 20 7b 0a 20 09 09 20 20 20 20 76 61 [i]) {. .. va
0860: 6c 75 65 50 74 72 20 3d 20 61 72 67 76 4c 69 73 luePtr = argvLis
0870: 74 5b 69 5d 5b 6b 5d 3b 0a 20 09 09 7d 20 65 6c t[i][k];. ..} el
0880: 73 65 20 7b 0a 20 09 09 20 20 20 20 76 61 6c 75 se {. .. valu
0890: 65 50 74 72 20 3d 20 54 63 6c 5f 4e 65 77 4f 62 ePtr = Tcl_NewOb
08a0: 6a 28 29 3b 20 2f 2a 20 65 6d 70 74 79 20 73 74 j(); /* empty st
08b0: 72 69 6e 67 20 2a 2f 0a 2d 09 09 20 20 20 20 69 ring */.-.. i
08c0: 73 45 6d 70 74 79 4f 62 6a 20 3d 20 31 3b 0a 20 sEmptyObj = 1;.
08d0: 09 09 7d 0a 20 09 09 76 61 72 56 61 6c 75 65 50 ..}. ..varValueP
08e0: 74 72 20 3d 20 54 63 6c 5f 4f 62 6a 53 65 74 56 tr = Tcl_ObjSetV
08f0: 61 72 32 28 69 6e 74 65 72 70 2c 20 76 61 72 76 ar2(interp, varv
0900: 4c 69 73 74 5b 69 5d 5b 76 5d 2c 0a 20 09 09 09 List[i][v],. ...
0910: 4e 55 4c 4c 2c 20 76 61 6c 75 65 50 74 72 2c 20 NULL, valuePtr,
0920: 30 29 3b 0a 20 09 09 69 66 20 28 76 61 72 56 61 0);. ..if (varVa
0930: 6c 75 65 50 74 72 20 3d 3d 20 4e 55 4c 4c 29 20 luePtr == NULL)
0940: 7b 0a 2d 09 09 20 20 20 20 69 66 20 28 69 73 45 {.-.. if (isE
0950: 6d 70 74 79 4f 62 6a 29 20 7b 0a 2d 09 09 09 54 mptyObj) {.-...T
0960: 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 cl_DecrRefCount(
0970: 76 61 6c 75 65 50 74 72 29 3b 0a 2d 09 09 20 20 valuePtr);.-..
0980: 20 20 7d 0a 20 09 09 20 20 20 20 54 63 6c 5f 52 }. .. Tcl_R
0990: 65 73 65 74 52 65 73 75 6c 74 28 69 6e 74 65 72 esetResult(inter
09a0: 70 29 3b 0a 20 09 09 20 20 20 20 54 63 6c 5f 41 p);. .. Tcl_A
09b0: 70 70 65 6e 64 52 65 73 75 6c 74 28 69 6e 74 65 ppendResult(inte
09c0: 72 70 2c 20 22 63 6f 75 6c 64 6e 27 74 20 73 65 rp, "couldn't se
09d0: 74 20 6c 6f 6f 70 20 76 61 72 69 61 62 6c 65 3a t loop variable:
09e0: 20 5c 22 22 2c 0a 20 09 09 09 20 20 20 20 54 63 \"",. ... Tc
09f0: 6c 47 65 74 53 74 72 69 6e 67 28 76 61 72 76 4c lGetString(varvL
0a00: 69 73 74 5b 69 5d 5b 76 5d 29 2c 20 22 5c 22 22 ist[i][v]), "\""
0a10: 2c 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c 29 , (char *) NULL)
0a20: 3b 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 ;.Index: generic
0a30: 2f 74 63 6c 43 6d 64 49 4c 2e 63 0a 3d 3d 3d 3d /tclCmdIL.c.====
0a40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0a50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0a60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0a70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
0a80: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f RCS file: /cvsro
0a90: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 ot/tcl/tcl/gener
0aa0: 69 63 2f 74 63 6c 43 6d 64 49 4c 2e 63 2c 76 0a ic/tclCmdIL.c,v.
0ab0: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
0ac0: 69 6f 6e 20 31 2e 38 33 0a 64 69 66 66 20 2d 75 ion 1.83.diff -u
0ad0: 20 2d 72 31 2e 38 33 20 74 63 6c 43 6d 64 49 4c -r1.83 tclCmdIL
0ae0: 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 .c.--- generic/t
0af0: 63 6c 43 6d 64 49 4c 2e 63 09 31 39 20 4f 63 74 clCmdIL.c.19 Oct
0b00: 20 32 30 30 35 20 31 38 3a 33 39 3a 35 38 20 2d 2005 18:39:58 -
0b10: 30 30 30 30 09 31 2e 38 33 0a 2b 2b 2b 20 67 65 0000.1.83.+++ ge
0b20: 6e 65 72 69 63 2f 74 63 6c 43 6d 64 49 4c 2e 63 neric/tclCmdIL.c
0b30: 09 34 20 4e 6f 76 20 32 30 30 35 20 32 32 3a 32 .4 Nov 2005 22:2
0b40: 36 3a 32 39 20 2d 30 30 30 30 0a 40 40 20 2d 31 6:29 -0000.@@ -1
0b50: 30 31 32 2c 37 20 2b 31 30 31 32 2c 36 20 40 40 012,7 +1012,6 @@
0b60: 0a 20 09 09 76 61 6c 75 65 4f 62 6a 50 74 72 20 . ..valueObjPtr
0b70: 3d 20 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 = Tcl_ObjSetVar2
0b80: 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 34 5d (interp, objv[4]
0b90: 2c 20 4e 55 4c 4c 2c 0a 20 09 09 09 6e 75 6c 6c , NULL,. ...null
0ba0: 4f 62 6a 50 74 72 2c 20 30 29 3b 0a 20 09 09 69 ObjPtr, 0);. ..i
0bb0: 66 20 28 76 61 6c 75 65 4f 62 6a 50 74 72 20 3d f (valueObjPtr =
0bc0: 3d 20 4e 55 4c 4c 29 20 7b 0a 2d 09 09 20 20 20 = NULL) {.-..
0bd0: 20 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e Tcl_DecrRefCoun
0be0: 74 28 6e 75 6c 6c 4f 62 6a 50 74 72 29 3b 20 2f t(nullObjPtr); /
0bf0: 2a 20 66 72 65 65 20 75 6e 6e 65 65 64 65 64 20 * free unneeded
0c00: 6f 62 6a 20 2a 2f 0a 20 09 09 20 20 20 20 67 6f obj */. .. go
0c10: 74 6f 20 64 65 66 53 74 6f 72 65 45 72 72 6f 72 to defStoreError
0c20: 3b 0a 20 09 09 7d 0a 20 09 09 54 63 6c 5f 53 65 ;. ..}. ..Tcl_Se
0c30: 74 4f 62 6a 52 65 73 75 6c 74 28 69 6e 74 65 72 tObjResult(inter
0c40: 70 2c 20 54 63 6c 5f 4e 65 77 49 6e 74 4f 62 6a p, Tcl_NewIntObj
0c50: 28 30 29 29 3b 0a 40 40 20 2d 32 32 36 30 2c 37 (0));.@@ -2260,7
0c60: 20 2b 32 32 35 39 2c 38 20 40 40 0a 20 20 20 20 +2259,8 @@.
0c70: 20 54 63 6c 5f 4f 62 6a 20 2a 2a 6c 69 73 74 4f Tcl_Obj **listO
0c80: 62 6a 76 3b 09 09 2f 2a 20 54 68 65 20 63 6f 6e bjv;../* The con
0c90: 74 65 6e 74 73 20 6f 66 20 74 68 65 20 6c 69 73 tents of the lis
0ca0: 74 2e 20 2a 2f 0a 20 20 20 20 20 69 6e 74 20 6c t. */. int l
0cb0: 69 73 74 4f 62 6a 63 3b 09 09 2f 2a 20 54 68 65 istObjc;../* The
0cc0: 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 6c length of the l
0cd0: 69 73 74 2e 20 2a 2f 0a 20 20 20 20 20 69 6e 74 ist. */. int
0ce0: 20 69 3b 0a 2d 0a 2b 20 20 20 20 54 63 6c 5f 4f i;.-.+ Tcl_O
0cf0: 62 6a 20 2a 72 65 73 50 74 72 3b 0a 2b 20 20 20 bj *resPtr;.+
0d00: 20 0a 20 20 20 20 20 69 66 20 28 6f 62 6a 63 20 . if (objc
0d10: 3c 20 33 29 20 7b 0a 20 09 54 63 6c 5f 57 72 6f < 3) {. .Tcl_Wro
0d20: 6e 67 4e 75 6d 41 72 67 73 28 69 6e 74 65 72 70 ngNumArgs(interp
0d30: 2c 20 31 2c 20 6f 62 6a 76 2c 20 22 6c 69 73 74 , 1, objv, "list
0d40: 20 76 61 72 6e 61 6d 65 20 3f 76 61 72 6e 61 6d varname ?varnam
0d50: 65 20 2e 2e 2e 3f 22 29 3b 0a 20 09 72 65 74 75 e ...?");. .retu
0d60: 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 40 40 rn TCL_ERROR;.@@
0d70: 20 2d 32 32 39 34 2c 31 35 20 2b 32 32 39 34 2c -2294,15 +2294,
0d80: 31 35 20 40 40 0a 20 09 20 2a 2f 0a 20 0a 20 09 15 @@. . */. . .
0d90: 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 Tcl_IncrRefCount
0da0: 28 76 61 6c 75 65 4f 62 6a 29 3b 0a 2d 09 69 66 (valueObj);.-.if
0db0: 20 28 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 (Tcl_ObjSetVar2
0dc0: 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 69 2b (interp, objv[i+
0dd0: 32 5d 2c 20 4e 55 4c 4c 2c 20 76 61 6c 75 65 4f 2], NULL, valueO
0de0: 62 6a 2c 0a 2d 09 09 54 43 4c 5f 4c 45 41 56 45 bj,.-..TCL_LEAVE
0df0: 5f 45 52 52 5f 4d 53 47 29 20 3d 3d 20 4e 55 4c _ERR_MSG) == NUL
0e00: 4c 29 20 7b 0a 2d 09 20 20 20 20 54 63 6c 5f 44 L) {.-. Tcl_D
0e10: 65 63 72 52 65 66 43 6f 75 6e 74 28 76 61 6c 75 ecrRefCount(valu
0e20: 65 4f 62 6a 29 3b 0a 2b 09 72 65 73 50 74 72 20 eObj);.+.resPtr
0e30: 3d 20 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 = Tcl_ObjSetVar2
0e40: 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 69 2b (interp, objv[i+
0e50: 32 5d 2c 20 4e 55 4c 4c 2c 20 76 61 6c 75 65 4f 2], NULL, valueO
0e60: 62 6a 2c 0a 2b 09 09 54 43 4c 5f 4c 45 41 56 45 bj,.+..TCL_LEAVE
0e70: 5f 45 52 52 5f 4d 53 47 29 3b 0a 2b 09 54 63 6c _ERR_MSG);.+.Tcl
0e80: 44 65 63 72 52 65 66 43 6f 75 6e 74 28 76 61 6c DecrRefCount(val
0e90: 75 65 4f 62 6a 29 3b 0a 2b 09 69 66 20 28 72 65 ueObj);.+.if (re
0ea0: 73 50 74 72 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a sPtr == NULL) {.
0eb0: 20 09 20 20 20 20 69 66 20 28 65 6d 70 74 79 4f . if (emptyO
0ec0: 62 6a 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 bj != NULL) {. .
0ed0: 09 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e .Tcl_DecrRefCoun
0ee0: 74 28 65 6d 70 74 79 4f 62 6a 29 3b 0a 20 09 20 t(emptyObj);. .
0ef0: 20 20 20 7d 0a 20 09 20 20 20 20 72 65 74 75 72 }. . retur
0f00: 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 09 7d n TCL_ERROR;. .}
0f10: 0a 2d 09 54 63 6c 5f 44 65 63 72 52 65 66 43 6f .-.Tcl_DecrRefCo
0f20: 75 6e 74 28 76 61 6c 75 65 4f 62 6a 29 3b 0a 20 unt(valueObj);.
0f30: 20 20 20 20 7d 0a 20 20 20 20 20 69 66 20 28 65 }. if (e
0f40: 6d 70 74 79 4f 62 6a 20 21 3d 20 4e 55 4c 4c 29 mptyObj != NULL)
0f50: 20 7b 0a 20 09 54 63 6c 5f 44 65 63 72 52 65 66 {. .Tcl_DecrRef
0f60: 43 6f 75 6e 74 28 65 6d 70 74 79 4f 62 6a 29 3b Count(emptyObj);
0f70: 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f .Index: generic/
0f80: 74 63 6c 43 6d 64 4d 5a 2e 63 0a 3d 3d 3d 3d 3d tclCmdMZ.c.=====
0f90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0fa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0fb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0fc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 ==============.R
0fd0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f CS file: /cvsroo
0fe0: 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 t/tcl/tcl/generi
0ff0: 63 2f 74 63 6c 43 6d 64 4d 5a 2e 63 2c 76 0a 72 c/tclCmdMZ.c,v.r
1000: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 etrieving revisi
1010: 6f 6e 20 31 2e 31 33 32 0a 64 69 66 66 20 2d 75 on 1.132.diff -u
1020: 20 2d 72 31 2e 31 33 32 20 74 63 6c 43 6d 64 4d -r1.132 tclCmdM
1030: 5a 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f Z.c.--- generic/
1040: 74 63 6c 43 6d 64 4d 5a 2e 63 09 38 20 4f 63 74 tclCmdMZ.c.8 Oct
1050: 20 32 30 30 35 20 31 34 3a 34 32 3a 34 34 20 2d 2005 14:42:44 -
1060: 30 30 30 30 09 31 2e 31 33 32 0a 2b 2b 2b 20 67 0000.1.132.+++ g
1070: 65 6e 65 72 69 63 2f 74 63 6c 43 6d 64 4d 5a 2e eneric/tclCmdMZ.
1080: 63 09 34 20 4e 6f 76 20 32 30 30 35 20 32 32 3a c.4 Nov 2005 22:
1090: 32 36 3a 33 31 20 2d 30 30 30 30 0a 40 40 20 2d 26:31 -0000.@@ -
10a0: 33 36 37 2c 37 20 2b 33 36 37 2c 36 20 40 40 0a 367,7 +367,6 @@.
10b0: 20 09 09 54 63 6c 5f 4f 62 6a 20 2a 76 61 6c 75 ..Tcl_Obj *valu
10c0: 65 50 74 72 3b 0a 20 09 09 76 61 6c 75 65 50 74 ePtr;. ..valuePt
10d0: 72 20 3d 20 54 63 6c 5f 4f 62 6a 53 65 74 56 61 r = Tcl_ObjSetVa
10e0: 72 32 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b r2(interp, objv[
10f0: 69 5d 2c 20 4e 55 4c 4c 2c 20 6e 65 77 50 74 72 i], NULL, newPtr
1100: 2c 20 30 29 3b 0a 20 09 09 69 66 20 28 76 61 6c , 0);. ..if (val
1110: 75 65 50 74 72 20 3d 3d 20 4e 55 4c 4c 29 20 7b uePtr == NULL) {
1120: 0a 2d 09 09 20 20 20 20 54 63 6c 5f 44 65 63 72 .-.. Tcl_Decr
1130: 52 65 66 43 6f 75 6e 74 28 6e 65 77 50 74 72 29 RefCount(newPtr)
1140: 3b 0a 20 09 09 20 20 20 20 54 63 6c 5f 41 70 70 ;. .. Tcl_App
1150: 65 6e 64 52 65 73 75 6c 74 28 69 6e 74 65 72 70 endResult(interp
1160: 2c 20 22 63 6f 75 6c 64 6e 27 74 20 73 65 74 20 , "couldn't set
1170: 76 61 72 69 61 62 6c 65 20 5c 22 22 2c 0a 20 09 variable \"",. .
1180: 09 09 20 20 20 20 54 63 6c 47 65 74 53 74 72 69 .. TclGetStri
1190: 6e 67 28 6f 62 6a 76 5b 69 5d 29 2c 20 22 5c 22 ng(objv[i]), "\"
11a0: 22 2c 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c ", (char *) NULL
11b0: 29 3b 0a 20 09 09 20 20 20 20 72 65 74 75 72 6e );. .. return
11c0: 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 40 40 20 2d TCL_ERROR;.@@ -
11d0: 32 37 33 30 2c 37 20 2b 32 37 32 39 2c 36 20 40 2730,7 +2729,6 @
11e0: 40 0a 20 09 09 54 63 6c 4e 65 77 4f 62 6a 28 65 @. ..TclNewObj(e
11f0: 6d 70 74 79 4f 62 6a 29 3b 0a 20 09 09 69 66 20 mptyObj);. ..if
1200: 28 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 28 (Tcl_ObjSetVar2(
1210: 69 6e 74 65 72 70 2c 20 69 6e 64 65 78 56 61 72 interp, indexVar
1220: 4f 62 6a 2c 20 4e 55 4c 4c 2c 20 65 6d 70 74 79 Obj, NULL, empty
1230: 4f 62 6a 2c 0a 20 09 09 09 54 43 4c 5f 4c 45 41 Obj,. ...TCL_LEA
1240: 56 45 5f 45 52 52 5f 4d 53 47 29 20 3d 3d 20 4e VE_ERR_MSG) == N
1250: 55 4c 4c 29 20 7b 0a 2d 09 09 20 20 20 20 54 63 ULL) {.-.. Tc
1260: 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 65 l_DecrRefCount(e
1270: 6d 70 74 79 4f 62 6a 29 3b 0a 20 09 09 20 20 20 mptyObj);. ..
1280: 20 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f return TCL_ERRO
1290: 52 3b 0a 20 09 09 7d 0a 20 09 20 20 20 20 7d 0a R;. ..}. . }.
12a0: 40 40 20 2d 32 37 34 30 2c 39 20 2b 32 37 33 38 @@ -2740,9 +2738
12b0: 2c 36 20 40 40 0a 20 09 09 7d 0a 20 09 09 69 66 ,6 @@. ..}. ..if
12c0: 20 28 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 (Tcl_ObjSetVar2
12d0: 28 69 6e 74 65 72 70 2c 20 6d 61 74 63 68 56 61 (interp, matchVa
12e0: 72 4f 62 6a 2c 20 4e 55 4c 4c 2c 20 65 6d 70 74 rObj, NULL, empt
12f0: 79 4f 62 6a 2c 0a 20 09 09 09 54 43 4c 5f 4c 45 yObj,. ...TCL_LE
1300: 41 56 45 5f 45 52 52 5f 4d 53 47 29 20 3d 3d 20 AVE_ERR_MSG) ==
1310: 4e 55 4c 4c 29 20 7b 0a 2d 09 09 20 20 20 20 69 NULL) {.-.. i
1320: 66 20 28 69 6e 64 65 78 56 61 72 4f 62 6a 20 3d f (indexVarObj =
1330: 3d 20 4e 55 4c 4c 29 20 7b 0a 2d 09 09 09 54 63 = NULL) {.-...Tc
1340: 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 65 l_DecrRefCount(e
1350: 6d 70 74 79 4f 62 6a 29 3b 0a 2d 09 09 20 20 20 mptyObj);.-..
1360: 20 7d 0a 20 09 09 20 20 20 20 72 65 74 75 72 6e }. .. return
1370: 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 09 09 7d TCL_ERROR;. ..}
1380: 0a 20 09 20 20 20 20 7d 0a 40 40 20 2d 32 38 32 . . }.@@ -282
1390: 39 2c 38 20 2b 32 38 32 34 2c 36 20 40 40 0a 20 9,8 +2824,6 @@.
13a0: 09 69 66 20 28 69 6e 64 65 78 56 61 72 4f 62 6a .if (indexVarObj
13b0: 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 20 20 != NULL) {. .
13c0: 20 20 69 66 20 28 54 63 6c 5f 4f 62 6a 53 65 74 if (Tcl_ObjSet
13d0: 56 61 72 32 28 69 6e 74 65 72 70 2c 20 69 6e 64 Var2(interp, ind
13e0: 65 78 56 61 72 4f 62 6a 2c 20 4e 55 4c 4c 2c 20 exVarObj, NULL,
13f0: 69 6e 64 69 63 65 73 4f 62 6a 2c 0a 20 09 09 20 indicesObj,. ..
1400: 20 20 20 54 43 4c 5f 4c 45 41 56 45 5f 45 52 52 TCL_LEAVE_ERR
1410: 5f 4d 53 47 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b _MSG) == NULL) {
1420: 0a 2d 09 09 54 63 6c 5f 44 65 63 72 52 65 66 43 .-..Tcl_DecrRefC
1430: 6f 75 6e 74 28 69 6e 64 69 63 65 73 4f 62 6a 29 ount(indicesObj)
1440: 3b 0a 2d 0a 20 09 09 2f 2a 0a 20 09 09 20 2a 20 ;.-. ../*. .. *
1450: 43 61 72 65 66 75 6c 21 20 43 68 65 63 6b 20 74 Careful! Check t
1460: 6f 20 73 65 65 20 69 66 20 77 65 20 68 61 76 65 o see if we have
1470: 20 61 6c 6c 6f 63 61 74 65 64 20 74 68 65 20 6c allocated the l
1480: 69 73 74 20 6f 66 0a 20 09 09 20 2a 20 6d 61 74 ist of. .. * mat
1490: 63 68 65 64 20 73 74 72 69 6e 67 73 3b 20 69 66 ched strings; if
14a0: 20 73 6f 20 28 62 75 74 20 74 68 65 72 65 20 77 so (but there w
14b0: 61 73 20 61 6e 20 65 72 72 6f 72 20 61 73 73 69 as an error assi
14c0: 67 6e 69 6e 67 0a 40 40 20 2d 32 38 34 38 2c 38 gning.@@ -2848,8
14d0: 20 2b 32 38 34 31 2c 36 20 40 40 0a 20 09 69 66 +2841,6 @@. .if
14e0: 20 28 6d 61 74 63 68 56 61 72 4f 62 6a 20 21 3d (matchVarObj !=
14f0: 20 4e 55 4c 4c 29 20 7b 0a 20 09 20 20 20 20 69 NULL) {. . i
1500: 66 20 28 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 f (Tcl_ObjSetVar
1510: 32 28 69 6e 74 65 72 70 2c 20 6d 61 74 63 68 56 2(interp, matchV
1520: 61 72 4f 62 6a 2c 20 4e 55 4c 4c 2c 20 6d 61 74 arObj, NULL, mat
1530: 63 68 65 73 4f 62 6a 2c 0a 20 09 09 20 20 20 20 chesObj,. ..
1540: 54 43 4c 5f 4c 45 41 56 45 5f 45 52 52 5f 4d 53 TCL_LEAVE_ERR_MS
1550: 47 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 2d 09 G) == NULL) {.-.
1560: 09 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e .Tcl_DecrRefCoun
1570: 74 28 6d 61 74 63 68 65 73 4f 62 6a 29 3b 0a 2d t(matchesObj);.-
1580: 0a 20 09 09 2f 2a 0a 20 09 09 20 2a 20 55 6e 6c . ../*. .. * Unl
1590: 69 6b 65 20 61 62 6f 76 65 2c 20 69 66 20 69 6e ike above, if in
15a0: 64 69 63 65 73 4f 62 6a 20 69 73 20 6e 6f 6e 2d dicesObj is non-
15b0: 4e 55 4c 4c 20 61 74 20 74 68 69 73 20 70 6f 69 NULL at this poi
15c0: 6e 74 2c 20 69 74 0a 20 09 09 20 2a 20 77 69 6c nt, it. .. * wil
15d0: 6c 20 68 61 76 65 20 62 65 65 6e 20 77 72 69 74 l have been writ
15e0: 74 65 6e 20 74 6f 20 61 20 76 61 72 69 61 62 6c ten to a variabl
15f0: 65 20 61 6c 72 65 61 64 79 20 61 6e 64 20 77 69 e already and wi
1600: 6c 6c 20 68 65 6e 63 65 0a 49 6e 64 65 78 3a 20 ll hence.Index:
1610: 67 65 6e 65 72 69 63 2f 74 63 6c 44 69 63 74 4f generic/tclDictO
1620: 62 6a 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d bj.c.===========
1630: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1640: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1650: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1660: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c ========.RCS fil
1670: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f e: /cvsroot/tcl/
1680: 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 44 tcl/generic/tclD
1690: 69 63 74 4f 62 6a 2e 63 2c 76 0a 72 65 74 72 69 ictObj.c,v.retri
16a0: 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 eving revision 1
16b0: 2e 33 38 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e .38.diff -u -r1.
16c0: 33 38 20 74 63 6c 44 69 63 74 4f 62 6a 2e 63 0a 38 tclDictObj.c.
16d0: 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63 6c 44 --- generic/tclD
16e0: 69 63 74 4f 62 6a 2e 63 09 31 20 4e 6f 76 20 32 ictObj.c.1 Nov 2
16f0: 30 30 35 20 31 35 3a 33 30 3a 35 32 20 2d 30 30 005 15:30:52 -00
1700: 30 30 09 31 2e 33 38 0a 2b 2b 2b 20 67 65 6e 65 00.1.38.+++ gene
1710: 72 69 63 2f 74 63 6c 44 69 63 74 4f 62 6a 2e 63 ric/tclDictObj.c
1720: 09 34 20 4e 6f 76 20 32 30 30 35 20 32 32 3a 32 .4 Nov 2005 22:2
1730: 36 3a 33 32 20 2d 30 30 30 30 0a 40 40 20 2d 31 6:32 -0000.@@ -1
1740: 39 36 33 2c 31 38 20 2b 31 39 36 33 2c 31 37 20 963,18 +1963,17
1750: 40 40 0a 20 09 20 20 20 20 54 63 6c 5f 44 65 63 @@. . Tcl_Dec
1760: 72 52 65 66 43 6f 75 6e 74 28 69 6e 63 72 50 74 rRefCount(incrPt
1770: 72 29 3b 0a 20 09 7d 0a 20 20 20 20 20 7d 0a 2d r);. .}. }.-
1780: 20 20 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 Tcl_IncrRefC
1790: 6f 75 6e 74 28 64 69 63 74 50 74 72 29 3b 0a 20 ount(dictPtr);.
17a0: 20 20 20 20 69 66 20 28 63 6f 64 65 20 3d 3d 20 if (code ==
17b0: 54 43 4c 5f 4f 4b 29 20 7b 0a 20 09 54 63 6c 5f TCL_OK) {. .Tcl_
17c0: 49 6e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 InvalidateString
17d0: 52 65 70 28 64 69 63 74 50 74 72 29 3b 0a 20 09 Rep(dictPtr);. .
17e0: 76 61 6c 75 65 50 74 72 20 3d 20 54 63 6c 5f 4f valuePtr = Tcl_O
17f0: 62 6a 53 65 74 56 61 72 32 28 69 6e 74 65 72 70 bjSetVar2(interp
1800: 2c 20 6f 62 6a 76 5b 32 5d 2c 20 4e 55 4c 4c 2c , objv[2], NULL,
1810: 0a 20 09 09 64 69 63 74 50 74 72 2c 20 54 43 4c . ..dictPtr, TCL
1820: 5f 4c 45 41 56 45 5f 45 52 52 5f 4d 53 47 29 3b _LEAVE_ERR_MSG);
1830: 0a 20 09 69 66 20 28 76 61 6c 75 65 50 74 72 20 . .if (valuePtr
1840: 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 20 20 20 == NULL) {. .
1850: 20 63 6f 64 65 20 3d 20 54 43 4c 5f 45 52 52 4f code = TCL_ERRO
1860: 52 3b 0a 2b 09 7d 20 65 6c 73 65 20 7b 0a 2b 09 R;.+.} else {.+.
1870: 20 20 20 20 54 63 6c 5f 53 65 74 4f 62 6a 52 65 Tcl_SetObjRe
1880: 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 76 61 6c sult(interp, val
1890: 75 65 50 74 72 29 3b 0a 20 09 7d 0a 2d 20 20 20 uePtr);. .}.-
18a0: 20 7d 0a 2d 20 20 20 20 54 63 6c 5f 44 65 63 72 }.- Tcl_Decr
18b0: 52 65 66 43 6f 75 6e 74 28 64 69 63 74 50 74 72 RefCount(dictPtr
18c0: 29 3b 0a 2d 20 20 20 20 69 66 20 28 63 6f 64 65 );.- if (code
18d0: 20 3d 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 2d 09 == TCL_OK) {.-.
18e0: 54 63 6c 5f 53 65 74 4f 62 6a 52 65 73 75 6c 74 Tcl_SetObjResult
18f0: 28 69 6e 74 65 72 70 2c 20 76 61 6c 75 65 50 74 (interp, valuePt
1900: 72 29 3b 0a 2b 20 20 20 20 7d 20 65 6c 73 65 20 r);.+ } else
1910: 69 66 20 28 64 69 63 74 50 74 72 2d 3e 72 65 66 if (dictPtr->ref
1920: 43 6f 75 6e 74 20 3d 3d 20 30 29 20 7b 0a 2b 09 Count == 0) {.+.
1930: 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 Tcl_DecrRefCount
1940: 28 64 69 63 74 50 74 72 29 3b 0a 20 20 20 20 20 (dictPtr);.
1950: 7d 0a 20 20 20 20 20 72 65 74 75 72 6e 20 63 6f }. return co
1960: 64 65 3b 0a 20 7d 0a 40 40 20 2d 32 30 35 36 2c de;. }.@@ -2056,
1970: 31 30 20 2b 32 30 35 35 2c 38 20 40 40 0a 20 09 10 +2055,8 @@. .
1980: 54 63 6c 5f 49 6e 76 61 6c 69 64 61 74 65 53 74 Tcl_InvalidateSt
1990: 72 69 6e 67 52 65 70 28 64 69 63 74 50 74 72 29 ringRep(dictPtr)
19a0: 3b 0a 20 20 20 20 20 7d 0a 20 0a 2d 20 20 20 20 ;. }. .-
19b0: 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 Tcl_IncrRefCount
19c0: 28 64 69 63 74 50 74 72 29 3b 0a 20 20 20 20 20 (dictPtr);.
19d0: 72 65 73 75 6c 74 50 74 72 20 3d 20 54 63 6c 5f resultPtr = Tcl_
19e0: 4f 62 6a 53 65 74 56 61 72 32 28 69 6e 74 65 72 ObjSetVar2(inter
19f0: 70 2c 20 6f 62 6a 76 5b 32 5d 2c 20 4e 55 4c 4c p, objv[2], NULL
1a00: 2c 20 64 69 63 74 50 74 72 2c 0a 20 09 20 20 20 , dictPtr,. .
1a10: 20 54 43 4c 5f 4c 45 41 56 45 5f 45 52 52 5f 4d TCL_LEAVE_ERR_M
1a20: 53 47 29 3b 0a 2d 20 20 20 20 54 63 6c 44 65 63 SG);.- TclDec
1a30: 72 52 65 66 43 6f 75 6e 74 28 64 69 63 74 50 74 rRefCount(dictPt
1a40: 72 29 3b 0a 20 20 20 20 20 69 66 20 28 72 65 73 r);. if (res
1a50: 75 6c 74 50 74 72 20 3d 3d 20 4e 55 4c 4c 29 20 ultPtr == NULL)
1a60: 7b 0a 20 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 {. .return TCL_E
1a70: 52 52 4f 52 3b 0a 20 20 20 20 20 7d 0a 40 40 20 RROR;. }.@@
1a80: 2d 32 31 32 39 2c 31 30 20 2b 32 31 32 36 2c 38 -2129,10 +2126,8
1a90: 20 40 40 0a 20 0a 20 20 20 20 20 54 63 6c 5f 44 @@. . Tcl_D
1aa0: 69 63 74 4f 62 6a 50 75 74 28 69 6e 74 65 72 70 ictObjPut(interp
1ab0: 2c 20 64 69 63 74 50 74 72 2c 20 6f 62 6a 76 5b , dictPtr, objv[
1ac0: 33 5d 2c 20 76 61 6c 75 65 50 74 72 29 3b 0a 20 3], valuePtr);.
1ad0: 0a 2d 20 20 20 20 54 63 6c 5f 49 6e 63 72 52 65 .- Tcl_IncrRe
1ae0: 66 43 6f 75 6e 74 28 64 69 63 74 50 74 72 29 3b fCount(dictPtr);
1af0: 0a 20 20 20 20 20 72 65 73 75 6c 74 50 74 72 20 . resultPtr
1b00: 3d 20 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 = Tcl_ObjSetVar2
1b10: 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 32 5d (interp, objv[2]
1b20: 2c 20 4e 55 4c 4c 2c 20 64 69 63 74 50 74 72 2c , NULL, dictPtr,
1b30: 0a 20 09 20 20 20 20 54 43 4c 5f 4c 45 41 56 45 . . TCL_LEAVE
1b40: 5f 45 52 52 5f 4d 53 47 29 3b 0a 2d 20 20 20 20 _ERR_MSG);.-
1b50: 54 63 6c 44 65 63 72 52 65 66 43 6f 75 6e 74 28 TclDecrRefCount(
1b60: 64 69 63 74 50 74 72 29 3b 0a 20 20 20 20 20 69 dictPtr);. i
1b70: 66 20 28 72 65 73 75 6c 74 50 74 72 20 3d 3d 20 f (resultPtr ==
1b80: 4e 55 4c 4c 29 20 7b 0a 20 09 72 65 74 75 72 6e NULL) {. .return
1b90: 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 20 20 20 TCL_ERROR;.
1ba0: 20 7d 0a 40 40 20 2d 32 33 30 39 2c 31 30 20 2b }.@@ -2309,10 +
1bb0: 32 33 30 34 2c 38 20 40 40 0a 20 09 72 65 74 75 2304,8 @@. .retu
1bc0: 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 20 rn TCL_ERROR;.
1bd0: 20 20 20 7d 0a 20 0a 2d 20 20 20 20 54 63 6c 5f }. .- Tcl_
1be0: 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 64 69 63 IncrRefCount(dic
1bf0: 74 50 74 72 29 3b 0a 20 20 20 20 20 72 65 73 75 tPtr);. resu
1c00: 6c 74 50 74 72 20 3d 20 54 63 6c 5f 4f 62 6a 53 ltPtr = Tcl_ObjS
1c10: 65 74 56 61 72 32 28 69 6e 74 65 72 70 2c 20 6f etVar2(interp, o
1c20: 62 6a 76 5b 32 5d 2c 20 4e 55 4c 4c 2c 20 64 69 bjv[2], NULL, di
1c30: 63 74 50 74 72 2c 0a 20 09 20 20 20 20 54 43 4c ctPtr,. . TCL
1c40: 5f 4c 45 41 56 45 5f 45 52 52 5f 4d 53 47 29 3b _LEAVE_ERR_MSG);
1c50: 0a 2d 20 20 20 20 54 63 6c 44 65 63 72 52 65 66 .- TclDecrRef
1c60: 43 6f 75 6e 74 28 64 69 63 74 50 74 72 29 3b 0a Count(dictPtr);.
1c70: 20 20 20 20 20 69 66 20 28 72 65 73 75 6c 74 50 if (resultP
1c80: 74 72 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 tr == NULL) {. .
1c90: 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 return TCL_ERROR
1ca0: 3b 0a 20 20 20 20 20 7d 0a 40 40 20 2d 32 33 36 ;. }.@@ -236
1cb0: 39 2c 31 30 20 2b 32 33 36 32 2c 38 20 40 40 0a 9,10 +2362,8 @@.
1cc0: 20 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 .return TCL_ERR
1cd0: 4f 52 3b 0a 20 20 20 20 20 7d 0a 20 0a 2d 20 20 OR;. }. .-
1ce0: 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 Tcl_IncrRefCou
1cf0: 6e 74 28 64 69 63 74 50 74 72 29 3b 0a 20 20 20 nt(dictPtr);.
1d00: 20 20 72 65 73 75 6c 74 50 74 72 20 3d 20 54 63 resultPtr = Tc
1d10: 6c 5f 4f 62 6a 53 65 74 56 61 72 32 28 69 6e 74 l_ObjSetVar2(int
1d20: 65 72 70 2c 20 6f 62 6a 76 5b 32 5d 2c 20 4e 55 erp, objv[2], NU
1d30: 4c 4c 2c 20 64 69 63 74 50 74 72 2c 0a 20 09 20 LL, dictPtr,. .
1d40: 20 20 20 54 43 4c 5f 4c 45 41 56 45 5f 45 52 52 TCL_LEAVE_ERR
1d50: 5f 4d 53 47 29 3b 0a 2d 20 20 20 20 54 63 6c 44 _MSG);.- TclD
1d60: 65 63 72 52 65 66 43 6f 75 6e 74 28 64 69 63 74 ecrRefCount(dict
1d70: 50 74 72 29 3b 0a 20 20 20 20 20 69 66 20 28 72 Ptr);. if (r
1d80: 65 73 75 6c 74 50 74 72 20 3d 3d 20 4e 55 4c 4c esultPtr == NULL
1d90: 29 20 7b 0a 20 09 72 65 74 75 72 6e 20 54 43 4c ) {. .return TCL
1da0: 5f 45 52 52 4f 52 3b 0a 20 20 20 20 20 7d 0a 40 _ERROR;. }.@
1db0: 40 20 2d 32 36 35 33 2c 37 20 2b 32 36 34 34 2c @ -2653,7 +2644,
1dc0: 37 20 40 40 0a 20 20 20 20 20 54 63 6c 5f 4f 62 7 @@. Tcl_Ob
1dd0: 6a 20 2a 43 4f 4e 53 54 20 2a 6f 62 6a 76 29 0a j *CONST *objv).
1de0: 20 7b 0a 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20 {. Tcl_Obj
1df0: 2a 64 69 63 74 50 74 72 2c 20 2a 6f 62 6a 50 74 *dictPtr, *objPt
1e00: 72 3b 0a 2d 20 20 20 20 69 6e 74 20 69 2c 20 72 r;.- int i, r
1e10: 65 73 75 6c 74 2c 20 64 75 6d 6d 79 2c 20 61 6c esult, dummy, al
1e20: 6c 6f 63 64 69 63 74 20 3d 20 30 3b 0a 2b 20 20 locdict = 0;.+
1e30: 20 20 69 6e 74 20 69 2c 20 72 65 73 75 6c 74 2c int i, result,
1e40: 20 64 75 6d 6d 79 3b 0a 20 20 20 20 20 54 63 6c dummy;. Tcl
1e50: 5f 49 6e 74 65 72 70 53 74 61 74 65 20 73 74 61 _InterpState sta
1e60: 74 65 3b 0a 20 0a 20 20 20 20 20 69 66 20 28 6f te;. . if (o
1e70: 62 6a 63 20 3c 20 36 20 7c 7c 20 6f 62 6a 63 20 bjc < 6 || objc
1e80: 26 20 31 29 20 7b 0a 40 40 20 2d 32 37 31 36 2c & 1) {.@@ -2716,
1e90: 37 20 2b 32 37 30 37 2c 36 20 40 40 0a 20 0a 20 7 +2707,6 @@. .
1ea0: 20 20 20 20 69 66 20 28 54 63 6c 5f 49 73 53 68 if (Tcl_IsSh
1eb0: 61 72 65 64 28 64 69 63 74 50 74 72 29 29 20 7b ared(dictPtr)) {
1ec0: 0a 20 09 64 69 63 74 50 74 72 20 3d 20 54 63 6c . .dictPtr = Tcl
1ed0: 5f 44 75 70 6c 69 63 61 74 65 4f 62 6a 28 64 69 _DuplicateObj(di
1ee0: 63 74 50 74 72 29 3b 0a 2d 09 61 6c 6c 6f 63 64 ctPtr);.-.allocd
1ef0: 69 63 74 20 3d 20 31 3b 0a 20 20 20 20 20 7d 0a ict = 1;. }.
1f00: 20 0a 20 20 20 20 20 2f 2a 0a 40 40 20 2d 32 37 . /*.@@ -27
1f10: 34 31 2c 39 20 2b 32 37 33 31 2c 36 20 40 40 0a 41,9 +2731,6 @@.
1f20: 20 20 20 20 20 69 66 20 28 54 63 6c 5f 4f 62 6a if (Tcl_Obj
1f30: 53 65 74 56 61 72 32 28 69 6e 74 65 72 70 2c 20 SetVar2(interp,
1f40: 6f 62 6a 76 5b 32 5d 2c 20 4e 55 4c 4c 2c 20 64 objv[2], NULL, d
1f50: 69 63 74 50 74 72 2c 0a 20 09 20 20 20 20 54 43 ictPtr,. . TC
1f60: 4c 5f 4c 45 41 56 45 5f 45 52 52 5f 4d 53 47 29 L_LEAVE_ERR_MSG)
1f70: 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 54 63 == NULL) {. .Tc
1f80: 6c 5f 44 69 73 63 61 72 64 49 6e 74 65 72 70 53 l_DiscardInterpS
1f90: 74 61 74 65 28 73 74 61 74 65 29 3b 0a 2d 09 69 tate(state);.-.i
1fa0: 66 20 28 61 6c 6c 6f 63 64 69 63 74 29 20 7b 0a f (allocdict) {.
1fb0: 2d 09 20 20 20 20 54 63 6c 44 65 63 72 52 65 66 -. TclDecrRef
1fc0: 43 6f 75 6e 74 28 64 69 63 74 50 74 72 29 3b 0a Count(dictPtr);.
1fd0: 2d 09 7d 0a 20 09 72 65 74 75 72 6e 20 54 43 4c -.}. .return TCL
1fe0: 5f 45 52 52 4f 52 3b 0a 20 20 20 20 20 7d 0a 20 _ERROR;. }.
1ff0: 0a 40 40 20 2d 32 39 32 31 2c 39 20 2b 32 39 30 .@@ -2921,9 +290
2000: 38 2c 36 20 40 40 0a 20 0a 20 20 20 20 20 69 66 8,6 @@. . if
2010: 20 28 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 (Tcl_ObjSetVar2
2020: 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 32 5d (interp, objv[2]
2030: 2c 20 4e 55 4c 4c 2c 20 64 69 63 74 50 74 72 2c , NULL, dictPtr,
2040: 0a 20 09 20 20 20 20 54 43 4c 5f 4c 45 41 56 45 . . TCL_LEAVE
2050: 5f 45 52 52 5f 4d 53 47 29 20 3d 3d 20 4e 55 4c _ERR_MSG) == NUL
2060: 4c 29 20 7b 0a 2d 09 69 66 20 28 61 6c 6c 6f 63 L) {.-.if (alloc
2070: 64 69 63 74 29 20 7b 0a 2d 09 20 20 20 20 54 63 dict) {.-. Tc
2080: 6c 44 65 63 72 52 65 66 43 6f 75 6e 74 28 64 69 lDecrRefCount(di
2090: 63 74 50 74 72 29 3b 0a 2d 09 7d 0a 20 09 54 63 ctPtr);.-.}. .Tc
20a0: 6c 5f 44 69 73 63 61 72 64 49 6e 74 65 72 70 53 l_DiscardInterpS
20b0: 74 61 74 65 28 73 74 61 74 65 29 3b 0a 20 09 72 tate(state);. .r
20c0: 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b eturn TCL_ERROR;
20d0: 0a 20 20 20 20 20 7d 0a 49 6e 64 65 78 3a 20 67 . }.Index: g
20e0: 65 6e 65 72 69 63 2f 74 63 6c 45 78 65 63 75 74 eneric/tclExecut
20f0: 65 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d e.c.============
2100: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2110: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2120: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2130: 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 =======.RCS file
2140: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 : /cvsroot/tcl/t
2150: 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 45 78 cl/generic/tclEx
2160: 65 63 75 74 65 2e 63 2c 76 0a 72 65 74 72 69 65 ecute.c,v.retrie
2170: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e ving revision 1.
2180: 32 31 39 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 219.diff -u -r1.
2190: 32 31 39 20 74 63 6c 45 78 65 63 75 74 65 2e 63 219 tclExecute.c
21a0: 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63 6c .--- generic/tcl
21b0: 45 78 65 63 75 74 65 2e 63 09 32 20 4e 6f 76 20 Execute.c.2 Nov
21c0: 32 30 30 35 20 31 31 3a 35 35 3a 34 37 20 2d 30 2005 11:55:47 -0
21d0: 30 30 30 09 31 2e 32 31 39 0a 2b 2b 2b 20 67 65 000.1.219.+++ ge
21e0: 6e 65 72 69 63 2f 74 63 6c 45 78 65 63 75 74 65 neric/tclExecute
21f0: 2e 63 09 34 20 4e 6f 76 20 32 30 30 35 20 32 32 .c.4 Nov 2005 22
2200: 3a 32 36 3a 33 35 20 2d 30 30 30 30 0a 40 40 20 :26:35 -0000.@@
2210: 2d 35 35 30 33 2c 31 30 20 2b 35 35 30 33 2c 37 -5503,10 +5503,7
2220: 20 40 40 0a 20 0a 20 09 09 76 61 6c 49 6e 64 65 @@. . ..valInde
2230: 78 20 3d 20 28 69 74 65 72 4e 75 6d 20 2a 20 6e x = (iterNum * n
2240: 75 6d 56 61 72 73 29 3b 0a 20 09 09 66 6f 72 20 umVars);. ..for
2250: 28 6a 20 3d 20 30 3b 20 20 6a 20 3c 20 6e 75 6d (j = 0; j < num
2260: 56 61 72 73 3b 20 20 6a 2b 2b 29 20 7b 0a 2d 09 Vars; j++) {.-.
2270: 09 20 20 20 20 69 6e 74 20 73 65 74 45 6d 70 74 . int setEmpt
2280: 79 53 74 72 20 3d 20 30 3b 0a 2d 0a 20 09 09 20 yStr = 0;.-. ..
2290: 20 20 20 69 66 20 28 76 61 6c 49 6e 64 65 78 20 if (valIndex
22a0: 3e 3d 20 6c 69 73 74 4c 65 6e 29 20 7b 0a 2d 09 >= listLen) {.-.
22b0: 09 09 73 65 74 45 6d 70 74 79 53 74 72 20 3d 20 ..setEmptyStr =
22c0: 31 3b 0a 20 09 09 09 54 63 6c 4e 65 77 4f 62 6a 1;. ...TclNewObj
22d0: 28 76 61 6c 75 65 50 74 72 29 3b 0a 20 09 09 20 (valuePtr);. ..
22e0: 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 09 09 09 } else {. ...
22f0: 76 61 6c 75 65 50 74 72 20 3d 20 65 6c 65 6d 65 valuePtr = eleme
2300: 6e 74 73 5b 76 61 6c 49 6e 64 65 78 5d 3b 0a 40 nts[valIndex];.@
2310: 40 20 2d 35 35 33 38 2c 39 20 2b 35 35 33 35 2c @ -5538,9 +5535,
2320: 36 20 40 40 0a 20 09 09 09 69 66 20 28 76 61 6c 6 @@. ...if (val
2330: 75 65 32 50 74 72 20 3d 3d 20 4e 55 4c 4c 29 20 ue2Ptr == NULL)
2340: 7b 0a 20 09 09 09 20 20 20 20 54 52 41 43 45 5f {. ... TRACE_
2350: 57 49 54 48 5f 4f 42 4a 28 28 22 25 75 20 3d 3e WITH_OBJ(("%u =>
2360: 20 45 52 52 4f 52 20 69 6e 69 74 2e 20 69 6e 64 ERROR init. ind
2370: 65 78 20 74 65 6d 70 20 25 64 3a 20 22 2c 0a 20 ex temp %d: ",.
2380: 09 09 09 09 20 20 20 20 6f 70 6e 64 2c 20 76 61 .... opnd, va
2390: 72 49 6e 64 65 78 29 2c 20 54 63 6c 5f 47 65 74 rIndex), Tcl_Get
23a0: 4f 62 6a 52 65 73 75 6c 74 28 69 6e 74 65 72 70 ObjResult(interp
23b0: 29 29 3b 0a 2d 09 09 09 20 20 20 20 69 66 20 28 ));.-... if (
23c0: 73 65 74 45 6d 70 74 79 53 74 72 29 20 7b 0a 2d setEmptyStr) {.-
23d0: 09 09 09 09 54 63 6c 44 65 63 72 52 65 66 43 6f ....TclDecrRefCo
23e0: 75 6e 74 28 76 61 6c 75 65 50 74 72 29 3b 0a 2d unt(valuePtr);.-
23f0: 09 09 09 20 20 20 20 7d 0a 20 09 09 09 20 20 20 ... }. ...
2400: 20 72 65 73 75 6c 74 20 3d 20 54 43 4c 5f 45 52 result = TCL_ER
2410: 52 4f 52 3b 0a 20 09 09 09 20 20 20 20 67 6f 74 ROR;. ... got
2420: 6f 20 63 68 65 63 6b 46 6f 72 43 61 74 63 68 3b o checkForCatch;
2430: 0a 20 09 09 09 7d 0a 49 6e 64 65 78 3a 20 67 65 . ...}.Index: ge
2440: 6e 65 72 69 63 2f 74 63 6c 49 4f 43 6d 64 2e 63 neric/tclIOCmd.c
2450: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .===============
2460: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2470: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2480: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2490: 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f ====.RCS file: /
24a0: 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f cvsroot/tcl/tcl/
24b0: 67 65 6e 65 72 69 63 2f 74 63 6c 49 4f 43 6d 64 generic/tclIOCmd
24c0: 2e 63 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 .c,v.retrieving
24d0: 72 65 76 69 73 69 6f 6e 20 31 2e 33 32 0a 64 69 revision 1.32.di
24e0: 66 66 20 2d 75 20 2d 72 31 2e 33 32 20 74 63 6c ff -u -r1.32 tcl
24f0: 49 4f 43 6d 64 2e 63 0a 2d 2d 2d 20 67 65 6e 65 IOCmd.c.--- gene
2500: 72 69 63 2f 74 63 6c 49 4f 43 6d 64 2e 63 09 31 ric/tclIOCmd.c.1
2510: 20 4e 6f 76 20 32 30 30 35 20 31 35 3a 33 30 3a Nov 2005 15:30:
2520: 35 32 20 2d 30 30 30 30 09 31 2e 33 32 0a 2b 2b 52 -0000.1.32.++
2530: 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 4f 43 + generic/tclIOC
2540: 6d 64 2e 63 09 34 20 4e 6f 76 20 32 30 30 35 20 md.c.4 Nov 2005
2550: 32 32 3a 32 36 3a 33 36 20 2d 30 30 30 30 0a 40 22:26:36 -0000.@
2560: 40 20 2d 32 38 39 2c 37 20 2b 32 38 39 2c 36 20 @ -289,7 +289,6
2570: 40 40 0a 20 20 20 20 20 69 66 20 28 6f 62 6a 63 @@. if (objc
2580: 20 3d 3d 20 33 29 20 7b 0a 20 09 69 66 20 28 54 == 3) {. .if (T
2590: 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 28 69 6e cl_ObjSetVar2(in
25a0: 74 65 72 70 2c 20 6f 62 6a 76 5b 32 5d 2c 20 4e terp, objv[2], N
25b0: 55 4c 4c 2c 20 6c 69 6e 65 50 74 72 2c 0a 20 09 ULL, linePtr,. .
25c0: 09 54 43 4c 5f 4c 45 41 56 45 5f 45 52 52 5f 4d .TCL_LEAVE_ERR_M
25d0: 53 47 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 2d SG) == NULL) {.-
25e0: 09 20 20 20 20 54 63 6c 5f 44 65 63 72 52 65 66 . Tcl_DecrRef
25f0: 43 6f 75 6e 74 28 6c 69 6e 65 50 74 72 29 3b 0a Count(linePtr);.
2600: 20 09 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c . return TCL
2610: 5f 45 52 52 4f 52 3b 0a 20 09 7d 0a 20 09 54 63 _ERROR;. .}. .Tc
2620: 6c 5f 53 65 74 4f 62 6a 52 65 73 75 6c 74 28 69 l_SetObjResult(i
2630: 6e 74 65 72 70 2c 20 54 63 6c 5f 4e 65 77 49 6e nterp, Tcl_NewIn
2640: 74 4f 62 6a 28 6c 69 6e 65 4c 65 6e 29 29 3b 0a tObj(lineLen));.
2650: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 Index: generic/t
2660: 63 6c 4c 69 6e 6b 2e 63 0a 3d 3d 3d 3d 3d 3d 3d clLink.c.=======
2670: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2680: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2690: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
26a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 ============.RCS
26b0: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f file: /cvsroot/
26c0: 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f tcl/tcl/generic/
26d0: 74 63 6c 4c 69 6e 6b 2e 63 2c 76 0a 72 65 74 72 tclLink.c,v.retr
26e0: 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 ieving revision
26f0: 31 2e 31 33 0a 64 69 66 66 20 2d 75 20 2d 72 31 1.13.diff -u -r1
2700: 2e 31 33 20 74 63 6c 4c 69 6e 6b 2e 63 0a 2d 2d .13 tclLink.c.--
2710: 2d 20 67 65 6e 65 72 69 63 2f 74 63 6c 4c 69 6e - generic/tclLin
2720: 6b 2e 63 09 38 20 4f 63 74 20 32 30 30 35 20 31 k.c.8 Oct 2005 1
2730: 34 3a 34 32 3a 34 35 20 2d 30 30 30 30 09 31 2e 4:42:45 -0000.1.
2740: 31 33 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 13.+++ generic/t
2750: 63 6c 4c 69 6e 6b 2e 63 09 34 20 4e 6f 76 20 32 clLink.c.4 Nov 2
2760: 30 30 35 20 32 32 3a 32 36 3a 33 36 20 2d 30 30 005 22:26:36 -00
2770: 30 30 0a 40 40 20 2d 31 31 38 2c 37 20 2b 31 31 00.@@ -118,7 +11
2780: 38 2c 36 20 40 40 0a 20 20 20 20 20 69 66 20 28 8,6 @@. if (
2790: 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 28 69 Tcl_ObjSetVar2(i
27a0: 6e 74 65 72 70 2c 20 6c 69 6e 6b 50 74 72 2d 3e nterp, linkPtr->
27b0: 76 61 72 4e 61 6d 65 2c 20 4e 55 4c 4c 2c 20 6f varName, NULL, o
27c0: 62 6a 50 74 72 2c 0a 20 09 20 20 20 20 54 43 4c bjPtr,. . TCL
27d0: 5f 47 4c 4f 42 41 4c 5f 4f 4e 4c 59 7c 54 43 4c _GLOBAL_ONLY|TCL
27e0: 5f 4c 45 41 56 45 5f 45 52 52 5f 4d 53 47 29 20 _LEAVE_ERR_MSG)
27f0: 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 54 63 6c == NULL) {. .Tcl
2800: 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 6c 69 _DecrRefCount(li
2810: 6e 6b 50 74 72 2d 3e 76 61 72 4e 61 6d 65 29 3b nkPtr->varName);
2820: 0a 2d 09 54 63 6c 5f 44 65 63 72 52 65 66 43 6f .-.Tcl_DecrRefCo
2830: 75 6e 74 28 6f 62 6a 50 74 72 29 3b 0a 20 09 63 unt(objPtr);. .c
2840: 6b 66 72 65 65 28 28 63 68 61 72 20 2a 29 20 6c kfree((char *) l
2850: 69 6e 6b 50 74 72 29 3b 0a 20 09 72 65 74 75 72 inkPtr);. .retur
2860: 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 20 20 n TCL_ERROR;.
2870: 20 20 7d 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 }.Index: gener
2880: 69 63 2f 74 63 6c 54 65 73 74 2e 63 0a 3d 3d 3d ic/tclTest.c.===
2890: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
28a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
28b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
28c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
28d0: 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 .RCS file: /cvsr
28e0: 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 oot/tcl/tcl/gene
28f0: 72 69 63 2f 74 63 6c 54 65 73 74 2e 63 2c 76 0a ric/tclTest.c,v.
2900: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
2910: 69 6f 6e 20 31 2e 39 38 0a 64 69 66 66 20 2d 75 ion 1.98.diff -u
2920: 20 2d 72 31 2e 39 38 20 74 63 6c 54 65 73 74 2e -r1.98 tclTest.
2930: 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63 c.--- generic/tc
2940: 6c 54 65 73 74 2e 63 09 32 20 4e 6f 76 20 32 30 lTest.c.2 Nov 20
2950: 30 35 20 31 35 3a 35 39 3a 34 38 20 2d 30 30 30 05 15:59:48 -000
2960: 30 09 31 2e 39 38 0a 2b 2b 2b 20 67 65 6e 65 72 0.1.98.+++ gener
2970: 69 63 2f 74 63 6c 54 65 73 74 2e 63 09 34 20 4e ic/tclTest.c.4 N
2980: 6f 76 20 32 30 30 35 20 32 32 3a 32 36 3a 33 39 ov 2005 22:26:39
2990: 20 2d 30 30 30 30 0a 40 40 20 2d 33 38 34 33 2c -0000.@@ -3843,
29a0: 37 20 2b 33 38 34 33 2c 36 20 40 40 0a 20 09 7d 7 +3843,6 @@. .}
29b0: 0a 20 09 76 61 6c 75 65 50 74 72 20 3d 20 54 63 . .valuePtr = Tc
29c0: 6c 5f 4f 62 6a 53 65 74 56 61 72 32 28 69 6e 74 l_ObjSetVar2(int
29d0: 65 72 70 2c 20 76 61 72 50 74 72 2c 20 4e 55 4c erp, varPtr, NUL
29e0: 4c 2c 20 6e 65 77 50 74 72 2c 20 30 29 3b 0a 20 L, newPtr, 0);.
29f0: 09 69 66 20 28 76 61 6c 75 65 50 74 72 20 3d 3d .if (valuePtr ==
2a00: 20 4e 55 4c 4c 29 20 7b 0a 2d 09 20 20 20 20 54 NULL) {.-. T
2a10: 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 cl_DecrRefCount(
2a20: 6e 65 77 50 74 72 29 3b 0a 20 09 20 20 20 20 54 newPtr);. . T
2a30: 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28 cl_AppendResult(
2a40: 69 6e 74 65 72 70 2c 20 22 63 6f 75 6c 64 6e 27 interp, "couldn'
2a50: 74 20 73 65 74 20 76 61 72 69 61 62 6c 65 20 5c t set variable \
2a60: 22 22 2c 0a 20 09 09 20 20 20 20 54 63 6c 5f 47 "",. .. Tcl_G
2a70: 65 74 53 74 72 69 6e 67 28 76 61 72 50 74 72 29 etString(varPtr)
2a80: 2c 20 22 5c 22 22 2c 20 4e 55 4c 4c 29 3b 0a 20 , "\"", NULL);.
2a90: 09 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c 5f . return TCL_
2aa0: 45 52 52 4f 52 3b 0a 49 6e 64 65 78 3a 20 67 65 ERROR;.Index: ge
2ab0: 6e 65 72 69 63 2f 74 63 6c 56 61 72 2e 63 0a 3d neric/tclVar.c.=
2ac0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2ad0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2ae0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2af0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2b00: 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 ==.RCS file: /cv
2b10: 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 sroot/tcl/tcl/ge
2b20: 6e 65 72 69 63 2f 74 63 6c 56 61 72 2e 63 2c 76 neric/tclVar.c,v
2b30: 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 .retrieving revi
2b40: 73 69 6f 6e 20 31 2e 31 31 34 0a 64 69 66 66 20 sion 1.114.diff
2b50: 2d 75 20 2d 72 31 2e 31 31 34 20 74 63 6c 56 61 -u -r1.114 tclVa
2b60: 72 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f r.c.--- generic/
2b70: 74 63 6c 56 61 72 2e 63 09 34 20 4e 6f 76 20 32 tclVar.c.4 Nov 2
2b80: 30 30 35 20 30 32 3a 31 33 3a 34 31 20 2d 30 30 005 02:13:41 -00
2b90: 30 30 09 31 2e 31 31 34 0a 2b 2b 2b 20 67 65 6e 00.1.114.+++ gen
2ba0: 65 72 69 63 2f 74 63 6c 56 61 72 2e 63 09 34 20 eric/tclVar.c.4
2bb0: 4e 6f 76 20 32 30 30 35 20 32 32 3a 32 36 3a 34 Nov 2005 22:26:4
2bc0: 31 20 2d 30 30 30 30 0a 40 40 20 2d 31 33 39 30 1 -0000.@@ -1390
2bd0: 2c 31 30 20 2b 31 33 39 30 2c 37 20 40 40 0a 20 ,10 +1390,7 @@.
2be0: 20 20 20 20 20 2a 2f 0a 20 0a 20 20 20 20 20 76 */. . v
2bf0: 61 6c 75 65 50 74 72 20 3d 20 54 63 6c 5f 4e 65 aluePtr = Tcl_Ne
2c00: 77 53 74 72 69 6e 67 4f 62 6a 28 6e 65 77 56 61 wStringObj(newVa
2c10: 6c 75 65 2c 20 2d 31 29 3b 0a 2d 20 20 20 20 54 lue, -1);.- T
2c20: 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 cl_IncrRefCount(
2c30: 76 61 6c 75 65 50 74 72 29 3b 0a 2d 0a 20 20 20 valuePtr);.-.
2c40: 20 20 76 61 72 56 61 6c 75 65 50 74 72 20 3d 20 varValuePtr =
2c50: 54 63 6c 5f 53 65 74 56 61 72 32 45 78 28 69 6e Tcl_SetVar2Ex(in
2c60: 74 65 72 70 2c 20 70 61 72 74 31 2c 20 70 61 72 terp, part1, par
2c70: 74 32 2c 20 76 61 6c 75 65 50 74 72 2c 20 66 6c t2, valuePtr, fl
2c80: 61 67 73 29 3b 0a 2d 20 20 20 20 54 63 6c 44 65 ags);.- TclDe
2c90: 63 72 52 65 66 43 6f 75 6e 74 28 76 61 6c 75 65 crRefCount(value
2ca0: 50 74 72 29 3b 20 2f 2a 20 64 6f 6e 65 20 77 69 Ptr); /* done wi
2cb0: 74 68 20 74 68 65 20 6f 62 6a 65 63 74 20 2a 2f th the object */
2cc0: 0a 20 0a 20 20 20 20 20 69 66 20 28 76 61 72 56 . . if (varV
2cd0: 61 6c 75 65 50 74 72 20 3d 3d 20 4e 55 4c 4c 29 aluePtr == NULL)
2ce0: 20 7b 0a 20 09 72 65 74 75 72 6e 20 4e 55 4c 4c {. .return NULL
2cf0: 3b 0a 40 40 20 2d 31 34 35 38 2c 36 20 2b 31 34 ;.@@ -1458,6 +14
2d00: 35 35 2c 39 20 40 40 0a 20 20 20 20 20 76 61 72 55,9 @@. var
2d10: 50 74 72 20 3d 20 54 63 6c 4c 6f 6f 6b 75 70 56 Ptr = TclLookupV
2d20: 61 72 28 69 6e 74 65 72 70 2c 20 70 61 72 74 31 ar(interp, part1
2d30: 2c 20 70 61 72 74 32 2c 20 66 6c 61 67 73 2c 20 , part2, flags,
2d40: 22 73 65 74 22 2c 0a 20 09 20 20 20 20 2f 2a 63 "set",. . /*c
2d50: 72 65 61 74 65 50 61 72 74 31 2a 2f 20 31 2c 20 reatePart1*/ 1,
2d60: 2f 2a 63 72 65 61 74 65 50 61 72 74 32 2a 2f 20 /*createPart2*/
2d70: 31 2c 20 26 61 72 72 61 79 50 74 72 29 3b 0a 20 1, &arrayPtr);.
2d80: 20 20 20 20 69 66 20 28 76 61 72 50 74 72 20 3d if (varPtr =
2d90: 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 69 66 20 28 = NULL) {.+.if (
2da0: 6e 65 77 56 61 6c 75 65 50 74 72 2d 3e 72 65 66 newValuePtr->ref
2db0: 43 6f 75 6e 74 20 3d 3d 20 30 29 20 7b 0a 2b 09 Count == 0) {.+.
2dc0: 20 20 20 20 54 63 6c 5f 44 65 63 72 52 65 66 43 Tcl_DecrRefC
2dd0: 6f 75 6e 74 28 6e 65 77 56 61 6c 75 65 50 74 72 ount(newValuePtr
2de0: 29 3b 0a 2b 09 7d 0a 20 09 72 65 74 75 72 6e 20 );.+.}. .return
2df0: 4e 55 4c 4c 3b 0a 20 20 20 20 20 7d 0a 20 0a 40 NULL;. }. .@
2e00: 40 20 2d 31 35 31 34 2c 36 20 2b 31 35 31 34 2c @ -1514,6 +1514,
2e10: 39 20 40 40 0a 20 20 20 20 20 76 61 72 50 74 72 9 @@. varPtr
2e20: 20 3d 20 54 63 6c 4f 62 6a 4c 6f 6f 6b 75 70 56 = TclObjLookupV
2e30: 61 72 28 69 6e 74 65 72 70 2c 20 70 61 72 74 31 ar(interp, part1
2e40: 50 74 72 2c 20 70 61 72 74 32 2c 20 66 6c 61 67 Ptr, part2, flag
2e50: 73 2c 20 22 73 65 74 22 2c 0a 20 09 20 20 20 20 s, "set",. .
2e60: 2f 2a 63 72 65 61 74 65 50 61 72 74 31 2a 2f 20 /*createPart1*/
2e70: 31 2c 20 2f 2a 63 72 65 61 74 65 50 61 72 74 32 1, /*createPart2
2e80: 2a 2f 20 31 2c 20 26 61 72 72 61 79 50 74 72 29 */ 1, &arrayPtr)
2e90: 3b 0a 20 20 20 20 20 69 66 20 28 76 61 72 50 74 ;. if (varPt
2ea0: 72 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 69 r == NULL) {.+.i
2eb0: 66 20 28 6e 65 77 56 61 6c 75 65 50 74 72 2d 3e f (newValuePtr->
2ec0: 72 65 66 43 6f 75 6e 74 20 3d 3d 20 30 29 20 7b refCount == 0) {
2ed0: 0a 2b 09 20 20 20 20 54 63 6c 5f 44 65 63 72 52 .+. Tcl_DecrR
2ee0: 65 66 43 6f 75 6e 74 28 6e 65 77 56 61 6c 75 65 efCount(newValue
2ef0: 50 74 72 29 3b 0a 2b 09 7d 0a 20 09 72 65 74 75 Ptr);.+.}. .retu
2f00: 72 6e 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 7d 0a rn NULL;. }.
2f10: 20 0a 40 40 20 2d 31 35 38 33 2c 37 20 2b 31 35 .@@ -1583,7 +15
2f20: 38 36 2c 37 20 40 40 0a 20 09 09 54 63 6c 56 61 86,7 @@. ..TclVa
2f30: 72 45 72 72 4d 73 67 28 69 6e 74 65 72 70 2c 20 rErrMsg(interp,
2f40: 70 61 72 74 31 2c 20 70 61 72 74 32 2c 20 22 73 part1, part2, "s
2f50: 65 74 22 2c 20 64 61 6e 67 6c 69 6e 67 56 61 72 et", danglingVar
2f60: 29 3b 0a 20 09 20 20 20 20 7d 0a 20 09 7d 0a 2d );. . }. .}.-
2f70: 09 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a 2b 09 .return NULL;.+.
2f80: 67 6f 74 6f 20 65 61 72 6c 79 45 72 72 6f 72 3b goto earlyError;
2f90: 0a 20 20 20 20 20 7d 0a 20 0a 20 20 20 20 20 2f . }. . /
2fa0: 2a 0a 40 40 20 2d 31 35 39 34 2c 37 20 2b 31 35 *.@@ -1594,7 +15
2fb0: 39 37 2c 37 20 40 40 0a 20 09 69 66 20 28 66 6c 97,7 @@. .if (fl
2fc0: 61 67 73 20 26 20 54 43 4c 5f 4c 45 41 56 45 5f ags & TCL_LEAVE_
2fd0: 45 52 52 5f 4d 53 47 29 20 7b 0a 20 09 20 20 20 ERR_MSG) {. .
2fe0: 20 54 63 6c 56 61 72 45 72 72 4d 73 67 28 69 6e TclVarErrMsg(in
2ff0: 74 65 72 70 2c 20 70 61 72 74 31 2c 20 70 61 72 terp, part1, par
3000: 74 32 2c 20 22 73 65 74 22 2c 20 69 73 41 72 72 t2, "set", isArr
3010: 61 79 29 3b 0a 20 09 7d 0a 2d 09 72 65 74 75 72 ay);. .}.-.retur
3020: 6e 20 4e 55 4c 4c 3b 0a 2b 09 67 6f 74 6f 20 65 n NULL;.+.goto e
3030: 61 72 6c 79 45 72 72 6f 72 3b 0a 20 20 20 20 20 arlyError;.
3040: 7d 0a 20 0a 20 20 20 20 20 2f 2a 0a 40 40 20 2d }. . /*.@@ -
3050: 31 36 30 36 2c 37 20 2b 31 36 30 39 2c 37 20 40 1606,7 +1609,7 @
3060: 40 0a 20 09 20 20 20 20 7c 7c 20 28 28 61 72 72 @. . || ((arr
3070: 61 79 50 74 72 20 21 3d 20 4e 55 4c 4c 29 20 26 ayPtr != NULL) &
3080: 26 20 28 61 72 72 61 79 50 74 72 2d 3e 74 72 61 & (arrayPtr->tra
3090: 63 65 50 74 72 20 21 3d 20 4e 55 4c 4c 29 29 29 cePtr != NULL)))
30a0: 29 20 7b 0a 20 09 69 66 20 28 54 43 4c 5f 45 52 ) {. .if (TCL_ER
30b0: 52 4f 52 20 3d 3d 20 54 63 6c 43 61 6c 6c 56 61 ROR == TclCallVa
30c0: 72 54 72 61 63 65 73 28 69 50 74 72 2c 20 61 72 rTraces(iPtr, ar
30d0: 72 61 79 50 74 72 2c 20 76 61 72 50 74 72 2c 20 rayPtr, varPtr,
30e0: 70 61 72 74 31 2c 20 70 61 72 74 32 2c 0a 20 09 part1, part2,. .
30f0: 09 54 43 4c 5f 54 52 41 43 45 5f 52 45 41 44 53 .TCL_TRACE_READS
3100: 2c 20 28 66 6c 61 67 73 20 26 20 54 43 4c 5f 4c , (flags & TCL_L
3110: 45 41 56 45 5f 45 52 52 5f 4d 53 47 29 29 29 20 EAVE_ERR_MSG)))
3120: 7b 0a 2d 09 20 20 20 20 72 65 74 75 72 6e 20 4e {.-. return N
3130: 55 4c 4c 3b 0a 2b 09 20 20 20 20 67 6f 74 6f 20 ULL;.+. goto
3140: 65 61 72 6c 79 45 72 72 6f 72 3b 0a 20 09 7d 0a earlyError;. .}.
3150: 20 20 20 20 20 7d 0a 20 0a 40 40 20 2d 31 36 34 }. .@@ -164
3160: 31 2c 37 20 2b 31 36 34 34 2c 37 20 40 40 0a 20 1,7 +1644,7 @@.
3170: 09 20 20 20 20 72 65 73 75 6c 74 20 3d 20 54 63 . result = Tc
3180: 6c 5f 4c 69 73 74 4f 62 6a 41 70 70 65 6e 64 45 l_ListObjAppendE
3190: 6c 65 6d 65 6e 74 28 69 6e 74 65 72 70 2c 20 6f lement(interp, o
31a0: 6c 64 56 61 6c 75 65 50 74 72 2c 0a 20 09 09 20 ldValuePtr,. ..
31b0: 20 20 20 6e 65 77 56 61 6c 75 65 50 74 72 29 3b newValuePtr);
31c0: 0a 20 09 20 20 20 20 69 66 20 28 72 65 73 75 6c . . if (resul
31d0: 74 20 21 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 2d t != TCL_OK) {.-
31e0: 09 09 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a 2b ..return NULL;.+
31f0: 09 09 67 6f 74 6f 20 65 61 72 6c 79 45 72 72 6f ..goto earlyErro
3200: 72 3b 0a 20 09 20 20 20 20 7d 0a 20 09 7d 20 65 r;. . }. .} e
3210: 6c 73 65 20 7b 09 09 09 09 2f 2a 20 61 70 70 65 lse {..../* appe
3220: 6e 64 20 73 74 72 69 6e 67 20 2a 2f 0a 20 09 20 nd string */. .
3230: 20 20 20 2f 2a 0a 40 40 20 2d 31 37 31 39 2c 36 /*.@@ -1719,6
3240: 20 2b 31 37 32 32 2c 31 32 20 40 40 0a 20 09 54 +1722,12 @@. .T
3250: 63 6c 43 6c 65 61 6e 75 70 56 61 72 28 76 61 72 clCleanupVar(var
3260: 50 74 72 2c 20 61 72 72 61 79 50 74 72 29 3b 0a Ptr, arrayPtr);.
3270: 20 20 20 20 20 7d 0a 20 20 20 20 20 72 65 74 75 }. retu
3280: 72 6e 20 72 65 73 75 6c 74 50 74 72 3b 0a 2b 0a rn resultPtr;.+.
3290: 2b 20 20 65 61 72 6c 79 45 72 72 6f 72 3a 0a 2b + earlyError:.+
32a0: 20 20 20 20 69 66 20 28 6e 65 77 56 61 6c 75 65 if (newValue
32b0: 50 74 72 2d 3e 72 65 66 43 6f 75 6e 74 20 3d 3d Ptr->refCount ==
32c0: 20 30 29 20 7b 0a 2b 09 54 63 6c 5f 44 65 63 72 0) {.+.Tcl_Decr
32d0: 52 65 66 43 6f 75 6e 74 28 6e 65 77 56 61 6c 75 RefCount(newValu
32e0: 65 50 74 72 29 3b 0a 2b 20 20 20 20 7d 0a 2b 20 ePtr);.+ }.+
32f0: 20 20 20 67 6f 74 6f 20 63 6c 65 61 6e 75 70 3b goto cleanup;
3300: 20 20 20 20 0a 20 7d 0a 20 0c 0a 20 2f 2a 0a 40 . }. .. /*.@
3310: 40 20 2d 31 38 32 37 2c 37 20 2b 31 38 33 36 2c @ -1827,7 +1836,
3320: 37 20 40 40 0a 20 09 09 09 09 20 2a 20 54 43 4c 7 @@. .... * TCL
3330: 5f 4c 45 41 56 45 5f 45 52 52 5f 4d 53 47 2e 20 _LEAVE_ERR_MSG.
3340: 2a 2f 0a 20 7b 0a 20 20 20 20 20 72 65 67 69 73 */. {. regis
3350: 74 65 72 20 54 63 6c 5f 4f 62 6a 20 2a 76 61 72 ter Tcl_Obj *var
3360: 56 61 6c 75 65 50 74 72 2c 20 2a 6e 65 77 56 61 ValuePtr, *newVa
3370: 6c 75 65 50 74 72 20 3d 20 4e 55 4c 4c 3b 0a 2d luePtr = NULL;.-
3380: 20 20 20 20 69 6e 74 20 63 6f 64 65 3b 0a 2b 20 int code;.+
3390: 20 20 20 69 6e 74 20 64 75 70 6c 69 63 61 74 65 int duplicate
33a0: 64 2c 20 63 6f 64 65 3b 0a 20 0a 20 20 20 20 20 d, code;. .
33b0: 76 61 72 56 61 6c 75 65 50 74 72 20 3d 20 54 63 varValuePtr = Tc
33c0: 6c 50 74 72 47 65 74 56 61 72 28 69 6e 74 65 72 lPtrGetVar(inter
33d0: 70 2c 20 76 61 72 50 74 72 2c 20 61 72 72 61 79 p, varPtr, array
33e0: 50 74 72 2c 20 70 61 72 74 31 2c 20 70 61 72 74 Ptr, part1, part
33f0: 32 2c 20 66 6c 61 67 73 29 3b 0a 20 20 20 20 20 2, flags);.
3400: 69 66 20 28 76 61 72 56 61 6c 75 65 50 74 72 20 if (varValuePtr
3410: 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 40 40 20 2d 31 == NULL) {.@@ -1
3420: 38 33 36 2c 31 35 20 2b 31 38 34 35 2c 31 38 20 836,15 +1845,18
3430: 40 40 0a 20 09 72 65 74 75 72 6e 20 4e 55 4c 4c @@. .return NULL
3440: 3b 0a 20 20 20 20 20 7d 0a 20 20 20 20 20 69 66 ;. }. if
3450: 20 28 54 63 6c 5f 49 73 53 68 61 72 65 64 28 76 (Tcl_IsShared(v
3460: 61 72 56 61 6c 75 65 50 74 72 29 29 20 7b 0a 2b arValuePtr)) {.+
3470: 09 64 75 70 6c 69 63 61 74 65 64 20 3d 20 31 3b .duplicated = 1;
3480: 0a 20 09 76 61 72 56 61 6c 75 65 50 74 72 20 3d . .varValuePtr =
3490: 20 54 63 6c 5f 44 75 70 6c 69 63 61 74 65 4f 62 Tcl_DuplicateOb
34a0: 6a 28 76 61 72 56 61 6c 75 65 50 74 72 29 3b 0a j(varValuePtr);.
34b0: 2b 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 2b 09 + } else {.+.
34c0: 64 75 70 6c 69 63 61 74 65 64 20 3d 20 30 3b 0a duplicated = 0;.
34d0: 20 20 20 20 20 7d 0a 20 20 20 20 20 63 6f 64 65 }. code
34e0: 20 3d 20 54 63 6c 49 6e 63 72 4f 62 6a 28 69 6e = TclIncrObj(in
34f0: 74 65 72 70 2c 20 76 61 72 56 61 6c 75 65 50 74 terp, varValuePt
3500: 72 2c 20 69 6e 63 72 50 74 72 29 3b 0a 2d 20 20 r, incrPtr);.-
3510: 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 Tcl_IncrRefCou
3520: 6e 74 28 76 61 72 56 61 6c 75 65 50 74 72 29 3b nt(varValuePtr);
3530: 0a 20 20 20 20 20 69 66 20 28 63 6f 64 65 20 3d . if (code =
3540: 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 20 09 6e 65 = TCL_OK) {. .ne
3550: 77 56 61 6c 75 65 50 74 72 20 3d 20 54 63 6c 50 wValuePtr = TclP
3560: 74 72 53 65 74 56 61 72 28 69 6e 74 65 72 70 2c trSetVar(interp,
3570: 20 76 61 72 50 74 72 2c 20 61 72 72 61 79 50 74 varPtr, arrayPt
3580: 72 2c 20 70 61 72 74 31 2c 20 70 61 72 74 32 2c r, part1, part2,
3590: 0a 20 09 09 76 61 72 56 61 6c 75 65 50 74 72 2c . ..varValuePtr,
35a0: 20 66 6c 61 67 73 29 3b 0a 2b 20 20 20 20 7d 20 flags);.+ }
35b0: 65 6c 73 65 20 69 66 20 28 64 75 70 6c 69 63 61 else if (duplica
35c0: 74 65 64 29 20 7b 0a 2b 09 54 63 6c 5f 44 65 63 ted) {.+.Tcl_Dec
35d0: 72 52 65 66 43 6f 75 6e 74 28 76 61 72 56 61 6c rRefCount(varVal
35e0: 75 65 50 74 72 29 3b 0a 20 20 20 20 20 7d 0a 2d uePtr);. }.-
35f0: 20 20 20 20 54 63 6c 5f 44 65 63 72 52 65 66 43 Tcl_DecrRefC
3600: 6f 75 6e 74 28 76 61 72 56 61 6c 75 65 50 74 72 ount(varValuePtr
3610: 29 3b 0a 20 20 20 20 20 72 65 74 75 72 6e 20 6e );. return n
3620: 65 77 56 61 6c 75 65 50 74 72 3b 0a 20 7d 0a 20 ewValuePtr;. }.
3630: 0c 0a 40 40 20 2d 32 33 33 31 2c 37 20 2b 32 33 ..@@ -2331,7 +23
3640: 34 33 2c 37 20 40 40 0a 20 20 20 20 20 54 63 6c 43,7 @@. Tcl
3650: 5f 4f 62 6a 20 2a 43 4f 4e 53 54 20 6f 62 6a 76 _Obj *CONST objv
3660: 5b 5d 29 09 2f 2a 20 41 72 67 75 6d 65 6e 74 20 [])./* Argument
3670: 6f 62 6a 65 63 74 73 2e 20 2a 2f 0a 20 7b 0a 20 objects. */. {.
3680: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 76 61 72 Tcl_Obj *var
3690: 56 61 6c 75 65 50 74 72 2c 20 2a 6e 65 77 56 61 ValuePtr, *newVa
36a0: 6c 75 65 50 74 72 3b 0a 2d 20 20 20 20 69 6e 74 luePtr;.- int
36b0: 20 6e 75 6d 45 6c 65 6d 73 2c 20 63 72 65 61 74 numElems, creat
36c0: 65 64 4e 65 77 4f 62 6a 2c 20 63 72 65 61 74 65 edNewObj, create
36d0: 56 61 72 3b 0a 2b 20 20 20 20 69 6e 74 20 6e 75 Var;.+ int nu
36e0: 6d 45 6c 65 6d 73 2c 20 63 72 65 61 74 65 64 4e mElems, createdN
36f0: 65 77 4f 62 6a 3b 0a 20 20 20 20 20 56 61 72 20 ewObj;. Var
3700: 2a 76 61 72 50 74 72 2c 20 2a 61 72 72 61 79 50 *varPtr, *arrayP
3710: 74 72 3b 0a 20 20 20 20 20 63 68 61 72 20 2a 70 tr;. char *p
3720: 61 72 74 31 3b 0a 20 20 20 20 20 69 6e 74 20 72 art1;. int r
3730: 65 73 75 6c 74 3b 0a 40 40 20 2d 32 33 35 32 2c esult;.@@ -2352,
3740: 37 20 2b 32 33 36 34 2c 36 20 40 40 0a 20 09 20 7 +2364,6 @@. .
3750: 20 20 20 6e 65 77 56 61 6c 75 65 50 74 72 20 3d newValuePtr =
3760: 20 54 63 6c 5f 4f 62 6a 53 65 74 56 61 72 32 28 Tcl_ObjSetVar2(
3770: 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 31 5d 2c interp, objv[1],
3780: 20 4e 55 4c 4c 2c 20 76 61 72 56 61 6c 75 65 50 NULL, varValueP
3790: 74 72 2c 0a 20 09 09 20 20 20 20 54 43 4c 5f 4c tr,. .. TCL_L
37a0: 45 41 56 45 5f 45 52 52 5f 4d 53 47 29 3b 0a 20 EAVE_ERR_MSG);.
37b0: 09 20 20 20 20 69 66 20 28 6e 65 77 56 61 6c 75 . if (newValu
37c0: 65 50 74 72 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a ePtr == NULL) {.
37d0: 2d 09 09 54 63 6c 44 65 63 72 52 65 66 43 6f 75 -..TclDecrRefCou
37e0: 6e 74 28 76 61 72 56 61 6c 75 65 50 74 72 29 3b nt(varValuePtr);
37f0: 20 2f 2a 20 66 72 65 65 20 75 6e 6e 65 65 64 65 /* free unneede
3800: 64 20 6f 62 6a 65 63 74 20 2a 2f 0a 20 09 09 72 d object */. ..r
3810: 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b eturn TCL_ERROR;
3820: 0a 20 09 20 20 20 20 7d 0a 20 09 7d 0a 40 40 20 . . }. .}.@@
3830: 2d 32 33 36 38 2c 37 20 2b 32 33 37 39 2c 36 20 -2368,7 +2379,6
3840: 40 40 0a 20 09 20 2a 2f 0a 20 0a 20 09 63 72 65 @@. . */. . .cre
3850: 61 74 65 64 4e 65 77 4f 62 6a 20 3d 20 30 3b 0a atedNewObj = 0;.
3860: 2d 09 63 72 65 61 74 65 56 61 72 20 3d 20 31 3b -.createVar = 1;
3870: 0a 20 0a 20 09 2f 2a 0a 20 09 20 2a 20 55 73 65 . . ./*. . * Use
3880: 20 74 68 65 20 54 43 4c 5f 54 52 41 43 45 5f 52 the TCL_TRACE_R
3890: 45 41 44 53 20 66 6c 61 67 20 74 6f 20 65 6e 73 EADS flag to ens
38a0: 75 72 65 20 74 68 61 74 20 69 66 20 77 65 20 68 ure that if we h
38b0: 61 76 65 20 61 6e 20 61 72 72 61 79 0a 40 40 20 ave an array.@@
38c0: 2d 32 34 30 33 2c 37 20 2b 32 34 31 33 2c 36 20 -2403,7 +2413,6
38d0: 40 40 0a 20 09 20 20 20 20 20 2a 20 63 72 65 61 @@. . * crea
38e0: 74 65 20 69 74 20 77 69 74 68 20 54 63 6c 5f 4f te it with Tcl_O
38f0: 62 6a 53 65 74 56 61 72 32 20 62 65 6c 6f 77 2e bjSetVar2 below.
3900: 0a 20 09 20 20 20 20 20 2a 2f 0a 20 0a 2d 09 20 . . */. .-.
3910: 20 20 20 63 72 65 61 74 65 56 61 72 20 3d 20 28 createVar = (
3920: 54 63 6c 49 73 56 61 72 55 6e 64 65 66 69 6e 65 TclIsVarUndefine
3930: 64 28 76 61 72 50 74 72 29 29 3b 0a 20 09 20 20 d(varPtr));. .
3940: 20 20 54 63 6c 4e 65 77 4f 62 6a 28 76 61 72 56 TclNewObj(varV
3950: 61 6c 75 65 50 74 72 29 3b 0a 20 09 20 20 20 20 aluePtr);. .
3960: 63 72 65 61 74 65 64 4e 65 77 4f 62 6a 20 3d 20 createdNewObj =
3970: 31 3b 0a 20 09 7d 20 65 6c 73 65 20 69 66 20 28 1;. .} else if (
3980: 54 63 6c 5f 49 73 53 68 61 72 65 64 28 76 61 72 Tcl_IsShared(var
3990: 56 61 6c 75 65 50 74 72 29 29 20 7b 0a 40 40 20 ValuePtr)) {.@@
39a0: 2d 32 34 33 32 2c 39 20 2b 32 34 34 31 2c 36 20 -2432,9 +2441,6
39b0: 40 40 0a 20 09 6e 65 77 56 61 6c 75 65 50 74 72 @@. .newValuePtr
39c0: 20 3d 20 54 63 6c 50 74 72 53 65 74 56 61 72 28 = TclPtrSetVar(
39d0: 69 6e 74 65 72 70 2c 20 76 61 72 50 74 72 2c 20 interp, varPtr,
39e0: 61 72 72 61 79 50 74 72 2c 20 70 61 72 74 31 2c arrayPtr, part1,
39f0: 20 4e 55 4c 4c 2c 0a 20 09 09 76 61 72 56 61 6c NULL,. ..varVal
3a00: 75 65 50 74 72 2c 20 54 43 4c 5f 4c 45 41 56 45 uePtr, TCL_LEAVE
3a10: 5f 45 52 52 5f 4d 53 47 29 3b 0a 20 09 69 66 20 _ERR_MSG);. .if
3a20: 28 6e 65 77 56 61 6c 75 65 50 74 72 20 3d 3d 20 (newValuePtr ==
3a30: 4e 55 4c 4c 29 20 7b 0a 2d 09 20 20 20 20 69 66 NULL) {.-. if
3a40: 20 28 63 72 65 61 74 65 64 4e 65 77 4f 62 6a 20 (createdNewObj
3a50: 26 26 20 21 63 72 65 61 74 65 56 61 72 29 20 7b && !createVar) {
3a60: 0a 2d 09 09 54 63 6c 44 65 63 72 52 65 66 43 6f .-..TclDecrRefCo
3a70: 75 6e 74 28 76 61 72 56 61 6c 75 65 50 74 72 29 unt(varValuePtr)
3a80: 3b 20 2f 2a 20 66 72 65 65 20 75 6e 6e 65 65 64 ; /* free unneed
3a90: 65 64 20 6f 62 6a 20 2a 2f 0a 2d 09 20 20 20 20 ed obj */.-.
3aa0: 7d 0a 20 09 20 20 20 20 72 65 74 75 72 6e 20 54 }. . return T
3ab0: 43 4c 5f 45 52 52 4f 52 3b 0a 20 09 7d 0a 20 20 CL_ERROR;. .}.
3ac0: 20 20 20 7d 0a }.