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 | 6be68f173f6cd81cb735935f722576ac2a7d7274 (patch) | |
tree | 05d28738f197d49c7b282fdb14111a2be6621143 /generic | |
parent | fdf990faf546306bbc55b4ad6fcd0d4922b303ef (diff) | |
download | tcl-6be68f173f6cd81cb735935f722576ac2a7d7274.zip tcl-6be68f173f6cd81cb735935f722576ac2a7d7274.tar.gz tcl-6be68f173f6cd81cb735935f722576ac2a7d7274.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; } |