diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-11-16 11:17:54 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-11-16 11:17:54 (GMT) |
| commit | 5534478fa10a116663a3b05f32a119bb07aa9ed2 (patch) | |
| tree | b647149ae02bb75b31d2ac1b36cbd503bf42855c /generic/tclExecute.c | |
| parent | de0ff2272ed178a1fba979435ced086cecb968fa (diff) | |
| parent | 7dec4a7fc516a50bac5f55f6752b646254ba1082 (diff) | |
| download | tcl-5534478fa10a116663a3b05f32a119bb07aa9ed2.zip tcl-5534478fa10a116663a3b05f32a119bb07aa9ed2.tar.gz tcl-5534478fa10a116663a3b05f32a119bb07aa9ed2.tar.bz2 | |
re-base "novem-more-memory-API" to trunk. TIP not submitted yet, but upcoming.
Diffstat (limited to 'generic/tclExecute.c')
| -rw-r--r-- | generic/tclExecute.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 3eba833..bcddd1f 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -5161,7 +5161,8 @@ TEBCresume( value2Ptr = OBJ_AT_TOS; valuePtr = OBJ_UNDER_TOS; - s1 = TclGetStringFromObj(valuePtr, &s1len); + s1 = TclGetString(valuePtr); + s1len = valuePtr->length; TRACE(("\"%.30s\" \"%.30s\" => ", O2S(valuePtr), O2S(value2Ptr))); if (TclListObjLength(interp, value2Ptr, &length) != TCL_OK) { TRACE_ERROR(interp); @@ -5179,7 +5180,8 @@ TEBCresume( do { Tcl_ListObjIndex(NULL, value2Ptr, i, &o); if (o != NULL) { - s2 = TclGetStringFromObj(o, &s2len); + s2 = TclGetString(o); + s2len = o->length; } else { s2 = ""; s2len = 0; @@ -5271,9 +5273,9 @@ TEBCresume( s1len = Tcl_GetCharLength(valuePtr); s2len = Tcl_GetCharLength(value2Ptr); - if ((s1len == valuePtr->length) + if (((size_t)s1len == valuePtr->length) && (valuePtr->bytes != NULL) - && (s2len == value2Ptr->length) + && ((size_t)s2len == value2Ptr->length) && (value2Ptr->bytes != NULL)) { s1 = valuePtr->bytes; s2 = value2Ptr->bytes; @@ -5442,7 +5444,7 @@ TEBCresume( } else if (TclIsPureByteArray(valuePtr)) { objResultPtr = Tcl_NewByteArrayObj( Tcl_GetByteArrayFromObj(valuePtr, NULL)+index, 1); - } else if (valuePtr->bytes && length == valuePtr->length) { + } else if (valuePtr->bytes && (size_t)length == valuePtr->length) { objResultPtr = Tcl_NewStringObj((const char *) valuePtr->bytes+index, 1); } else { |
