diff options
author | dgp <dgp@users.sourceforge.net> | 2015-05-19 19:22:48 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2015-05-19 19:22:48 (GMT) |
commit | 90ddc1d3ed9029694ddbaa9af90080762cecb51a (patch) | |
tree | 05d28738f197d49c7b282fdb14111a2be6621143 /generic | |
parent | bddc8293622557de0f7ef3228ad44c60f3ecd4dc (diff) | |
download | tcl-90ddc1d3ed9029694ddbaa9af90080762cecb51a.zip tcl-90ddc1d3ed9029694ddbaa9af90080762cecb51a.tar.gz tcl-90ddc1d3ed9029694ddbaa9af90080762cecb51a.tar.bz2 |
Don't cause string rep generation in [list <lit> <lit> ... <lit>] bytecode.
Candidate for merge to trunk to simplify bytecode.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclCompCmdsGR.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/generic/tclCompCmdsGR.c b/generic/tclCompCmdsGR.c index b77c43c..3a25978 100644 --- a/generic/tclCompCmdsGR.c +++ b/generic/tclCompCmdsGR.c @@ -1210,20 +1210,21 @@ TclCompileListCmd( valueTokenPtr = TokenAfter(valueTokenPtr); } if (listObj != NULL) { - int len; - const char *bytes = Tcl_GetStringFromObj(listObj, &len); +// int len; +// const char *bytes = Tcl_GetStringFromObj(listObj, &len); - PushLiteral(envPtr, bytes, len); - Tcl_DecrRefCount(listObj); - if (len > 0) { +// PushLiteral(envPtr, bytes, len); + TclEmitPush(TclAddLiteralObj(envPtr, listObj, NULL), envPtr); +// Tcl_DecrRefCount(listObj); +// if (len > 0) { /* * Force list interpretation! */ - TclEmitOpcode( INST_DUP, envPtr); - TclEmitOpcode( INST_LIST_LENGTH, envPtr); - TclEmitOpcode( INST_POP, envPtr); - } +// TclEmitOpcode( INST_DUP, envPtr); +// TclEmitOpcode( INST_LIST_LENGTH, envPtr); +// TclEmitOpcode( INST_POP, envPtr); +// } return TCL_OK; } |