Tcl Source Code

Hex Artifact Content
Login

Artifact d07329d8b4e6b060f818236e7605e0d31ec2e6d0:

Attachment "nsChildTable.patch" to ticket [2694630fff] added by dkf 2009-03-19 22:05:20.
0000: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74  Index: generic/t
0010: 63 6c 49 6e 74 2e 68 0a 3d 3d 3d 3d 3d 3d 3d 3d  clInt.h.========
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 0a 52 43 53 20  ===========.RCS 
0060: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74  file: /cvsroot/t
0070: 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74  cl/tcl/generic/t
0080: 63 6c 49 6e 74 2e 68 2c 76 0a 72 65 74 72 69 65  clInt.h,v.retrie
0090: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e  ving revision 1.
00a0: 34 31 38 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e  418.diff -u -r1.
00b0: 34 31 38 20 74 63 6c 49 6e 74 2e 68 0a 2d 2d 2d  418 tclInt.h.---
00c0: 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e 74 2e   generic/tclInt.
00d0: 68 09 39 20 4d 61 72 20 32 30 30 39 20 30 39 3a  h.9 Mar 2009 09:
00e0: 31 32 3a 33 39 20 2d 30 30 30 30 09 31 2e 34 31  12:39 -0000.1.41
00f0: 38 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63  8.+++ generic/tc
0100: 6c 49 6e 74 2e 68 09 31 39 20 4d 61 72 20 32 30  lInt.h.19 Mar 20
0110: 30 39 20 31 34 3a 35 36 3a 34 30 20 2d 30 30 30  09 14:56:40 -000
0120: 30 0a 40 40 20 2d 32 33 36 2c 38 20 2b 32 33 36  0.@@ -236,8 +236
0130: 2c 31 30 20 40 40 0a 20 20 20 20 20 73 74 72 75  ,10 @@.     stru
0140: 63 74 20 4e 61 6d 65 73 70 61 63 65 20 2a 70 61  ct Namespace *pa
0150: 72 65 6e 74 50 74 72 3b 2f 2a 20 50 6f 69 6e 74  rentPtr;/* Point
0160: 73 20 74 6f 20 74 68 65 20 6e 61 6d 65 73 70 61  s to the namespa
0170: 63 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73  ce that contains
0180: 20 74 68 69 73 0a 20 09 09 09 09 20 2a 20 6f 6e   this. .... * on
0190: 65 2e 20 4e 55 4c 4c 20 69 66 20 74 68 69 73 20  e. NULL if this 
01a0: 69 73 20 74 68 65 20 67 6c 6f 62 61 6c 0a 20 09  is the global. .
01b0: 09 09 09 20 2a 20 6e 61 6d 65 73 70 61 63 65 2e  ... * namespace.
01c0: 20 2a 2f 0a 2d 20 20 20 20 54 63 6c 5f 48 61 73   */.-    Tcl_Has
01d0: 68 54 61 62 6c 65 20 63 68 69 6c 64 54 61 62 6c  hTable childTabl
01e0: 65 3b 09 2f 2a 20 43 6f 6e 74 61 69 6e 73 20 61  e;./* Contains a
01f0: 6e 79 20 63 68 69 6c 64 20 6e 61 6d 65 73 70 61  ny child namespa
0200: 63 65 73 2e 20 49 6e 64 65 78 65 64 20 62 79 0a  ces. Indexed by.
0210: 2d 09 09 09 09 20 2a 20 73 74 72 69 6e 67 73 3b  -.... * strings;
0220: 20 76 61 6c 75 65 73 20 68 61 76 65 20 74 79 70   values have typ
0230: 65 20 28 4e 61 6d 65 73 70 61 63 65 20 2a 29 2e  e (Namespace *).
0240: 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f 48 61 73   */.+    Tcl_Has
0250: 68 54 61 62 6c 65 20 2a 63 68 69 6c 64 54 61 62  hTable *childTab
0260: 6c 65 50 74 72 3b 0a 2b 09 09 09 09 2f 2a 20 43  lePtr;.+..../* C
0270: 6f 6e 74 61 69 6e 73 20 61 6e 79 20 63 68 69 6c  ontains any chil
0280: 64 20 6e 61 6d 65 73 70 61 63 65 73 2e 20 49 6e  d namespaces. In
0290: 64 65 78 65 64 20 62 79 0a 2b 09 09 09 09 20 2a  dexed by.+.... *
02a0: 20 73 74 72 69 6e 67 73 3b 20 76 61 6c 75 65 73   strings; values
02b0: 20 68 61 76 65 20 74 79 70 65 20 28 4e 61 6d 65   have type (Name
02c0: 73 70 61 63 65 20 2a 29 2e 20 49 66 0a 2b 09 09  space *). If.+..
02d0: 09 09 20 2a 20 4e 55 4c 4c 2c 20 74 68 65 72 65  .. * NULL, there
02e0: 20 61 72 65 20 6e 6f 20 63 68 69 6c 64 72 65 6e   are no children
02f0: 2e 20 2a 2f 0a 20 20 20 20 20 6c 6f 6e 67 20 6e  . */.     long n
0300: 73 49 64 3b 09 09 09 2f 2a 20 55 6e 69 71 75 65  sId;.../* Unique
0310: 20 69 64 20 66 6f 72 20 74 68 65 20 6e 61 6d 65   id for the name
0320: 73 70 61 63 65 2e 20 2a 2f 0a 20 20 20 20 20 54  space. */.     T
0330: 63 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72  cl_Interp *inter
0340: 70 3b 09 09 2f 2a 20 54 68 65 20 69 6e 74 65 72  p;../* The inter
0350: 70 72 65 74 65 72 20 63 6f 6e 74 61 69 6e 69 6e  preter containin
0360: 67 20 74 68 69 73 0a 20 09 09 09 09 20 2a 20 6e  g this. .... * n
0370: 61 6d 65 73 70 61 63 65 2e 20 2a 2f 0a 49 6e 64  amespace. */.Ind
0380: 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 4e  ex: generic/tclN
0390: 61 6d 65 73 70 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d  amesp.c.========
03a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
03b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
03c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
03d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20  ===========.RCS 
03e0: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74  file: /cvsroot/t
03f0: 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74  cl/tcl/generic/t
0400: 63 6c 4e 61 6d 65 73 70 2e 63 2c 76 0a 72 65 74  clNamesp.c,v.ret
0410: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e  rieving revision
0420: 20 31 2e 31 38 39 0a 64 69 66 66 20 2d 75 20 2d   1.189.diff -u -
0430: 72 31 2e 31 38 39 20 74 63 6c 4e 61 6d 65 73 70  r1.189 tclNamesp
0440: 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74  .c.--- generic/t
0450: 63 6c 4e 61 6d 65 73 70 2e 63 09 31 30 20 46 65  clNamesp.c.10 Fe
0460: 62 20 32 30 30 39 20 32 32 3a 35 30 3a 30 37 20  b 2009 22:50:07 
0470: 2d 30 30 30 30 09 31 2e 31 38 39 0a 2b 2b 2b 20  -0000.1.189.+++ 
0480: 67 65 6e 65 72 69 63 2f 74 63 6c 4e 61 6d 65 73  generic/tclNames
0490: 70 2e 63 09 31 39 20 4d 61 72 20 32 30 30 39 20  p.c.19 Mar 2009 
04a0: 31 34 3a 35 36 3a 34 31 20 2d 30 30 30 30 0a 40  14:56:41 -0000.@
04b0: 40 20 2d 37 39 35 2c 37 20 2b 37 39 35 2c 38 20  @ -795,7 +795,8 
04c0: 40 40 0a 20 09 20 2a 20 61 6c 72 65 61 64 79 20  @@. . * already 
04d0: 65 78 69 73 74 20 69 6e 20 74 68 65 20 70 61 72  exist in the par
04e0: 65 6e 74 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20  ent namespace.. 
04f0: 09 20 2a 2f 0a 20 0a 2d 09 69 66 20 28 54 63 6c  . */. .-.if (Tcl
0500: 5f 46 69 6e 64 48 61 73 68 45 6e 74 72 79 28 26  _FindHashEntry(&
0510: 70 61 72 65 6e 74 50 74 72 2d 3e 63 68 69 6c 64  parentPtr->child
0520: 54 61 62 6c 65 2c 20 73 69 6d 70 6c 65 4e 61 6d  Table, simpleNam
0530: 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09  e) != NULL) {.+.
0540: 69 66 20 28 70 61 72 65 6e 74 50 74 72 2d 3e 63  if (parentPtr->c
0550: 68 69 6c 64 54 61 62 6c 65 50 74 72 20 21 3d 20  hildTablePtr != 
0560: 4e 55 4c 4c 20 26 26 0a 2b 09 09 54 63 6c 5f 46  NULL &&.+..Tcl_F
0570: 69 6e 64 48 61 73 68 45 6e 74 72 79 28 70 61 72  indHashEntry(par
0580: 65 6e 74 50 74 72 2d 3e 63 68 69 6c 64 54 61 62  entPtr->childTab
0590: 6c 65 50 74 72 2c 73 69 6d 70 6c 65 4e 61 6d 65  lePtr,simpleName
05a0: 29 21 3d 4e 55 4c 4c 29 7b 0a 20 09 20 20 20 20  )!=NULL){. .    
05b0: 54 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74  Tcl_AppendResult
05c0: 28 69 6e 74 65 72 70 2c 20 22 63 61 6e 27 74 20  (interp, "can't 
05d0: 63 72 65 61 74 65 20 6e 61 6d 65 73 70 61 63 65  create namespace
05e0: 20 5c 22 22 2c 20 6e 61 6d 65 2c 0a 20 09 09 20   \"", name,. .. 
05f0: 20 20 20 22 5c 22 3a 20 61 6c 72 65 61 64 79 20     "\": already 
0600: 65 78 69 73 74 73 22 2c 20 4e 55 4c 4c 29 3b 0a  exists", NULL);.
0610: 20 09 20 20 20 20 72 65 74 75 72 6e 20 4e 55 4c   .    return NUL
0620: 4c 3b 0a 40 40 20 2d 38 31 34 2c 37 20 2b 38 31  L;.@@ -814,7 +81
0630: 35 2c 37 20 40 40 0a 20 20 20 20 20 6e 73 50 74  5,7 @@.     nsPt
0640: 72 2d 3e 63 6c 69 65 6e 74 44 61 74 61 20 3d 20  r->clientData = 
0650: 63 6c 69 65 6e 74 44 61 74 61 3b 0a 20 20 20 20  clientData;.    
0660: 20 6e 73 50 74 72 2d 3e 64 65 6c 65 74 65 50 72   nsPtr->deletePr
0670: 6f 63 20 3d 20 64 65 6c 65 74 65 50 72 6f 63 3b  oc = deleteProc;
0680: 0a 20 20 20 20 20 6e 73 50 74 72 2d 3e 70 61 72  .     nsPtr->par
0690: 65 6e 74 50 74 72 20 3d 20 70 61 72 65 6e 74 50  entPtr = parentP
06a0: 74 72 3b 0a 2d 20 20 20 20 54 63 6c 5f 49 6e 69  tr;.-    Tcl_Ini
06b0: 74 48 61 73 68 54 61 62 6c 65 28 26 6e 73 50 74  tHashTable(&nsPt
06c0: 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 2c 20 54  r->childTable, T
06d0: 43 4c 5f 53 54 52 49 4e 47 5f 4b 45 59 53 29 3b  CL_STRING_KEYS);
06e0: 0a 2b 20 20 20 20 6e 73 50 74 72 2d 3e 63 68 69  .+    nsPtr->chi
06f0: 6c 64 54 61 62 6c 65 50 74 72 20 3d 20 4e 55 4c  ldTablePtr = NUL
0700: 4c 3b 0a 20 20 20 20 20 6e 73 50 74 72 2d 3e 6e  L;.     nsPtr->n
0710: 73 49 64 20 3d 20 2b 2b 28 74 73 64 50 74 72 2d  sId = ++(tsdPtr-
0720: 3e 6e 75 6d 4e 73 43 72 65 61 74 65 64 29 3b 0a  >numNsCreated);.
0730: 20 20 20 20 20 6e 73 50 74 72 2d 3e 69 6e 74 65       nsPtr->inte
0740: 72 70 20 3d 20 69 6e 74 65 72 70 3b 0a 20 20 20  rp = interp;.   
0750: 20 20 6e 73 50 74 72 2d 3e 66 6c 61 67 73 20 3d    nsPtr->flags =
0760: 20 30 3b 0a 40 40 20 2d 38 33 38 2c 37 20 2b 38   0;.@@ -838,7 +8
0770: 33 39 2c 31 32 20 40 40 0a 20 20 20 20 20 6e 73  39,12 @@.     ns
0780: 50 74 72 2d 3e 63 6f 6d 6d 61 6e 64 50 61 74 68  Ptr->commandPath
0790: 53 6f 75 72 63 65 4c 69 73 74 20 3d 20 4e 55 4c  SourceList = NUL
07a0: 4c 3b 0a 20 0a 20 20 20 20 20 69 66 20 28 70 61  L;. .     if (pa
07b0: 72 65 6e 74 50 74 72 20 21 3d 20 4e 55 4c 4c 29  rentPtr != NULL)
07c0: 20 7b 0a 2d 09 65 6e 74 72 79 50 74 72 20 3d 20   {.-.entryPtr = 
07d0: 54 63 6c 5f 43 72 65 61 74 65 48 61 73 68 45 6e  Tcl_CreateHashEn
07e0: 74 72 79 28 26 70 61 72 65 6e 74 50 74 72 2d 3e  try(&parentPtr->
07f0: 63 68 69 6c 64 54 61 62 6c 65 2c 20 73 69 6d 70  childTable, simp
0800: 6c 65 4e 61 6d 65 2c 0a 2b 09 69 66 20 28 70 61  leName,.+.if (pa
0810: 72 65 6e 74 50 74 72 2d 3e 63 68 69 6c 64 54 61  rentPtr->childTa
0820: 62 6c 65 50 74 72 20 3d 3d 20 4e 55 4c 4c 29 20  blePtr == NULL) 
0830: 7b 0a 2b 09 20 20 20 20 70 61 72 65 6e 74 50 74  {.+.    parentPt
0840: 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 50 74 72  r->childTablePtr
0850: 20 3d 20 28 54 63 6c 5f 48 61 73 68 54 61 62 6c   = (Tcl_HashTabl
0860: 65 20 2a 29 0a 2b 09 09 20 20 20 20 63 6b 61 6c  e *).+..    ckal
0870: 6c 6f 63 28 73 69 7a 65 6f 66 28 54 63 6c 5f 48  loc(sizeof(Tcl_H
0880: 61 73 68 54 61 62 6c 65 29 29 3b 0a 2b 09 20 20  ashTable));.+.  
0890: 20 20 54 63 6c 5f 49 6e 69 74 48 61 73 68 54 61    Tcl_InitHashTa
08a0: 62 6c 65 28 70 61 72 65 6e 74 50 74 72 2d 3e 63  ble(parentPtr->c
08b0: 68 69 6c 64 54 61 62 6c 65 50 74 72 2c 20 54 43  hildTablePtr, TC
08c0: 4c 5f 53 54 52 49 4e 47 5f 4b 45 59 53 29 3b 0a  L_STRING_KEYS);.
08d0: 2b 09 7d 0a 2b 09 65 6e 74 72 79 50 74 72 20 3d  +.}.+.entryPtr =
08e0: 20 54 63 6c 5f 43 72 65 61 74 65 48 61 73 68 45   Tcl_CreateHashE
08f0: 6e 74 72 79 28 70 61 72 65 6e 74 50 74 72 2d 3e  ntry(parentPtr->
0900: 63 68 69 6c 64 54 61 62 6c 65 50 74 72 2c 20 73  childTablePtr, s
0910: 69 6d 70 6c 65 4e 61 6d 65 2c 0a 20 09 09 26 6e  impleName,. ..&n
0920: 65 77 45 6e 74 72 79 29 3b 0a 20 09 54 63 6c 5f  ewEntry);. .Tcl_
0930: 53 65 74 48 61 73 68 56 61 6c 75 65 28 65 6e 74  SetHashValue(ent
0940: 72 79 50 74 72 2c 20 6e 73 50 74 72 29 3b 0a 20  ryPtr, nsPtr);. 
0950: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 40 40 20      } else {.@@ 
0960: 2d 39 39 32 2c 37 20 2b 39 39 38 2c 37 20 40 40  -992,7 +998,7 @@
0970: 0a 20 20 20 20 20 69 66 20 28 6e 73 50 74 72 2d  .     if (nsPtr-
0980: 3e 61 63 74 69 76 61 74 69 6f 6e 43 6f 75 6e 74  >activationCount
0990: 20 2d 20 28 6e 73 50 74 72 20 3d 3d 20 67 6c 6f   - (nsPtr == glo
09a0: 62 61 6c 4e 73 50 74 72 29 20 3e 20 30 29 20 7b  balNsPtr) > 0) {
09b0: 0a 20 09 6e 73 50 74 72 2d 3e 66 6c 61 67 73 20  . .nsPtr->flags 
09c0: 7c 3d 20 4e 53 5f 44 59 49 4e 47 3b 0a 20 09 69  |= NS_DYING;. .i
09d0: 66 20 28 6e 73 50 74 72 2d 3e 70 61 72 65 6e 74  f (nsPtr->parent
09e0: 50 74 72 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2d  Ptr != NULL) {.-
09f0: 09 20 20 20 20 65 6e 74 72 79 50 74 72 20 3d 20  .    entryPtr = 
0a00: 54 63 6c 5f 46 69 6e 64 48 61 73 68 45 6e 74 72  Tcl_FindHashEntr
0a10: 79 28 26 6e 73 50 74 72 2d 3e 70 61 72 65 6e 74  y(&nsPtr->parent
0a20: 50 74 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 2c  Ptr->childTable,
0a30: 0a 2b 09 20 20 20 20 65 6e 74 72 79 50 74 72 20  .+.    entryPtr 
0a40: 3d 20 54 63 6c 5f 46 69 6e 64 48 61 73 68 45 6e  = Tcl_FindHashEn
0a50: 74 72 79 28 6e 73 50 74 72 2d 3e 70 61 72 65 6e  try(nsPtr->paren
0a60: 74 50 74 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65  tPtr->childTable
0a70: 50 74 72 2c 0a 20 09 09 20 20 20 20 6e 73 50 74  Ptr,. ..    nsPt
0a80: 72 2d 3e 6e 61 6d 65 29 3b 0a 20 09 20 20 20 20  r->name);. .    
0a90: 69 66 20 28 65 6e 74 72 79 50 74 72 20 21 3d 20  if (entryPtr != 
0aa0: 4e 55 4c 4c 29 20 7b 0a 20 09 09 54 63 6c 5f 44  NULL) {. ..Tcl_D
0ab0: 65 6c 65 74 65 48 61 73 68 45 6e 74 72 79 28 65  eleteHashEntry(e
0ac0: 6e 74 72 79 50 74 72 29 3b 0a 40 40 20 2d 31 30  ntryPtr);.@@ -10
0ad0: 32 32 2c 37 20 2b 31 30 32 38 2c 31 30 20 40 40  22,7 +1028,10 @@
0ae0: 0a 20 0a 20 09 20 20 20 20 54 63 6c 44 65 6c 65  . . .    TclDele
0af0: 74 65 4e 61 6d 65 73 70 61 63 65 56 61 72 73 28  teNamespaceVars(
0b00: 6e 73 50 74 72 29 3b 0a 20 0a 2d 09 20 20 20 20  nsPtr);. .-.    
0b10: 54 63 6c 5f 44 65 6c 65 74 65 48 61 73 68 54 61  Tcl_DeleteHashTa
0b20: 62 6c 65 28 26 6e 73 50 74 72 2d 3e 63 68 69 6c  ble(&nsPtr->chil
0b30: 64 54 61 62 6c 65 29 3b 0a 2b 09 20 20 20 20 69  dTable);.+.    i
0b40: 66 20 28 6e 73 50 74 72 2d 3e 63 68 69 6c 64 54  f (nsPtr->childT
0b50: 61 62 6c 65 50 74 72 20 21 3d 20 4e 55 4c 4c 29  ablePtr != NULL)
0b60: 20 7b 0a 2b 09 09 54 63 6c 5f 44 65 6c 65 74 65   {.+..Tcl_Delete
0b70: 48 61 73 68 54 61 62 6c 65 28 6e 73 50 74 72 2d  HashTable(nsPtr-
0b80: 3e 63 68 69 6c 64 54 61 62 6c 65 50 74 72 29 3b  >childTablePtr);
0b90: 0a 2b 09 09 63 6b 66 72 65 65 28 28 63 68 61 72  .+..ckfree((char
0ba0: 20 2a 29 20 6e 73 50 74 72 2d 3e 63 68 69 6c 64   *) nsPtr->child
0bb0: 54 61 62 6c 65 50 74 72 29 3b 0a 2b 09 20 20 20  TablePtr);.+.   
0bc0: 20 7d 0a 20 09 20 20 20 20 54 63 6c 5f 44 65 6c   }. .    Tcl_Del
0bd0: 65 74 65 48 61 73 68 54 61 62 6c 65 28 26 6e 73  eteHashTable(&ns
0be0: 50 74 72 2d 3e 63 6d 64 54 61 62 6c 65 29 3b 0a  Ptr->cmdTable);.
0bf0: 20 0a 20 09 20 20 20 20 2f 2a 0a 40 40 20 2d 31   . .    /*.@@ -1
0c00: 31 31 38 2c 37 20 2b 31 31 32 37 2c 37 20 40 40  118,7 +1127,7 @@
0c10: 0a 20 20 20 20 20 20 2a 2f 0a 20 0a 20 20 20 20  .      */. .    
0c20: 20 69 66 20 28 6e 73 50 74 72 2d 3e 70 61 72 65   if (nsPtr->pare
0c30: 6e 74 50 74 72 20 21 3d 20 4e 55 4c 4c 29 20 7b  ntPtr != NULL) {
0c40: 0a 2d 09 65 6e 74 72 79 50 74 72 20 3d 20 54 63  .-.entryPtr = Tc
0c50: 6c 5f 46 69 6e 64 48 61 73 68 45 6e 74 72 79 28  l_FindHashEntry(
0c60: 26 6e 73 50 74 72 2d 3e 70 61 72 65 6e 74 50 74  &nsPtr->parentPt
0c70: 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 2c 0a 2b  r->childTable,.+
0c80: 09 65 6e 74 72 79 50 74 72 20 3d 20 54 63 6c 5f  .entryPtr = Tcl_
0c90: 46 69 6e 64 48 61 73 68 45 6e 74 72 79 28 6e 73  FindHashEntry(ns
0ca0: 50 74 72 2d 3e 70 61 72 65 6e 74 50 74 72 2d 3e  Ptr->parentPtr->
0cb0: 63 68 69 6c 64 54 61 62 6c 65 50 74 72 2c 0a 20  childTablePtr,. 
0cc0: 09 09 6e 73 50 74 72 2d 3e 6e 61 6d 65 29 3b 0a  ..nsPtr->name);.
0cd0: 20 09 69 66 20 28 65 6e 74 72 79 50 74 72 20 21   .if (entryPtr !
0ce0: 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 20 20 20 20  = NULL) {. .    
0cf0: 54 63 6c 5f 44 65 6c 65 74 65 48 61 73 68 45 6e  Tcl_DeleteHashEn
0d00: 74 72 79 28 65 6e 74 72 79 50 74 72 29 3b 0a 40  try(entryPtr);.@
0d10: 40 20 2d 31 31 35 36 2c 31 31 20 2b 31 31 36 35  @ -1156,11 +1165
0d20: 2c 31 33 20 40 40 0a 20 20 20 20 20 20 2a 20 44  ,13 @@.      * D
0d30: 6f 6e 27 74 20 6f 70 74 69 6d 69 7a 65 20 74 6f  on't optimize to
0d40: 20 54 63 6c 5f 4e 65 78 74 48 61 73 68 45 6e 74   Tcl_NextHashEnt
0d50: 72 79 28 29 20 62 65 63 61 75 73 65 20 6f 66 20  ry() because of 
0d60: 74 72 61 63 65 73 2e 0a 20 20 20 20 20 20 2a 2f  traces..      */
0d70: 0a 20 0a 2d 20 20 20 20 66 6f 72 20 28 65 6e 74  . .-    for (ent
0d80: 72 79 50 74 72 20 3d 20 54 63 6c 5f 46 69 72 73  ryPtr = Tcl_Firs
0d90: 74 48 61 73 68 45 6e 74 72 79 28 26 6e 73 50 74  tHashEntry(&nsPt
0da0: 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 2c 20 26  r->childTable, &
0db0: 73 65 61 72 63 68 29 3b 0a 2d 09 20 20 20 20 65  search);.-.    e
0dc0: 6e 74 72 79 50 74 72 20 21 3d 20 4e 55 4c 4c 3b  ntryPtr != NULL;
0dd0: 0a 2d 09 20 20 20 20 65 6e 74 72 79 50 74 72 20  .-.    entryPtr 
0de0: 3d 20 54 63 6c 5f 46 69 72 73 74 48 61 73 68 45  = Tcl_FirstHashE
0df0: 6e 74 72 79 28 26 6e 73 50 74 72 2d 3e 63 68 69  ntry(&nsPtr->chi
0e00: 6c 64 54 61 62 6c 65 2c 20 26 73 65 61 72 63 68  ldTable, &search
0e10: 29 29 20 7b 0a 2d 09 63 68 69 6c 64 4e 73 50 74  )) {.-.childNsPt
0e20: 72 20 3d 20 54 63 6c 5f 47 65 74 48 61 73 68 56  r = Tcl_GetHashV
0e30: 61 6c 75 65 28 65 6e 74 72 79 50 74 72 29 3b 0a  alue(entryPtr);.
0e40: 2d 09 54 63 6c 5f 44 65 6c 65 74 65 4e 61 6d 65  -.Tcl_DeleteName
0e50: 73 70 61 63 65 28 63 68 69 6c 64 4e 73 50 74 72  space(childNsPtr
0e60: 29 3b 0a 2b 20 20 20 20 69 66 20 28 6e 73 50 74  );.+    if (nsPt
0e70: 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 50 74 72  r->childTablePtr
0e80: 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 66 6f   != NULL) {.+.fo
0e90: 72 20 28 65 6e 74 72 79 50 74 72 20 3d 20 54 63  r (entryPtr = Tc
0ea0: 6c 5f 46 69 72 73 74 48 61 73 68 45 6e 74 72 79  l_FirstHashEntry
0eb0: 28 6e 73 50 74 72 2d 3e 63 68 69 6c 64 54 61 62  (nsPtr->childTab
0ec0: 6c 65 50 74 72 2c 20 26 73 65 61 72 63 68 29 3b  lePtr, &search);
0ed0: 0a 2b 09 09 65 6e 74 72 79 50 74 72 20 21 3d 20  .+..entryPtr != 
0ee0: 4e 55 4c 4c 3b 0a 2b 09 09 65 6e 74 72 79 50 74  NULL;.+..entryPt
0ef0: 72 20 3d 20 54 63 6c 5f 46 69 72 73 74 48 61 73  r = Tcl_FirstHas
0f00: 68 45 6e 74 72 79 28 6e 73 50 74 72 2d 3e 63 68  hEntry(nsPtr->ch
0f10: 69 6c 64 54 61 62 6c 65 50 74 72 2c 26 73 65 61  ildTablePtr,&sea
0f20: 72 63 68 29 29 20 7b 0a 2b 09 20 20 20 20 63 68  rch)) {.+.    ch
0f30: 69 6c 64 4e 73 50 74 72 20 3d 20 54 63 6c 5f 47  ildNsPtr = Tcl_G
0f40: 65 74 48 61 73 68 56 61 6c 75 65 28 65 6e 74 72  etHashValue(entr
0f50: 79 50 74 72 29 3b 0a 2b 09 20 20 20 20 54 63 6c  yPtr);.+.    Tcl
0f60: 5f 44 65 6c 65 74 65 4e 61 6d 65 73 70 61 63 65  _DeleteNamespace
0f70: 28 63 68 69 6c 64 4e 73 50 74 72 29 3b 0a 2b 09  (childNsPtr);.+.
0f80: 7d 0a 20 20 20 20 20 7d 0a 20 0a 20 20 20 20 20  }.     }. .     
0f90: 2f 2a 0a 40 40 20 2d 32 32 31 38 2c 37 20 2b 32  /*.@@ -2218,7 +2
0fa0: 32 32 39 2c 31 31 20 40 40 0a 20 09 20 2a 2f 0a  229,11 @@. . */.
0fb0: 20 0a 20 09 69 66 20 28 6e 73 50 74 72 20 21 3d   . .if (nsPtr !=
0fc0: 20 4e 55 4c 4c 29 20 7b 0a 2d 09 20 20 20 20 65   NULL) {.-.    e
0fd0: 6e 74 72 79 50 74 72 20 3d 20 54 63 6c 5f 46 69  ntryPtr = Tcl_Fi
0fe0: 6e 64 48 61 73 68 45 6e 74 72 79 28 26 6e 73 50  ndHashEntry(&nsP
0ff0: 74 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 2c 20  tr->childTable, 
1000: 6e 73 4e 61 6d 65 29 3b 0a 2b 09 20 20 20 20 69  nsName);.+.    i
1010: 66 20 28 6e 73 50 74 72 2d 3e 63 68 69 6c 64 54  f (nsPtr->childT
1020: 61 62 6c 65 50 74 72 20 3d 3d 20 4e 55 4c 4c 29  ablePtr == NULL)
1030: 20 7b 0a 2b 09 09 65 6e 74 72 79 50 74 72 20 3d   {.+..entryPtr =
1040: 20 4e 55 4c 4c 3b 0a 2b 09 20 20 20 20 7d 20 65   NULL;.+.    } e
1050: 6c 73 65 20 7b 0a 2b 09 09 65 6e 74 72 79 50 74  lse {.+..entryPt
1060: 72 20 3d 20 54 63 6c 5f 46 69 6e 64 48 61 73 68  r = Tcl_FindHash
1070: 45 6e 74 72 79 28 6e 73 50 74 72 2d 3e 63 68 69  Entry(nsPtr->chi
1080: 6c 64 54 61 62 6c 65 50 74 72 2c 20 6e 73 4e 61  ldTablePtr, nsNa
1090: 6d 65 29 3b 0a 2b 09 20 20 20 20 7d 0a 20 09 20  me);.+.    }. . 
10a0: 20 20 20 69 66 20 28 65 6e 74 72 79 50 74 72 20     if (entryPtr 
10b0: 21 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 09 6e 73  != NULL) {. ..ns
10c0: 50 74 72 20 3d 20 54 63 6c 5f 47 65 74 48 61 73  Ptr = Tcl_GetHas
10d0: 68 56 61 6c 75 65 28 65 6e 74 72 79 50 74 72 29  hValue(entryPtr)
10e0: 3b 0a 20 09 20 20 20 20 7d 20 65 6c 73 65 20 69  ;. .    } else i
10f0: 66 20 28 66 6c 61 67 73 20 26 20 54 43 4c 5f 43  f (flags & TCL_C
1100: 52 45 41 54 45 5f 4e 53 5f 49 46 5f 55 4e 4b 4e  REATE_NS_IF_UNKN
1110: 4f 57 4e 29 20 7b 0a 40 40 20 2d 32 32 32 37 2c  OWN) {.@@ -2227,
1120: 38 20 2b 32 32 34 32 2c 38 20 40 40 0a 20 09 09  8 +2242,8 @@. ..
1130: 28 76 6f 69 64 29 20 54 63 6c 50 75 73 68 53 74  (void) TclPushSt
1140: 61 63 6b 46 72 61 6d 65 28 69 6e 74 65 72 70 2c  ackFrame(interp,
1150: 20 26 66 72 61 6d 65 50 74 72 2c 0a 20 09 09 09   &framePtr,. ...
1160: 28 54 63 6c 5f 4e 61 6d 65 73 70 61 63 65 20 2a  (Tcl_Namespace *
1170: 29 20 6e 73 50 74 72 2c 20 2f 2a 69 73 50 72 6f  ) nsPtr, /*isPro
1180: 63 43 61 6c 6c 46 72 61 6d 65 2a 2f 20 30 29 3b  cCallFrame*/ 0);
1190: 0a 20 0a 2d 09 09 6e 73 50 74 72 20 3d 20 28 4e  . .-..nsPtr = (N
11a0: 61 6d 65 73 70 61 63 65 20 2a 29 20 54 63 6c 5f  amespace *) Tcl_
11b0: 43 72 65 61 74 65 4e 61 6d 65 73 70 61 63 65 28  CreateNamespace(
11c0: 69 6e 74 65 72 70 2c 20 6e 73 4e 61 6d 65 2c 0a  interp, nsName,.
11d0: 2d 09 09 09 4e 55 4c 4c 2c 20 4e 55 4c 4c 29 3b  -...NULL, NULL);
11e0: 0a 2b 09 09 6e 73 50 74 72 20 3d 20 28 4e 61 6d  .+..nsPtr = (Nam
11f0: 65 73 70 61 63 65 20 2a 29 0a 2b 09 09 09 54 63  espace *).+...Tc
1200: 6c 5f 43 72 65 61 74 65 4e 61 6d 65 73 70 61 63  l_CreateNamespac
1210: 65 28 69 6e 74 65 72 70 2c 20 6e 73 4e 61 6d 65  e(interp, nsName
1220: 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 29 3b 0a 20  , NULL, NULL);. 
1230: 09 09 54 63 6c 50 6f 70 53 74 61 63 6b 46 72 61  ..TclPopStackFra
1240: 6d 65 28 69 6e 74 65 72 70 29 3b 0a 20 0a 20 09  me(interp);. . .
1250: 09 69 66 20 28 6e 73 50 74 72 20 3d 3d 20 4e 55  .if (nsPtr == NU
1260: 4c 4c 29 20 7b 0a 40 40 20 2d 32 32 34 35 2c 37  LL) {.@@ -2245,7
1270: 20 2b 32 32 36 30 2c 31 31 20 40 40 0a 20 09 20   +2260,11 @@. . 
1280: 2a 2f 0a 20 0a 20 09 69 66 20 28 61 6c 74 4e 73  */. . .if (altNs
1290: 50 74 72 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2d  Ptr != NULL) {.-
12a0: 09 20 20 20 20 65 6e 74 72 79 50 74 72 20 3d 20  .    entryPtr = 
12b0: 54 63 6c 5f 46 69 6e 64 48 61 73 68 45 6e 74 72  Tcl_FindHashEntr
12c0: 79 28 26 61 6c 74 4e 73 50 74 72 2d 3e 63 68 69  y(&altNsPtr->chi
12d0: 6c 64 54 61 62 6c 65 2c 20 6e 73 4e 61 6d 65 29  ldTable, nsName)
12e0: 3b 0a 2b 09 20 20 20 20 69 66 20 28 61 6c 74 4e  ;.+.    if (altN
12f0: 73 50 74 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65  sPtr->childTable
1300: 50 74 72 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2b  Ptr != NULL) {.+
1310: 09 09 65 6e 74 72 79 50 74 72 20 3d 20 54 63 6c  ..entryPtr = Tcl
1320: 5f 46 69 6e 64 48 61 73 68 45 6e 74 72 79 28 61  _FindHashEntry(a
1330: 6c 74 4e 73 50 74 72 2d 3e 63 68 69 6c 64 54 61  ltNsPtr->childTa
1340: 62 6c 65 50 74 72 2c 20 6e 73 4e 61 6d 65 29 3b  blePtr, nsName);
1350: 0a 2b 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a  .+.    } else {.
1360: 2b 09 09 65 6e 74 72 79 50 74 72 20 3d 20 4e 55  +..entryPtr = NU
1370: 4c 4c 3b 0a 2b 09 20 20 20 20 7d 0a 20 09 20 20  LL;.+.    }. .  
1380: 20 20 69 66 20 28 65 6e 74 72 79 50 74 72 20 21    if (entryPtr !
1390: 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 09 61 6c 74  = NULL) {. ..alt
13a0: 4e 73 50 74 72 20 3d 20 54 63 6c 5f 47 65 74 48  NsPtr = Tcl_GetH
13b0: 61 73 68 56 61 6c 75 65 28 65 6e 74 72 79 50 74  ashValue(entryPt
13c0: 72 29 3b 0a 20 09 20 20 20 20 7d 20 65 6c 73 65  r);. .    } else
13d0: 20 7b 0a 40 40 20 2d 32 36 32 35 2c 38 20 2b 32   {.@@ -2625,8 +2
13e0: 36 34 34 2c 31 32 20 40 40 0a 20 0a 20 09 66 6f  644,12 @@. . .fo
13f0: 72 20 28 69 20 3d 20 74 72 61 69 6c 46 72 6f 6e  r (i = trailFron
1400: 74 3b 20 20 69 20 3e 3d 20 30 3b 20 20 69 2d 2d  t;  i >= 0;  i--
1410: 29 20 7b 0a 20 09 20 20 20 20 74 72 61 69 6c 4e  ) {. .    trailN
1420: 73 50 74 72 20 3d 20 74 72 61 69 6c 50 74 72 5b  sPtr = trailPtr[
1430: 69 5d 3b 0a 2d 09 20 20 20 20 68 50 74 72 20 3d  i];.-.    hPtr =
1440: 20 54 63 6c 5f 46 69 6e 64 48 61 73 68 45 6e 74   Tcl_FindHashEnt
1450: 72 79 28 26 73 68 61 64 6f 77 4e 73 50 74 72 2d  ry(&shadowNsPtr-
1460: 3e 63 68 69 6c 64 54 61 62 6c 65 2c 0a 2d 09 09  >childTable,.-..
1470: 20 20 20 20 74 72 61 69 6c 4e 73 50 74 72 2d 3e      trailNsPtr->
1480: 6e 61 6d 65 29 3b 0a 2b 09 20 20 20 20 69 66 20  name);.+.    if 
1490: 28 73 68 61 64 6f 77 4e 73 50 74 72 2d 3e 63 68  (shadowNsPtr->ch
14a0: 69 6c 64 54 61 62 6c 65 50 74 72 20 21 3d 20 4e  ildTablePtr != N
14b0: 55 4c 4c 29 20 7b 0a 2b 09 09 68 50 74 72 20 3d  ULL) {.+..hPtr =
14c0: 20 54 63 6c 5f 46 69 6e 64 48 61 73 68 45 6e 74   Tcl_FindHashEnt
14d0: 72 79 28 73 68 61 64 6f 77 4e 73 50 74 72 2d 3e  ry(shadowNsPtr->
14e0: 63 68 69 6c 64 54 61 62 6c 65 50 74 72 2c 0a 2b  childTablePtr,.+
14f0: 09 09 09 74 72 61 69 6c 4e 73 50 74 72 2d 3e 6e  ...trailNsPtr->n
1500: 61 6d 65 29 3b 0a 2b 09 20 20 20 20 7d 20 65 6c  ame);.+.    } el
1510: 73 65 20 7b 0a 2b 09 09 68 50 74 72 20 3d 20 4e  se {.+..hPtr = N
1520: 55 4c 4c 3b 0a 2b 09 20 20 20 20 7d 0a 20 09 20  ULL;.+.    }. . 
1530: 20 20 20 69 66 20 28 68 50 74 72 20 21 3d 20 4e     if (hPtr != N
1540: 55 4c 4c 29 20 7b 0a 20 09 09 73 68 61 64 6f 77  ULL) {. ..shadow
1550: 4e 73 50 74 72 20 3d 20 54 63 6c 5f 47 65 74 48  NsPtr = Tcl_GetH
1560: 61 73 68 56 61 6c 75 65 28 68 50 74 72 29 3b 0a  ashValue(hPtr);.
1570: 20 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 40   .    } else {.@
1580: 40 20 2d 32 39 39 36 2c 31 33 20 2b 33 30 31 39  @ -2996,13 +3019
1590: 2c 31 37 20 40 40 0a 20 09 69 66 20 28 73 74 72  ,17 @@. .if (str
15a0: 6e 63 6d 70 28 70 61 74 74 65 72 6e 2c 20 6e 73  ncmp(pattern, ns
15b0: 50 74 72 2d 3e 66 75 6c 6c 4e 61 6d 65 2c 20 6c  Ptr->fullName, l
15c0: 65 6e 67 74 68 29 20 21 3d 20 30 29 20 7b 0a 20  ength) != 0) {. 
15d0: 09 20 20 20 20 67 6f 74 6f 20 73 65 61 72 63 68  .    goto search
15e0: 44 6f 6e 65 3b 0a 20 09 7d 0a 2d 09 69 66 20 28  Done;. .}.-.if (
15f0: 54 63 6c 5f 46 69 6e 64 48 61 73 68 45 6e 74 72  Tcl_FindHashEntr
1600: 79 28 26 6e 73 50 74 72 2d 3e 63 68 69 6c 64 54  y(&nsPtr->childT
1610: 61 62 6c 65 2c 20 70 61 74 74 65 72 6e 2b 6c 65  able, pattern+le
1620: 6e 67 74 68 29 20 21 3d 20 4e 55 4c 4c 29 20 7b  ngth) != NULL) {
1630: 0a 2b 09 69 66 20 28 6e 73 50 74 72 2d 3e 63 68  .+.if (nsPtr->ch
1640: 69 6c 64 54 61 62 6c 65 50 74 72 20 21 3d 20 4e  ildTablePtr != N
1650: 55 4c 4c 20 26 26 0a 2b 09 09 54 63 6c 5f 46 69  ULL &&.+..Tcl_Fi
1660: 6e 64 48 61 73 68 45 6e 74 72 79 28 6e 73 50 74  ndHashEntry(nsPt
1670: 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 50 74 72  r->childTablePtr
1680: 2c 70 61 74 74 65 72 6e 2b 6c 65 6e 67 74 68 29  ,pattern+length)
1690: 21 3d 4e 55 4c 4c 29 7b 0a 20 09 20 20 20 20 54  !=NULL){. .    T
16a0: 63 6c 5f 4c 69 73 74 4f 62 6a 41 70 70 65 6e 64  cl_ListObjAppend
16b0: 45 6c 65 6d 65 6e 74 28 69 6e 74 65 72 70 2c 20  Element(interp, 
16c0: 6c 69 73 74 50 74 72 2c 0a 20 09 09 20 20 20 20  listPtr,. ..    
16d0: 54 63 6c 5f 4e 65 77 53 74 72 69 6e 67 4f 62 6a  Tcl_NewStringObj
16e0: 28 70 61 74 74 65 72 6e 2c 20 2d 31 29 29 3b 0a  (pattern, -1));.
16f0: 20 09 7d 0a 20 09 67 6f 74 6f 20 73 65 61 72 63   .}. .goto searc
1700: 68 44 6f 6e 65 3b 0a 20 20 20 20 20 7d 0a 2d 20  hDone;.     }.- 
1710: 20 20 20 65 6e 74 72 79 50 74 72 20 3d 20 54 63     entryPtr = Tc
1720: 6c 5f 46 69 72 73 74 48 61 73 68 45 6e 74 72 79  l_FirstHashEntry
1730: 28 26 6e 73 50 74 72 2d 3e 63 68 69 6c 64 54 61  (&nsPtr->childTa
1740: 62 6c 65 2c 20 26 73 65 61 72 63 68 29 3b 0a 2b  ble, &search);.+
1750: 20 20 20 20 69 66 20 28 6e 73 50 74 72 2d 3e 63      if (nsPtr->c
1760: 68 69 6c 64 54 61 62 6c 65 50 74 72 20 3d 3d 20  hildTablePtr == 
1770: 4e 55 4c 4c 29 20 7b 0a 2b 09 67 6f 74 6f 20 73  NULL) {.+.goto s
1780: 65 61 72 63 68 44 6f 6e 65 3b 0a 2b 20 20 20 20  earchDone;.+    
1790: 7d 0a 2b 20 20 20 20 65 6e 74 72 79 50 74 72 20  }.+    entryPtr 
17a0: 3d 20 54 63 6c 5f 46 69 72 73 74 48 61 73 68 45  = Tcl_FirstHashE
17b0: 6e 74 72 79 28 6e 73 50 74 72 2d 3e 63 68 69 6c  ntry(nsPtr->chil
17c0: 64 54 61 62 6c 65 50 74 72 2c 20 26 73 65 61 72  dTablePtr, &sear
17d0: 63 68 29 3b 0a 20 20 20 20 20 77 68 69 6c 65 20  ch);.     while 
17e0: 28 65 6e 74 72 79 50 74 72 20 21 3d 20 4e 55 4c  (entryPtr != NUL
17f0: 4c 29 20 7b 0a 20 09 63 68 69 6c 64 4e 73 50 74  L) {. .childNsPt
1800: 72 20 3d 20 54 63 6c 5f 47 65 74 48 61 73 68 56  r = Tcl_GetHashV
1810: 61 6c 75 65 28 65 6e 74 72 79 50 74 72 29 3b 0a  alue(entryPtr);.
1820: 20 09 69 66 20 28 28 70 61 74 74 65 72 6e 20 3d   .if ((pattern =
1830: 3d 20 4e 55 4c 4c 29 0a 49 6e 64 65 78 3a 20 67  = NULL).Index: g
1840: 65 6e 65 72 69 63 2f 74 63 6c 52 65 73 6f 6c 76  eneric/tclResolv
1850: 65 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  e.c.============
1860: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1870: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1880: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1890: 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65  =======.RCS file
18a0: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74  : /cvsroot/tcl/t
18b0: 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 52 65  cl/generic/tclRe
18c0: 73 6f 6c 76 65 2e 63 2c 76 0a 72 65 74 72 69 65  solve.c,v.retrie
18d0: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e  ving revision 1.
18e0: 31 30 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 31  10.diff -u -r1.1
18f0: 30 20 74 63 6c 52 65 73 6f 6c 76 65 2e 63 0a 2d  0 tclResolve.c.-
1900: 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63 6c 52 65  -- generic/tclRe
1910: 73 6f 6c 76 65 2e 63 09 32 37 20 41 70 72 20 32  solve.c.27 Apr 2
1920: 30 30 38 20 32 32 3a 32 31 3a 33 32 20 2d 30 30  008 22:21:32 -00
1930: 30 30 09 31 2e 31 30 0a 2b 2b 2b 20 67 65 6e 65  00.1.10.+++ gene
1940: 72 69 63 2f 74 63 6c 52 65 73 6f 6c 76 65 2e 63  ric/tclResolve.c
1950: 09 31 39 20 4d 61 72 20 32 30 30 39 20 31 34 3a  .19 Mar 2009 14:
1960: 35 36 3a 34 31 20 2d 30 30 30 30 0a 40 40 20 2d  56:41 -0000.@@ -
1970: 32 36 32 2c 31 31 20 2b 32 36 32 2c 31 33 20 40  262,11 +262,13 @
1980: 40 0a 20 0a 20 20 20 20 20 6e 73 50 74 72 2d 3e  @. .     nsPtr->
1990: 63 6d 64 52 65 66 45 70 6f 63 68 2b 2b 3b 0a 20  cmdRefEpoch++;. 
19a0: 0a 2d 20 20 20 20 66 6f 72 20 28 65 6e 74 72 79  .-    for (entry
19b0: 20 3d 20 54 63 6c 5f 46 69 72 73 74 48 61 73 68   = Tcl_FirstHash
19c0: 45 6e 74 72 79 28 26 6e 73 50 74 72 2d 3e 63 68  Entry(&nsPtr->ch
19d0: 69 6c 64 54 61 62 6c 65 2c 20 26 73 65 61 72 63  ildTable, &searc
19e0: 68 29 3b 0a 2d 09 20 20 20 20 65 6e 74 72 79 20  h);.-.    entry 
19f0: 21 3d 20 4e 55 4c 4c 3b 20 65 6e 74 72 79 20 3d  != NULL; entry =
1a00: 20 54 63 6c 5f 4e 65 78 74 48 61 73 68 45 6e 74   Tcl_NextHashEnt
1a10: 72 79 28 26 73 65 61 72 63 68 29 29 20 7b 0a 2d  ry(&search)) {.-
1a20: 09 4e 61 6d 65 73 70 61 63 65 20 2a 63 68 69 6c  .Namespace *chil
1a30: 64 4e 73 50 74 72 20 3d 20 54 63 6c 5f 47 65 74  dNsPtr = Tcl_Get
1a40: 48 61 73 68 56 61 6c 75 65 28 65 6e 74 72 79 29  HashValue(entry)
1a50: 3b 0a 2b 20 20 20 20 69 66 20 28 6e 73 50 74 72  ;.+    if (nsPtr
1a60: 2d 3e 63 68 69 6c 64 54 61 62 6c 65 50 74 72 20  ->childTablePtr 
1a70: 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 66 6f 72  != NULL) {.+.for
1a80: 20 28 65 6e 74 72 79 20 3d 20 54 63 6c 5f 46 69   (entry = Tcl_Fi
1a90: 72 73 74 48 61 73 68 45 6e 74 72 79 28 6e 73 50  rstHashEntry(nsP
1aa0: 74 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 50 74  tr->childTablePt
1ab0: 72 2c 20 26 73 65 61 72 63 68 29 3b 0a 2b 09 09  r, &search);.+..
1ac0: 65 6e 74 72 79 20 21 3d 20 4e 55 4c 4c 3b 20 65  entry != NULL; e
1ad0: 6e 74 72 79 20 3d 20 54 63 6c 5f 4e 65 78 74 48  ntry = Tcl_NextH
1ae0: 61 73 68 45 6e 74 72 79 28 26 73 65 61 72 63 68  ashEntry(&search
1af0: 29 29 20 7b 0a 2b 09 20 20 20 20 4e 61 6d 65 73  )) {.+.    Names
1b00: 70 61 63 65 20 2a 63 68 69 6c 64 4e 73 50 74 72  pace *childNsPtr
1b10: 20 3d 20 54 63 6c 5f 47 65 74 48 61 73 68 56 61   = Tcl_GetHashVa
1b20: 6c 75 65 28 65 6e 74 72 79 29 3b 0a 20 0a 2d 09  lue(entry);. .-.
1b30: 42 75 6d 70 43 6d 64 52 65 66 45 70 6f 63 68 73  BumpCmdRefEpochs
1b40: 28 63 68 69 6c 64 4e 73 50 74 72 29 3b 0a 2b 09  (childNsPtr);.+.
1b50: 20 20 20 20 42 75 6d 70 43 6d 64 52 65 66 45 70      BumpCmdRefEp
1b60: 6f 63 68 73 28 63 68 69 6c 64 4e 73 50 74 72 29  ochs(childNsPtr)
1b70: 3b 0a 2b 09 7d 0a 20 20 20 20 20 7d 0a 20 20 20  ;.+.}.     }.   
1b80: 20 20 54 63 6c 49 6e 76 61 6c 69 64 61 74 65 4e    TclInvalidateN
1b90: 73 50 61 74 68 28 6e 73 50 74 72 29 3b 0a 20 7d  sPath(nsPtr);. }
1ba0: 0a 49 6e 64 65 78 3a 20 70 6b 67 73 2f 69 74 63  .Index: pkgs/itc
1bb0: 6c 2f 67 65 6e 65 72 69 63 2f 69 74 63 6c 4d 69  l/generic/itclMi
1bc0: 67 72 61 74 65 32 54 63 6c 43 6f 72 65 2e 63 0a  grate2TclCore.c.
1bd0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1be0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1bf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1c10: 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63  ===.RCS file: /c
1c20: 76 73 72 6f 6f 74 2f 74 63 6c 2f 69 74 63 6c 2f  vsroot/tcl/itcl/
1c30: 67 65 6e 65 72 69 63 2f 69 74 63 6c 4d 69 67 72  generic/itclMigr
1c40: 61 74 65 32 54 63 6c 43 6f 72 65 2e 63 2c 76 0a  ate2TclCore.c,v.
1c50: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73  retrieving revis
1c60: 69 6f 6e 20 31 2e 31 2e 31 2e 34 0a 64 69 66 66  ion 1.1.1.4.diff
1c70: 20 2d 75 20 2d 72 31 2e 31 2e 31 2e 34 20 69 74   -u -r1.1.1.4 it
1c80: 63 6c 4d 69 67 72 61 74 65 32 54 63 6c 43 6f 72  clMigrate2TclCor
1c90: 65 2e 63 0a 2d 2d 2d 20 70 6b 67 73 2f 69 74 63  e.c.--- pkgs/itc
1ca0: 6c 2f 67 65 6e 65 72 69 63 2f 69 74 63 6c 4d 69  l/generic/itclMi
1cb0: 67 72 61 74 65 32 54 63 6c 43 6f 72 65 2e 63 09  grate2TclCore.c.
1cc0: 33 20 46 65 62 20 32 30 30 39 20 32 30 3a 33 35  3 Feb 2009 20:35
1cd0: 3a 30 30 20 2d 30 30 30 30 09 31 2e 31 2e 31 2e  :00 -0000.1.1.1.
1ce0: 34 0a 2b 2b 2b 20 70 6b 67 73 2f 69 74 63 6c 2f  4.+++ pkgs/itcl/
1cf0: 67 65 6e 65 72 69 63 2f 69 74 63 6c 4d 69 67 72  generic/itclMigr
1d00: 61 74 65 32 54 63 6c 43 6f 72 65 2e 63 09 31 39  ate2TclCore.c.19
1d10: 20 4d 61 72 20 32 30 30 39 20 31 34 3a 35 36 3a   Mar 2009 14:56:
1d20: 34 31 20 2d 30 30 30 30 0a 40 40 20 2d 34 37 2c  41 -0000.@@ -47,
1d30: 37 20 2b 34 37 2c 31 32 20 40 40 0a 20 5f 54 63  7 +47,12 @@. _Tc
1d40: 6c 5f 47 65 74 4e 61 6d 65 73 70 61 63 65 43 68  l_GetNamespaceCh
1d50: 69 6c 64 54 61 62 6c 65 28 0a 20 20 20 20 20 54  ildTable(.     T
1d60: 63 6c 5f 4e 61 6d 65 73 70 61 63 65 20 2a 6e 73  cl_Namespace *ns
1d70: 50 74 72 29 0a 20 7b 0a 2d 20 20 20 20 72 65 74  Ptr). {.-    ret
1d80: 75 72 6e 20 26 28 28 4e 61 6d 65 73 70 61 63 65  urn &((Namespace
1d90: 20 2a 29 6e 73 50 74 72 29 2d 3e 63 68 69 6c 64   *)nsPtr)->child
1da0: 54 61 62 6c 65 3b 0a 2b 20 20 20 20 4e 61 6d 65  Table;.+    Name
1db0: 73 70 61 63 65 20 2a 6e 50 74 72 20 3d 20 28 4e  space *nPtr = (N
1dc0: 61 6d 65 73 70 61 63 65 20 2a 29 20 6e 73 50 74  amespace *) nsPt
1dd0: 72 3b 0a 2b 20 20 20 20 69 66 20 28 6e 50 74 72  r;.+    if (nPtr
1de0: 2d 3e 63 68 69 6c 64 54 61 62 6c 65 50 74 72 20  ->childTablePtr 
1df0: 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 6e 50 74  == NULL) {.+.nPt
1e00: 72 2d 3e 63 68 69 6c 64 54 61 62 6c 65 50 74 72  r->childTablePtr
1e10: 20 3d 20 28 54 63 6c 5f 48 61 73 68 54 61 62 6c   = (Tcl_HashTabl
1e20: 65 2a 29 20 63 6b 61 6c 6c 6f 63 28 73 69 7a 65  e*) ckalloc(size
1e30: 6f 66 28 54 63 6c 5f 48 61 73 68 54 61 62 6c 65  of(Tcl_HashTable
1e40: 29 29 3b 0a 2b 09 54 63 6c 5f 49 6e 69 74 48 61  ));.+.Tcl_InitHa
1e50: 73 68 54 61 62 6c 65 28 6e 50 74 72 2d 3e 63 68  shTable(nPtr->ch
1e60: 69 6c 64 54 61 62 6c 65 50 74 72 2c 20 54 43 4c  ildTablePtr, TCL
1e70: 5f 53 54 52 49 4e 47 5f 4b 45 59 53 29 3b 0a 2b  _STRING_KEYS);.+
1e80: 20 20 20 20 7d 0a 2b 20 20 20 20 72 65 74 75 72      }.+    retur
1e90: 6e 20 6e 50 74 72 2d 3e 63 68 69 6c 64 54 61 62  n nPtr->childTab
1ea0: 6c 65 50 74 72 3b 0a 20 7d 0a 20 0a 20 69 6e 74  lePtr;. }. . int
1eb0: 0a                                               .