diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2013-01-27 23:38:17 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2013-01-27 23:38:17 (GMT) |
commit | 9f4a3c6758a3a0b971f85c866080b98f9a4292ae (patch) | |
tree | 8fe6025add16d7354e1a9be3644c667b4407cd2c /generic/tclStringObj.c | |
parent | 5c6ecd58dc43872d579e7ee7d0cf65eb110aaddd (diff) | |
download | tcl-novem_no_shimmer_string_length.zip tcl-novem_no_shimmer_string_length.tar.gz tcl-novem_no_shimmer_string_length.tar.bz2 |
New experiment (ended), regarding non-shimmering "string length"novem_no_shimmer_string_length
Diffstat (limited to 'generic/tclStringObj.c')
-rw-r--r-- | generic/tclStringObj.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 64c661b..040c287 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -483,6 +483,17 @@ Tcl_GetCharLength( return length; } + if ((objPtr->typePtr == &tclDictType) + || (objPtr->typePtr == &tclListType)) { + List *list = objPtr->internalRep.twoPtrValue.ptr1; + if (list->numChars == -1) { + (void) TclGetString(objPtr); + TclNumUtfChars(numChars, objPtr->bytes, objPtr->length); + list->numChars = numChars; + } + return list->numChars; + } + /* * OK, need to work with the object as a string. */ |