diff options
author | dgp <dgp@users.sourceforge.net> | 2017-06-05 17:57:33 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2017-06-05 17:57:33 (GMT) |
commit | 21ad2c33e88cdca35006778053c71100709ccea8 (patch) | |
tree | 3df97fa81b3475f4cb3e7ef1bc35917075ab52da /generic | |
parent | 0b178367ba3b9a10d44f89025c89292a4ea49b20 (diff) | |
download | tcl-21ad2c33e88cdca35006778053c71100709ccea8.zip tcl-21ad2c33e88cdca35006778053c71100709ccea8.tar.gz tcl-21ad2c33e88cdca35006778053c71100709ccea8.tar.bz2 |
Revert performance optimization as first step to providing a refactored one.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclExecute.c | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 30ef536..cfcdd26 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -2685,34 +2685,11 @@ TEBCresume( opnd = TclGetUInt1AtPtr(pc+1); - objv = &OBJ_AT_DEPTH(opnd-1); - /* minor optimization in simplest cases */ - switch (opnd) { - case 1: /* only one object */ - objResultPtr = *objv; - goto endINST_STR_CONCAT1; - case 2: /* two objects - check empty */ - if (objv[0]->bytes == &tclEmptyString) { - objResultPtr = objv[1]; - goto endINST_STR_CONCAT1; - } - else - if (objv[1]->bytes == &tclEmptyString) { - objResultPtr = objv[0]; - goto endINST_STR_CONCAT1; - } - break; - case 0: /* no objects - use new empty */ - TclNewObj(objResultPtr); - goto endINST_STR_CONCAT1; - } - /* do concat */ if (TCL_OK != TclStringCatObjv(interp, /* inPlace */ 1, - opnd, objv, &objResultPtr)) { + opnd, &OBJ_AT_DEPTH(opnd-1), &objResultPtr)) { TRACE_ERROR(interp); goto gotError; } - endINST_STR_CONCAT1: TRACE_WITH_OBJ(("%u => ", opnd), objResultPtr); NEXT_INST_V(2, opnd, 1); |