Index: generic/nsfStack.c =================================================================== diff -u -r114df8b23fa9e2e1ff71b959e42da5e0883354c4 -r22741a6333a986af0a38983a0d06580f1a0103e5 --- generic/nsfStack.c (.../nsfStack.c) (revision 114df8b23fa9e2e1ff71b959e42da5e0883354c4) +++ generic/nsfStack.c (.../nsfStack.c) (revision 22741a6333a986af0a38983a0d06580f1a0103e5) @@ -4,7 +4,7 @@ * Stack handling functions of the Next Scripting Framework. * * Copyright (C) 2010-2016 Gustaf Neumann - * Copyright (C) 2011-2015 Stefan Sobernig + * Copyright (C) 2011-2016 Stefan Sobernig * * Vienna University of Economics and Business * Institute of Information Systems and New Media @@ -112,9 +112,13 @@ * *---------------------------------------------------------------------- */ +void NsfShowStack(Tcl_Interp *interp) nonnull(1); + void NsfShowStack(Tcl_Interp *interp) { Tcl_CallFrame *framePtr; + nonnull_assert(interp != NULL); + fprintf(stderr, "NsfShowStack framePtr %p varFramePtr %p\n", (void *)Tcl_Interp_framePtr(interp), (void *)Tcl_Interp_varFramePtr(interp)); /* framePtr = (Tcl_CallFrame *)Tcl_Interp_varFramePtr(interp); @@ -137,8 +141,8 @@ Tcl_CallFrame_clientData(framePtr), Tcl_CallFrame_level(framePtr), (void *)Tcl_CallFrame_nsPtr(framePtr), Tcl_CallFrame_nsPtr(framePtr)->fullName, - Tcl_CallFrame_objc(framePtr) && 0 ? ObjStr(Tcl_CallFrame_objv(framePtr)[0]) : "(null)", - Tcl_CallFrame_objc(framePtr) ? Tcl_CallFrame_objc(framePtr) : -1); + Tcl_CallFrame_objc(framePtr) > 0 ? ObjStr(Tcl_CallFrame_objv(framePtr)[0]) : "(null)", + Tcl_CallFrame_objc(framePtr) > 0 ? Tcl_CallFrame_objc(framePtr) : -1); if (cscPtr != NULL) { fprintf(stderr, " csc %p frameType %.4x flags %.6x (%s.%p %s)\n", (void *)cscPtr, @@ -1041,7 +1045,7 @@ { int count = 0; NsfClasses *unstackedEntries = RUNTIME_STATE(interp)->cscList, *nextCscPtr = unstackedEntries; - while (nextCscPtr) { + while (nextCscPtr != NULL) { NsfCallStackContent *cscPtr = (NsfCallStackContent *)nextCscPtr->cl; CscListRemove(interp, cscPtr, &unstackedEntries); CscFinish(interp, cscPtr, TCL_OK, "unwind");