diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-03-22 11:25:13 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-03-22 11:25:13 (GMT) |
commit | 7d893da1b984ded235163f3ec8018195d9058f2a (patch) | |
tree | 2c801c8994dd38036f8af5d83f72ade9ea436d10 /generic/tclStringObj.c | |
parent | 17098d70c767e79c2deb65981af371cb209cd159 (diff) | |
download | tcl-7d893da1b984ded235163f3ec8018195d9058f2a.zip tcl-7d893da1b984ded235163f3ec8018195d9058f2a.tar.gz tcl-7d893da1b984ded235163f3ec8018195d9058f2a.tar.bz2 |
More progress
Diffstat (limited to 'generic/tclStringObj.c')
-rw-r--r-- | generic/tclStringObj.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 2dc79eb..6417e1b 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -644,12 +644,12 @@ TclGetCharLength( } #if TCL_UTF_MAX > 3 +#undef Tcl_GetCharLength int Tcl_GetCharLength( Tcl_Obj *objPtr) /* The String object to get the num chars * of. */ { - String *stringPtr; int numChars; /* @@ -673,19 +673,12 @@ Tcl_GetCharLength( */ if (TclIsPureByteArray(objPtr)) { - int length; - (void) Tcl_GetByteArrayFromObj(objPtr, &length); - return length; + (void) Tcl_GetByteArrayFromObj(objPtr, &numChars); + } else { + numChars = Tcl_NumUtfChars(Tcl_GetString(objPtr), -1); } - - /* - * OK, need to work with the object as a string. - */ - - SetUTF16StringFromAny(NULL, objPtr); - stringPtr = GET_STRING(objPtr); - return stringPtr->numChars; + return numChars; } #endif |