diff options
author | dgp <dgp@users.sourceforge.net> | 2015-05-18 14:44:16 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2015-05-18 14:44:16 (GMT) |
commit | beff5c1af7bf750d576575804688f897d55ad3b9 (patch) | |
tree | 337298bddad20a3e2e1ceeded3791635035d8a51 /generic | |
parent | edc419b297d95a7a21b718d7f447f9c249500a28 (diff) | |
parent | f2aa46953cedd6fe3b80766c84fb9720ae37f771 (diff) | |
download | tcl-bug_3608714.zip tcl-bug_3608714.tar.gz tcl-bug_3608714.tar.bz2 |
merge trunkbug_3608714
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclExecute.c | 1 | ||||
-rw-r--r-- | generic/tclOO.c | 9 |
2 files changed, 8 insertions, 2 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index f2f475a..43c2b08 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -4946,6 +4946,7 @@ TEBCresume( pc += pcAdjustment; TEBC_YIELD(); + TclPushTailcallPoint(interp); oPtr = contextPtr->oPtr; if (oPtr->flags & FILTER_HANDLING) { TclNRAddCallback(interp, FinalizeOONextFilter, diff --git a/generic/tclOO.c b/generic/tclOO.c index 77e668b..e2ef1ae 100644 --- a/generic/tclOO.c +++ b/generic/tclOO.c @@ -1675,10 +1675,13 @@ Tcl_NewObjectInstance( /* * Take care to not delete a deleted object; that would be - * bad. [Bug 2903011] + * bad. [Bug 2903011] Also take care to make sure that we have + * the name of the command before we delete it. [Bug + * 9dd1bd7a74] */ if (!Deleted(oPtr)) { + (void) TclOOObjectName(interp, oPtr); Tcl_DeleteCommandFromToken(interp, oPtr->command); } return NULL; @@ -1821,10 +1824,12 @@ FinalizeAlloc( /* * Take care to not delete a deleted object; that would be bad. [Bug - * 2903011] + * 2903011] Also take care to make sure that we have the name of the + * command before we delete it. [Bug 9dd1bd7a74] */ if (!Deleted(oPtr)) { + (void) TclOOObjectName(interp, oPtr); Tcl_DeleteCommandFromToken(interp, oPtr->command); } DelRef(oPtr); |