summaryrefslogtreecommitdiffstats
path: root/generic/tclAssembly.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2016-05-10 16:03:13 (GMT)
committerdgp <dgp@users.sourceforge.net>2016-05-10 16:03:13 (GMT)
commitf705798ed75055121f844ffb6495de356773306f (patch)
tree620e18d988e661349d957eb09da1777d21f4b2f9 /generic/tclAssembly.c
parentf816bb2a60b95431aff01e3f048b3da7353323f9 (diff)
parent54a8b027741ac316b067f829233dc6e55ed3acdb (diff)
downloadtcl-f705798ed75055121f844ffb6495de356773306f.zip
tcl-f705798ed75055121f844ffb6495de356773306f.tar.gz
tcl-f705798ed75055121f844ffb6495de356773306f.tar.bz2
merge trunk
Diffstat (limited to 'generic/tclAssembly.c')
-rw-r--r--generic/tclAssembly.c12
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);
}
/*