Artifact
dd9f2deaf075af6adb413fba7fc0fef194da2d3b:
Attachment "1338280.patch" to
ticket [1338280fff]
added by
dgp
2005-11-01 02:25:10.
0000: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 Index: generic/t
0010: 63 6c 4e 61 6d 65 73 70 2e 63 0a 3d 3d 3d 3d 3d clNamesp.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 4e 61 6d 65 73 70 2e 63 2c 76 0a c/tclNamesp.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 38 34 0a 64 69 66 66 20 2d 75 ion 1.84.diff -u
00b0: 20 2d 72 31 2e 38 34 20 74 63 6c 4e 61 6d 65 73 -r1.84 tclNames
00c0: 70 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f p.c.--- generic/
00d0: 74 63 6c 4e 61 6d 65 73 70 2e 63 09 31 34 20 53 tclNamesp.c.14 S
00e0: 65 70 20 32 30 30 35 20 31 38 3a 33 35 3a 35 36 ep 2005 18:35:56
00f0: 20 2d 30 30 30 30 09 31 2e 38 34 0a 2b 2b 2b 20 -0000.1.84.+++
0100: 67 65 6e 65 72 69 63 2f 74 63 6c 4e 61 6d 65 73 generic/tclNames
0110: 70 2e 63 09 33 31 20 4f 63 74 20 32 30 30 35 20 p.c.31 Oct 2005
0120: 31 39 3a 31 37 3a 30 37 20 2d 30 30 30 30 0a 40 19:17:07 -0000.@
0130: 40 20 2d 31 30 31 39 2c 31 35 20 2b 31 30 31 39 @ -1019,15 +1019
0140: 2c 36 20 40 40 0a 20 20 20 20 20 69 6e 74 20 69 ,6 @@. int i
0150: 3b 0a 20 0a 20 20 20 20 20 2f 2a 0a 2d 20 20 20 ;. . /*.-
0160: 20 20 2a 20 53 74 61 72 74 20 62 79 20 64 65 73 * Start by des
0170: 74 72 6f 79 69 6e 67 20 74 68 65 20 6e 61 6d 65 troying the name
0180: 73 70 61 63 65 27 73 20 76 61 72 69 61 62 6c 65 space's variable
0190: 20 74 61 62 6c 65 2c 20 73 69 6e 63 65 20 76 61 table, since va
01a0: 72 69 61 62 6c 65 73 0a 2d 20 20 20 20 20 2a 20 riables.- *
01b0: 6d 69 67 68 74 20 74 72 69 67 67 65 72 20 74 72 might trigger tr
01c0: 61 63 65 73 2e 20 56 61 72 69 61 62 6c 65 20 74 aces. Variable t
01d0: 61 62 6c 65 20 73 68 6f 75 6c 64 20 62 65 20 63 able should be c
01e0: 6c 65 61 72 65 64 20 62 75 74 20 6e 6f 74 20 66 leared but not f
01f0: 72 65 65 64 21 0a 2d 20 20 20 20 20 2a 20 54 63 reed!.- * Tc
0200: 6c 44 65 6c 65 74 65 56 61 72 73 20 66 72 65 65 lDeleteVars free
0210: 73 20 69 74 2c 20 73 6f 20 77 65 20 72 65 69 6e s it, so we rein
0220: 69 74 69 61 6c 69 7a 65 20 69 74 20 61 66 74 65 itialize it afte
0230: 72 77 61 72 64 73 2e 0a 2d 20 20 20 20 20 2a 2f rwards..- */
0240: 0a 2d 0a 2d 20 20 20 20 54 63 6c 44 65 6c 65 74 .-.- TclDelet
0250: 65 56 61 72 73 28 69 50 74 72 2c 20 26 6e 73 50 eVars(iPtr, &nsP
0260: 74 72 2d 3e 76 61 72 54 61 62 6c 65 29 3b 0a 2d tr->varTable);.-
0270: 20 20 20 20 54 63 6c 5f 49 6e 69 74 48 61 73 68 Tcl_InitHash
0280: 54 61 62 6c 65 28 26 6e 73 50 74 72 2d 3e 76 61 Table(&nsPtr->va
0290: 72 54 61 62 6c 65 2c 20 54 43 4c 5f 53 54 52 49 rTable, TCL_STRI
02a0: 4e 47 5f 4b 45 59 53 29 3b 0a 2d 0a 2d 20 20 20 NG_KEYS);.-.-
02b0: 20 2f 2a 0a 20 20 20 20 20 20 2a 20 44 65 6c 65 /*. * Dele
02c0: 74 65 20 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 te all commands
02d0: 69 6e 20 74 68 69 73 20 6e 61 6d 65 73 70 61 63 in this namespac
02e0: 65 2e 20 42 65 20 63 61 72 65 66 75 6c 20 77 68 e. Be careful wh
02f0: 65 6e 20 74 72 61 76 65 72 73 69 6e 67 20 74 68 en traversing th
0300: 65 0a 20 20 20 20 20 20 2a 20 68 61 73 68 20 74 e. * hash t
0310: 61 62 6c 65 3a 20 77 68 65 6e 20 65 61 63 68 20 able: when each
0320: 63 6f 6d 6d 61 6e 64 20 69 73 20 64 65 6c 65 74 command is delet
0330: 65 64 2c 20 69 74 20 72 65 6d 6f 76 65 73 20 69 ed, it removes i
0340: 74 73 65 6c 66 20 66 72 6f 6d 20 74 68 65 0a 20 tself from the.
0350: 20 20 20 20 20 2a 20 63 6f 6d 6d 61 6e 64 20 74 * command t
0360: 61 62 6c 65 2e 0a 40 40 20 2d 31 30 35 38 2c 36 able..@@ -1058,6
0370: 20 2b 31 30 34 39 2c 31 35 20 40 40 0a 20 20 20 +1049,15 @@.
0380: 20 20 6e 73 50 74 72 2d 3e 70 61 72 65 6e 74 50 nsPtr->parentP
0390: 74 72 20 3d 20 4e 55 4c 4c 3b 0a 20 0a 20 20 20 tr = NULL;. .
03a0: 20 20 2f 2a 0a 2b 20 20 20 20 20 2a 20 44 65 73 /*.+ * Des
03b0: 74 72 6f 79 20 74 68 65 20 6e 61 6d 65 73 70 61 troy the namespa
03c0: 63 65 27 73 20 76 61 72 69 61 62 6c 65 20 74 61 ce's variable ta
03d0: 62 6c 65 0a 2b 20 20 20 20 20 2a 20 56 61 72 69 ble.+ * Vari
03e0: 61 62 6c 65 20 74 61 62 6c 65 20 73 68 6f 75 6c able table shoul
03f0: 64 20 62 65 20 63 6c 65 61 72 65 64 20 62 75 74 d be cleared but
0400: 20 6e 6f 74 20 66 72 65 65 64 21 0a 2b 20 20 20 not freed!.+
0410: 20 20 2a 20 54 63 6c 44 65 6c 65 74 65 56 61 72 * TclDeleteVar
0420: 73 20 66 72 65 65 73 20 69 74 2c 20 73 6f 20 77 s frees it, so w
0430: 65 20 72 65 69 6e 69 74 69 61 6c 69 7a 65 20 69 e reinitialize i
0440: 74 20 61 66 74 65 72 77 61 72 64 73 2e 0a 2b 20 t afterwards..+
0450: 20 20 20 20 2a 2f 0a 2b 0a 2b 20 20 20 20 54 63 */.+.+ Tc
0460: 6c 44 65 6c 65 74 65 56 61 72 73 28 69 50 74 72 lDeleteVars(iPtr
0470: 2c 20 26 6e 73 50 74 72 2d 3e 76 61 72 54 61 62 , &nsPtr->varTab
0480: 6c 65 29 3b 0a 2b 20 20 20 20 54 63 6c 5f 49 6e le);.+ Tcl_In
0490: 69 74 48 61 73 68 54 61 62 6c 65 28 26 6e 73 50 itHashTable(&nsP
04a0: 74 72 2d 3e 76 61 72 54 61 62 6c 65 2c 20 54 43 tr->varTable, TC
04b0: 4c 5f 53 54 52 49 4e 47 5f 4b 45 59 53 29 3b 0a L_STRING_KEYS);.
04c0: 2b 0a 2b 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 +.+ /*.
04d0: 2a 20 44 65 6c 65 74 65 20 74 68 65 20 6e 61 6d * Delete the nam
04e0: 65 73 70 61 63 65 20 70 61 74 68 20 69 66 20 6f espace path if o
04f0: 6e 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2e ne is installed.
0500: 0a 20 20 20 20 20 20 2a 2f 0a 20 0a 49 6e 64 65 . */. .Inde
0510: 78 3a 20 74 65 73 74 73 2f 74 72 61 63 65 2e 74 x: tests/trace.t
0520: 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d est.============
0530: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0540: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0550: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0560: 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 =======.RCS file
0570: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 : /cvsroot/tcl/t
0580: 63 6c 2f 74 65 73 74 73 2f 74 72 61 63 65 2e 74 cl/tests/trace.t
0590: 65 73 74 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 est,v.retrieving
05a0: 20 72 65 76 69 73 69 6f 6e 20 31 2e 34 31 0a 64 revision 1.41.d
05b0: 69 66 66 20 2d 75 20 2d 72 31 2e 34 31 20 74 72 iff -u -r1.41 tr
05c0: 61 63 65 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 73 ace.test.--- tes
05d0: 74 73 2f 74 72 61 63 65 2e 74 65 73 74 09 32 39 ts/trace.test.29
05e0: 20 4f 63 74 20 32 30 30 35 20 31 39 3a 31 36 3a Oct 2005 19:16:
05f0: 33 32 20 2d 30 30 30 30 09 31 2e 34 31 0a 2b 2b 32 -0000.1.41.++
0600: 2b 20 74 65 73 74 73 2f 74 72 61 63 65 2e 74 65 + tests/trace.te
0610: 73 74 09 33 31 20 4f 63 74 20 32 30 30 35 20 31 st.31 Oct 2005 1
0620: 39 3a 31 37 3a 30 39 20 2d 30 30 30 30 0a 40 40 9:17:09 -0000.@@
0630: 20 2d 31 31 37 39 2c 37 20 2b 31 31 37 39 2c 37 -1179,7 +1179,7
0640: 20 40 40 0a 20 20 20 20 20 6e 61 6d 65 73 70 61 @@. namespa
0650: 63 65 20 64 65 6c 65 74 65 20 3a 3a 72 65 66 0a ce delete ::ref.
0660: 20 20 20 20 20 72 65 6e 61 6d 65 20 64 6f 54 72 rename doTr
0670: 61 63 65 20 7b 7d 0a 20 20 20 20 20 73 65 74 20 ace {}. set
0680: 69 6e 66 6f 0a 2d 7d 20 31 31 31 30 0a 2b 7d 20 info.-} 1110.+}
0690: 31 30 31 30 0a 20 0a 20 23 20 44 65 6c 65 74 65 1010. . # Delete
06a0: 20 61 72 72 61 79 73 20 77 68 65 6e 20 64 6f 6e arrays when don
06b0: 65 2c 20 73 6f 20 74 68 65 79 20 63 61 6e 20 62 e, so they can b
06c0: 65 20 72 65 2d 75 73 65 64 20 61 73 20 73 63 61 e re-used as sca
06d0: 6c 61 72 73 0a 20 23 20 65 6c 73 65 77 68 65 72 lars. # elsewher
06e0: 65 2e 0a e..