Tcl Source Code

Hex Artifact Content
Login

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                                               .