diff options
| author | dgp@users.sourceforge.net <dgp> | 2011-04-18 18:31:18 (GMT) |
|---|---|---|
| committer | dgp@users.sourceforge.net <dgp> | 2011-04-18 18:31:18 (GMT) |
| commit | a029a7b8ce06597246f0890ca3f563661883425c (patch) | |
| tree | e3a65c3f98e799650f4c4afb7abef6c94662c81e /generic/tclUtil.c | |
| parent | 21e2ce52035042c96cda1074c3a9b20034b752d7 (diff) | |
| download | tcl-a029a7b8ce06597246f0890ca3f563661883425c.zip tcl-a029a7b8ce06597246f0890ca3f563661883425c.tar.gz tcl-a029a7b8ce06597246f0890ca3f563661883425c.tar.bz2 | |
Define and use macros that test whether a Tcl list value is canonical.
Diffstat (limited to 'generic/tclUtil.c')
| -rw-r--r-- | generic/tclUtil.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/generic/tclUtil.c b/generic/tclUtil.c index 44a24f8..b3e1e08 100644 --- a/generic/tclUtil.c +++ b/generic/tclUtil.c @@ -1196,19 +1196,14 @@ Tcl_ConcatObj( */ for (i = 0; i < objc; i++) { - List *listRepPtr; + int length; objPtr = objv[i]; - if (objPtr->typePtr != &tclListType) { - TclGetString(objPtr); - if (objPtr->length) { - break; - } else { - continue; - } + if (TclListObjIsCanonical(objPtr)) { + continue; } - listRepPtr = (List *) objPtr->internalRep.twoPtrValue.ptr1; - if (objPtr->bytes != NULL && !listRepPtr->canonicalFlag) { + Tcl_GetStringFromObj(objPtr, &length); + if (length > 0) { break; } } @@ -1228,7 +1223,7 @@ Tcl_ConcatObj( */ objPtr = objv[i]; - if (objPtr->bytes && !objPtr->length) { + if (objPtr->bytes && objPtr->length == 0) { continue; } TclListObjGetElements(NULL, objPtr, &listc, &listv); |
