diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2007-11-20 20:43:08 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2007-11-20 20:43:08 (GMT) |
commit | 69ece03dc014b44e93da9576bb02d060b202013b (patch) | |
tree | b18999bb6907a1311f4eb7808445c05911198c15 /generic/tcl.h | |
parent | 0500cb0762976df7a95232b162dbb09d7876d0ea (diff) | |
download | tcl-69ece03dc014b44e93da9576bb02d060b202013b.zip tcl-69ece03dc014b44e93da9576bb02d060b202013b.tar.gz tcl-69ece03dc014b44e93da9576bb02d060b202013b.tar.bz2 |
* generic/tclDictObj.c: Changed the underlying implementation of the
hash table used in dictionaries to additionally keep all entries in
the hash table in a linked list, which is only ever added to at the
end. This makes iteration over all entries in the dictionary in
key insertion order a trivial operation, and so cleans up a great deal
of complexity relating to dictionary representation and stability of
iteration order.
Diffstat (limited to 'generic/tcl.h')
-rw-r--r-- | generic/tcl.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/generic/tcl.h b/generic/tcl.h index f9fdb1f..db919dc 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tcl.h,v 1.244 2007/11/19 18:14:48 dgp Exp $ + * RCS: @(#) $Id: tcl.h,v 1.245 2007/11/20 20:43:11 dkf Exp $ */ #ifndef _TCL @@ -1264,7 +1264,8 @@ typedef struct Tcl_HashSearch { */ typedef struct { - Tcl_HashSearch search; /* Search struct for underlying hash table. */ + void *next; /* Search position for underlying hash + * table. */ int epoch; /* Epoch marker for dictionary being searched, * or -1 if search has terminated. */ Tcl_Dict dictionaryPtr; /* Reference to dictionary being searched. */ |