Artifact
a115420ee92692038f8c4676645079f9963d53a2:
Attachment "procns.diff" to
ticket [944803ffff]
added by
coldstore
2004-08-23 06:41:16.
0000: 49 6e 64 65 78 3a 20 74 63 6c 43 6f 6d 70 69 6c Index: tclCompil
0010: 65 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d e.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 0a 52 43 53 20 66 69 6c 65 =======.RCS file
0060: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 : /cvsroot/tcl/t
0070: 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 43 6f cl/generic/tclCo
0080: 6d 70 69 6c 65 2e 63 2c 76 0a 72 65 74 72 69 65 mpile.c,v.retrie
0090: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e ving revision 1.
00a0: 36 36 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 36 66.diff -u -r1.6
00b0: 36 20 74 63 6c 43 6f 6d 70 69 6c 65 2e 63 0a 2d 6 tclCompile.c.-
00c0: 2d 2d 20 74 63 6c 43 6f 6d 70 69 6c 65 2e 63 09 -- tclCompile.c.
00d0: 31 36 20 4d 61 79 20 32 30 30 34 20 31 37 3a 32 16 May 2004 17:2
00e0: 35 3a 34 38 20 2d 30 30 30 30 09 31 2e 36 36 0a 5:48 -0000.1.66.
00f0: 2b 2b 2b 20 74 63 6c 43 6f 6d 70 69 6c 65 2e 63 +++ tclCompile.c
0100: 09 32 32 20 41 75 67 20 32 30 30 34 20 32 33 3a .22 Aug 2004 23:
0110: 33 32 3a 32 36 20 2d 30 30 30 30 0a 40 40 20 2d 32:26 -0000.@@ -
0120: 39 33 30 2c 37 20 2b 39 33 30 2c 37 20 40 40 0a 930,7 +930,7 @@.
0130: 20 20 20 20 20 69 73 46 69 72 73 74 43 6d 64 20 isFirstCmd
0140: 3d 20 31 3b 0a 20 0a 20 20 20 20 20 69 66 20 28 = 1;. . if (
0150: 65 6e 76 50 74 72 2d 3e 70 72 6f 63 50 74 72 20 envPtr->procPtr
0160: 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2d 09 63 6d 64 != NULL) {.-.cmd
0170: 4e 73 50 74 72 20 3d 20 65 6e 76 50 74 72 2d 3e NsPtr = envPtr->
0180: 70 72 6f 63 50 74 72 2d 3e 63 6d 64 50 74 72 2d procPtr->cmdPtr-
0190: 3e 6e 73 50 74 72 3b 0a 2b 09 63 6d 64 4e 73 50 >nsPtr;.+.cmdNsP
01a0: 74 72 20 3d 20 65 6e 76 50 74 72 2d 3e 70 72 6f tr = envPtr->pro
01b0: 63 50 74 72 2d 3e 70 72 6f 63 32 6e 73 3b 0a 20 cPtr->proc2ns;.
01c0: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 09 63 } else {. .c
01d0: 6d 64 4e 73 50 74 72 20 3d 20 4e 55 4c 4c 3b 20 mdNsPtr = NULL;
01e0: 2f 2a 20 75 73 65 20 63 75 72 72 65 6e 74 20 4e /* use current N
01f0: 53 20 2a 2f 0a 20 20 20 20 20 7d 0a 49 6e 64 65 S */. }.Inde
0200: 78 3a 20 74 63 6c 49 6e 74 2e 68 0a 3d 3d 3d 3d x: tclInt.h.====
0210: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0220: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0230: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0240: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
0250: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f RCS file: /cvsro
0260: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 ot/tcl/tcl/gener
0270: 69 63 2f 74 63 6c 49 6e 74 2e 68 2c 76 0a 72 65 ic/tclInt.h,v.re
0280: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
0290: 6e 20 31 2e 31 36 31 0a 64 69 66 66 20 2d 75 20 n 1.161.diff -u
02a0: 2d 72 31 2e 31 36 31 20 74 63 6c 49 6e 74 2e 68 -r1.161 tclInt.h
02b0: 0a 2d 2d 2d 20 74 63 6c 49 6e 74 2e 68 09 32 30 .--- tclInt.h.20
02c0: 20 4d 61 79 20 32 30 30 34 20 31 33 3a 30 34 3a May 2004 13:04:
02d0: 31 31 20 2d 30 30 30 30 09 31 2e 31 36 31 0a 2b 11 -0000.1.161.+
02e0: 2b 2b 20 74 63 6c 49 6e 74 2e 68 09 32 32 20 41 ++ tclInt.h.22 A
02f0: 75 67 20 32 30 30 34 20 32 33 3a 33 32 3a 32 38 ug 2004 23:32:28
0300: 20 2d 30 30 30 30 0a 40 40 20 2d 36 34 30 2c 37 -0000.@@ -640,7
0310: 20 2b 36 34 30 2c 37 20 40 40 0a 20 09 09 09 09 +640,7 @@. ....
0320: 20 20 20 2a 20 74 6f 20 74 68 65 20 70 72 6f 63 * to the proc
0330: 65 64 75 72 65 20 74 68 61 74 20 69 73 20 63 75 edure that is cu
0340: 72 72 65 6e 74 6c 79 0a 20 09 09 09 09 20 20 20 rrently. ....
0350: 2a 20 61 63 74 69 76 65 2e 20 54 68 69 73 20 73 * active. This s
0360: 74 72 75 63 74 75 72 65 20 63 61 6e 20 62 65 20 tructure can be
0370: 66 72 65 65 64 0a 20 09 09 09 09 20 20 20 2a 20 freed. .... *
0380: 77 68 65 6e 20 72 65 66 43 6f 75 6e 74 20 62 65 when refCount be
0390: 63 6f 6d 65 73 20 7a 65 72 6f 2e 20 2a 2f 0a 2d comes zero. */.-
03a0: 20 20 20 20 73 74 72 75 63 74 20 43 6f 6d 6d 61 struct Comma
03b0: 6e 64 20 2a 63 6d 64 50 74 72 3b 09 20 20 2f 2a nd *cmdPtr;. /*
03c0: 20 50 6f 69 6e 74 73 20 74 6f 20 74 68 65 20 43 Points to the C
03d0: 6f 6d 6d 61 6e 64 20 73 74 72 75 63 74 75 72 65 ommand structure
03e0: 20 66 6f 72 0a 2b 20 20 20 20 73 74 72 75 63 74 for.+ struct
03f0: 20 4e 61 6d 65 73 70 61 63 65 20 2a 70 72 6f 63 Namespace *proc
0400: 32 6e 73 3b 09 09 2f 2a 20 70 6f 69 6e 74 73 20 2ns;../* points
0410: 74 6f 20 74 68 65 20 4e 53 20 66 6f 72 20 74 68 to the NS for th
0420: 69 73 20 70 72 6f 63 27 73 20 73 63 6f 70 65 20 is proc's scope
0430: 66 6f 72 0a 20 09 09 09 09 20 20 20 2a 20 74 68 for. .... * th
0440: 69 73 20 70 72 6f 63 65 64 75 72 65 2e 20 54 68 is procedure. Th
0450: 69 73 20 69 73 20 75 73 65 64 20 74 6f 20 67 65 is is used to ge
0460: 74 0a 20 09 09 09 09 20 20 20 2a 20 74 68 65 20 t. .... * the
0470: 6e 61 6d 65 73 70 61 63 65 20 69 6e 20 77 68 69 namespace in whi
0480: 63 68 20 74 6f 20 65 78 65 63 75 74 65 0a 20 09 ch to execute. .
0490: 09 09 09 20 20 20 2a 20 74 68 65 20 70 72 6f 63 ... * the proc
04a0: 65 64 75 72 65 2e 20 2a 2f 0a 49 6e 64 65 78 3a edure. */.Index:
04b0: 20 74 63 6c 50 72 6f 63 2e 63 0a 3d 3d 3d 3d 3d tclProc.c.=====
04c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 ==============.R
0500: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f CS file: /cvsroo
0510: 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 t/tcl/tcl/generi
0520: 63 2f 74 63 6c 50 72 6f 63 2e 63 2c 76 0a 72 65 c/tclProc.c,v.re
0530: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
0540: 6e 20 31 2e 35 32 0a 64 69 66 66 20 2d 75 20 2d n 1.52.diff -u -
0550: 72 31 2e 35 32 20 74 63 6c 50 72 6f 63 2e 63 0a r1.52 tclProc.c.
0560: 2d 2d 2d 20 74 63 6c 50 72 6f 63 2e 63 09 34 20 --- tclProc.c.4
0570: 4d 61 79 20 32 30 30 34 20 30 33 3a 32 30 3a 32 May 2004 03:20:2
0580: 32 20 2d 30 30 30 30 09 31 2e 35 32 0a 2b 2b 2b 2 -0000.1.52.+++
0590: 20 74 63 6c 50 72 6f 63 2e 63 09 32 32 20 41 75 tclProc.c.22 Au
05a0: 67 20 32 30 30 34 20 32 33 3a 33 32 3a 32 39 20 g 2004 23:32:29
05b0: 2d 30 30 30 30 0a 40 40 20 2d 31 34 36 2c 37 20 -0000.@@ -146,7
05c0: 2b 31 34 36 2c 37 20 40 40 0a 20 20 20 20 20 20 +146,7 @@.
05d0: 2a 20 6e 61 6d 65 73 70 61 63 65 20 69 66 20 74 * namespace if t
05e0: 68 65 20 70 72 6f 63 20 77 61 73 20 72 65 6e 61 he proc was rena
05f0: 6d 65 64 20 69 6e 74 6f 20 61 20 64 69 66 66 65 med into a diffe
0600: 72 65 6e 74 20 6e 61 6d 65 73 70 61 63 65 2e 0a rent namespace..
0610: 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 0a 2d */. .-
0620: 20 20 20 20 70 72 6f 63 50 74 72 2d 3e 63 6d 64 procPtr->cmd
0630: 50 74 72 20 3d 20 28 43 6f 6d 6d 61 6e 64 20 2a Ptr = (Command *
0640: 29 20 63 6d 64 3b 0a 2b 20 20 20 20 70 72 6f 63 ) cmd;.+ proc
0650: 50 74 72 2d 3e 70 72 6f 63 32 6e 73 20 3d 20 28 Ptr->proc2ns = (
0660: 28 43 6f 6d 6d 61 6e 64 20 2a 29 20 63 6d 64 29 (Command *) cmd)
0670: 2d 3e 6e 73 50 74 72 3b 0a 20 0a 20 0a 20 20 20 ->nsPtr;. . .
0680: 20 20 2f 2a 0a 40 40 20 2d 38 39 32 2c 37 20 2b /*.@@ -892,7 +
0690: 38 39 32 2c 37 20 40 40 0a 20 20 20 20 20 54 63 892,7 @@. Tc
06a0: 6c 5f 4f 62 6a 20 2a 43 4f 4e 53 54 20 6f 62 6a l_Obj *CONST obj
06b0: 76 5b 5d 3b 09 20 2f 2a 20 41 72 67 75 6d 65 6e v[];. /* Argumen
06c0: 74 20 76 61 6c 75 65 20 6f 62 6a 65 63 74 73 2e t value objects.
06d0: 20 2a 2f 0a 20 7b 0a 20 20 20 20 20 72 65 67 69 */. {. regi
06e0: 73 74 65 72 20 50 72 6f 63 20 2a 70 72 6f 63 50 ster Proc *procP
06f0: 74 72 20 3d 20 28 50 72 6f 63 20 2a 29 20 63 6c tr = (Proc *) cl
0700: 69 65 6e 74 44 61 74 61 3b 0a 2d 20 20 20 20 4e ientData;.- N
0710: 61 6d 65 73 70 61 63 65 20 2a 6e 73 50 74 72 20 amespace *nsPtr
0720: 3d 20 70 72 6f 63 50 74 72 2d 3e 63 6d 64 50 74 = procPtr->cmdPt
0730: 72 2d 3e 6e 73 50 74 72 3b 0a 2b 20 20 20 20 4e r->nsPtr;.+ N
0740: 61 6d 65 73 70 61 63 65 20 2a 6e 73 50 74 72 20 amespace *nsPtr
0750: 3d 20 70 72 6f 63 50 74 72 2d 3e 70 72 6f 63 32 = procPtr->proc2
0760: 6e 73 3b 0a 20 20 20 20 20 43 61 6c 6c 46 72 61 ns;. CallFra
0770: 6d 65 20 66 72 61 6d 65 3b 0a 20 20 20 20 20 72 me frame;. r
0780: 65 67 69 73 74 65 72 20 43 61 6c 6c 46 72 61 6d egister CallFram
0790: 65 20 2a 66 72 61 6d 65 50 74 72 20 3d 20 26 66 e *framePtr = &f
07a0: 72 61 6d 65 3b 0a 20 20 20 20 20 72 65 67 69 73 rame;. regis
07b0: 74 65 72 20 56 61 72 20 2a 76 61 72 50 74 72 3b ter Var *varPtr;
07c0: 0a .