Index: generic/nsfStack.c =================================================================== diff -u -N -ref01bf0b1fa63c266b7276dae6c1f376587221fa -r1f532a9dd165fbbf7f3a3f470f7661acf4c35fad --- generic/nsfStack.c (.../nsfStack.c) (revision ef01bf0b1fa63c266b7276dae6c1f376587221fa) +++ generic/nsfStack.c (.../nsfStack.c) (revision 1f532a9dd165fbbf7f3a3f470f7661acf4c35fad) @@ -637,11 +637,14 @@ int offset, Tcl_CallFrame **callingProcFramePtrPtr, Tcl_CallFrame **callingFramePtrPtr) { - register Tcl_CallFrame *varFramePtr = (Tcl_CallFrame *)Tcl_Interp_varFramePtr(interp); - int lvl = Tcl_CallFrame_level(varFramePtr); + register Tcl_CallFrame *varFramePtr; + int lvl; nonnull_assert(interp != NULL); + varFramePtr = (Tcl_CallFrame *)Tcl_Interp_varFramePtr(interp); + lvl = Tcl_CallFrame_level(varFramePtr); + for (; likely(varFramePtr != NULL); varFramePtr = Tcl_CallFrame_callerVarPtr(varFramePtr)) { register unsigned int flags = (unsigned int)Tcl_CallFrame_isProcCallFrame(varFramePtr); @@ -865,7 +868,7 @@ cscPtr = (NsfCallStackContent *)Tcl_CallFrame_clientData(varFramePtr); assert(cscPtr != NULL); - /*fprintf(stderr," --- frame %p cmdPtr %p NSF_CSC_TYPE_ENSEMBLE %d NSF_CSC_CALL_IS_ENSEMBLE %d \ + /*fprintf(stderr,"--- frame %p cmdPtr %p NSF_CSC_TYPE_ENSEMBLE %d NSF_CSC_CALL_IS_ENSEMBLE %d \ NSF_CSC_TYPE_INACTIVE %d\n", varFramePtr, cscPtr->cmdPtr, @@ -963,7 +966,7 @@ assert(cscPtr != NULL); - /*fprintf(stderr, "--- frame %p cmdPtr %p cmd %s NSF_CSC_TYPE_ENSEMBLE %d \ + /*fprintf(stderr, "--- frame %p cmdPtr %p cmd %s NSF_CSC_TYPE_ENSEMBLE %d \ NSF_CSC_CALL_IS_ENSEMBLE %d NSF_CSC_TYPE_INACTIVE %d\n", framePtr, cscPtr->cmdPtr,