diff options
| author | dgp <dgp@users.sourceforge.net> | 2016-05-10 16:03:13 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2016-05-10 16:03:13 (GMT) |
| commit | f705798ed75055121f844ffb6495de356773306f (patch) | |
| tree | 620e18d988e661349d957eb09da1777d21f4b2f9 /generic/tclAssembly.c | |
| parent | f816bb2a60b95431aff01e3f048b3da7353323f9 (diff) | |
| parent | 54a8b027741ac316b067f829233dc6e55ed3acdb (diff) | |
| download | tcl-f705798ed75055121f844ffb6495de356773306f.zip tcl-f705798ed75055121f844ffb6495de356773306f.tar.gz tcl-f705798ed75055121f844ffb6495de356773306f.tar.bz2 | |
merge trunk
Diffstat (limited to 'generic/tclAssembly.c')
| -rw-r--r-- | generic/tclAssembly.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/generic/tclAssembly.c b/generic/tclAssembly.c index 6d5676b..4ad31d2 100644 --- a/generic/tclAssembly.c +++ b/generic/tclAssembly.c @@ -866,7 +866,7 @@ CompileAssembleObj( * Not valid, so free it and regenerate. */ - FreeAssembleCodeInternalRep(objPtr); + TclFreeIntRep(objPtr); } /* @@ -891,15 +891,13 @@ CompileAssembleObj( */ TclEmitOpcode(INST_DONE, &compEnv); - TclInitByteCodeObj(objPtr, &compEnv); - objPtr->typePtr = &assembleCodeType; + codePtr = TclInitByteCodeObj(objPtr, &assembleCodeType, &compEnv); TclFreeCompileEnv(&compEnv); /* * Record the local variable context to which the bytecode pertains */ - codePtr = objPtr->internalRep.twoPtrValue.ptr1; if (iPtr->varFramePtr->localCachePtr) { codePtr->localCachePtr = iPtr->varFramePtr->localCachePtr; codePtr->localCachePtr->refCount++; @@ -4313,11 +4311,7 @@ FreeAssembleCodeInternalRep( { ByteCode *codePtr = objPtr->internalRep.twoPtrValue.ptr1; - codePtr->refCount--; - if (codePtr->refCount <= 0) { - TclCleanupByteCode(codePtr); - } - objPtr->typePtr = NULL; + TclReleaseByteCode(codePtr); } /* |
