summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2017-06-05 17:57:33 (GMT)
committerdgp <dgp@users.sourceforge.net>2017-06-05 17:57:33 (GMT)
commit21ad2c33e88cdca35006778053c71100709ccea8 (patch)
tree3df97fa81b3475f4cb3e7ef1bc35917075ab52da
parent0b178367ba3b9a10d44f89025c89292a4ea49b20 (diff)
downloadtcl-21ad2c33e88cdca35006778053c71100709ccea8.zip
tcl-21ad2c33e88cdca35006778053c71100709ccea8.tar.gz
tcl-21ad2c33e88cdca35006778053c71100709ccea8.tar.bz2
Revert performance optimization as first step to providing a refactored one.
-rw-r--r--generic/tclExecute.c25
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);