Index: TODO =================================================================== diff -u -r842271399d11707b3bff119e57a6abe89e211df2 -r433dab40ed472f0bcddf9c2afd176e3a2ff4de0b --- TODO (.../TODO) (revision 842271399d11707b3bff119e57a6abe89e211df2) +++ TODO (.../TODO) (revision 433dab40ed472f0bcddf9c2afd176e3a2ff4de0b) @@ -1967,6 +1967,9 @@ - don't leave error message when __default_superclass (or __default_metaclass) is not set +- Fixed switching between INACTIVE_MIXIN frames to ACTIVE_MIXIN frames +- Extended regression test + TODO: - "-returns" Index: generic/nsf.c =================================================================== diff -u -r842271399d11707b3bff119e57a6abe89e211df2 -r433dab40ed472f0bcddf9c2afd176e3a2ff4de0b --- generic/nsf.c (.../nsf.c) (revision 842271399d11707b3bff119e57a6abe89e211df2) +++ generic/nsf.c (.../nsf.c) (revision 433dab40ed472f0bcddf9c2afd176e3a2ff4de0b) @@ -9176,7 +9176,7 @@ */ if (object->mixinStack) { if (cscPtr->frameType == NSF_CSC_TYPE_ACTIVE_MIXIN) - cscPtr->frameType = NSF_CSC_TYPE_INACTIVE; + cscPtr->frameType = NSF_CSC_TYPE_INACTIVE_MIXIN; /* otherwise move the command pointer forward */ if (isMixinEntry) { @@ -15335,6 +15335,7 @@ if (object && (object->filterStack || object->mixinStack) ) { CallStackUseActiveFrame(interp, &ctx); } + if (!Tcl_Interp_varFramePtr(interp)) { CallStackRestoreSavedFrames(interp, &ctx); return NsfVarErrMsg(interp, "instvar used on ", objectName(object),