summaryrefslogtreecommitdiffstats
path: root/generic/tclStringObj.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-03-22 11:25:13 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-03-22 11:25:13 (GMT)
commit7d893da1b984ded235163f3ec8018195d9058f2a (patch)
tree2c801c8994dd38036f8af5d83f72ade9ea436d10 /generic/tclStringObj.c
parent17098d70c767e79c2deb65981af371cb209cd159 (diff)
downloadtcl-7d893da1b984ded235163f3ec8018195d9058f2a.zip
tcl-7d893da1b984ded235163f3ec8018195d9058f2a.tar.gz
tcl-7d893da1b984ded235163f3ec8018195d9058f2a.tar.bz2
More progress
Diffstat (limited to 'generic/tclStringObj.c')
-rw-r--r--generic/tclStringObj.c17
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