Tcl Source Code

Hex Artifact Content
Login

Artifact 3368bed8ed66f27f741418844a91a7a219b92476:

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                                      }.