From 631a3b78cb6c86df02039a5cd711ac322b932477 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Sun, 13 Jan 2019 15:37:42 +0000 Subject: Slightly simpler test for empty string, still covering all cases. Also prepare testpurebytesobj for strings >2G --- generic/tclExecute.c | 2 +- generic/tclTest.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 94912ce..51dd382 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -5238,7 +5238,7 @@ TEBCresume( /* Every range of an empty list is an empty list */ if (objc == 0) { /* avoid return of not canonical list (e. g. spaces in string repr.) */ - if (TclListObjIsCanonical(valuePtr)) { + if (!valuePtr->bytes || !valuePtr->bytes[0]) { TRACE_APPEND(("\n")); NEXT_INST_F(9, 0, 0); } diff --git a/generic/tclTest.c b/generic/tclTest.c index 0e34af7..b39ef0a 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -2085,7 +2085,7 @@ TestevalexObjCmd( flags = 0; if (objc == 3) { - const char *global = Tcl_GetStringFromObj(objv[2], &length); + const char *global = Tcl_GetString(objv[2]); if (strcmp(global, "global") != 0) { Tcl_AppendResult(interp, "bad value \"", global, "\": must be global", NULL); @@ -5001,7 +5001,8 @@ TestpurebytesobjObjCmd( */ memset(&objPtr->internalRep, 0, sizeof(objPtr->internalRep)); if (objc == 2) { - const char *s = Tcl_GetStringFromObj(objv[1], &objPtr->length); + const char *s = Tcl_GetString(objv[1]); + objPtr->length = objv[1]->length; objPtr->bytes = ckalloc(objPtr->length + 1); memcpy(objPtr->bytes, s, objPtr->length); objPtr->bytes[objPtr->length] = 0; -- cgit v0.12