Index: generic/nsfStack.c =================================================================== diff -u -r60604f6962105d881e376602217c2719caa1167d -r937992852d688bc487c8f59273dfa045d077a9c8 --- generic/nsfStack.c (.../nsfStack.c) (revision 60604f6962105d881e376602217c2719caa1167d) +++ generic/nsfStack.c (.../nsfStack.c) (revision 937992852d688bc487c8f59273dfa045d077a9c8) @@ -827,7 +827,7 @@ */ NSF_INLINE static void CscInit(/*@notnull@*/ NsfCallStackContent *cscPtr, NsfObject *object, NsfClass *cl, - Tcl_Command cmd, int frameType, int flags, char *msg) { + Tcl_Command cmd, unsigned short frameType, unsigned short flags) { assert(cscPtr); @@ -884,10 +884,11 @@ cscPtr->self = object; cscPtr->cl = cl; cscPtr->cmdPtr = cmd; - cscPtr->frameType = frameType; - cscPtr->filterStackEntry = (frameType == NSF_CSC_TYPE_ACTIVE_FILTER) ? object->filterStack : NULL; cscPtr->objv = NULL; + cscPtr->filterStackEntry = object->filterStack; + cscPtr->frameType = frameType; + /*fprintf(stderr, "CscInit %p (%s) object %p %s flags %.6x cmdPtr %p\n",cscPtr, msg, object, objectName(object), cscPtr->flags, cscPtr->cmdPtr);*/ } @@ -974,11 +975,13 @@ object->flags & NSF_DESTROY_CALLED, object->flags & NSF_DESTROY_CALLED_SUCCESS);*/ +#if 0 // TODO remove block if (((object->flags & NSF_DESTROY_CALLED_SUCCESS)>0) != ((object->flags & NSF_DESTROY_CALLED)>0)) { fprintf(stderr, "*** flags differ for class %p\n", object); } +#endif if (object->activationCount < 1 && object->flags & NSF_DESTROY_CALLED_SUCCESS && allowDestroy) { CallStackDoDestroy(interp, object); }