summaryrefslogtreecommitdiffstats
path: root/generic/tclOOMethod.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2016-07-13 17:02:24 (GMT)
committerdgp <dgp@users.sourceforge.net>2016-07-13 17:02:24 (GMT)
commit059410842de73f5f43cf23d263880114756fbf20 (patch)
treebb5f864c4861209c4ad40eebd5ca840b4c089f98 /generic/tclOOMethod.c
parenta13a6885072371776b76ca638da45c6d274a79db (diff)
downloadtcl-059410842de73f5f43cf23d263880114756fbf20.zip
tcl-059410842de73f5f43cf23d263880114756fbf20.tar.gz
tcl-059410842de73f5f43cf23d263880114756fbf20.tar.bz2
another
Diffstat (limited to 'generic/tclOOMethod.c')
-rw-r--r--generic/tclOOMethod.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/generic/tclOOMethod.c b/generic/tclOOMethod.c
index 3d9fc35..ce397f8 100644
--- a/generic/tclOOMethod.c
+++ b/generic/tclOOMethod.c
@@ -791,6 +791,7 @@ PushMethodCallFrame(
register int result;
const char *namePtr;
CallFrame **framePtrPtr = &fdPtr->framePtr;
+ ByteCode *codePtr;
/*
* Compute basic information on the basis of the type of method it is.
@@ -856,10 +857,8 @@ PushMethodCallFrame(
* alternative is *so* slow...
*/
- if (pmPtr->procPtr->bodyPtr->typePtr == &tclByteCodeType) {
- ByteCode *codePtr =
- pmPtr->procPtr->bodyPtr->internalRep.twoPtrValue.ptr1;
-
+ ByteCodeGetIntRep(pmPtr->procPtr->bodyPtr, &tclByteCodeType, codePtr);
+ if (codePtr) {
codePtr->nsPtr = nsPtr;
}
result = TclProcCompileProc(interp, pmPtr->procPtr,
@@ -1314,7 +1313,7 @@ CloneProcedureMethod(
*/
bodyObj = Tcl_DuplicateObj(pmPtr->procPtr->bodyPtr);
- TclFreeIntRep(bodyObj);
+ Tcl_StoreIntRep(pmPtr->procPtr->bodyPtr, &tclByteCodeType, NULL);
/*
* Create the actual copy of the method record, manufacturing a new proc