Index: Makefile.in =================================================================== diff -u -rd0ddb9df8ff79e52355d0c1d1aa9f4e08ef0e067 -rb9444659be7050e31855b0dfc3789087ee62a274 --- Makefile.in (.../Makefile.in) (revision d0ddb9df8ff79e52355d0c1d1aa9f4e08ef0e067) +++ Makefile.in (.../Makefile.in) (revision b9444659be7050e31855b0dfc3789087ee62a274) @@ -196,6 +196,7 @@ TCLLIBPATH="$(top_builddir) ${srcdir}" TCLSH_PROG = @TCLSH_PROG@ TCLSH = $(TCLSH_ENV) $(TCLSH_PROG) +#TCLSH = $(TCLSH_ENV) valgrind --dsymutil=yes $(TCLSH_PROG) SHARED_BUILD = @SHARED_BUILD@ INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ @NSF_BUILD_INCLUDE_SPEC@ Index: TODO =================================================================== diff -u -rc52d87b194492e80c852899ac809e5fef329dd6d -rb9444659be7050e31855b0dfc3789087ee62a274 --- TODO (.../TODO) (revision c52d87b194492e80c852899ac809e5fef329dd6d) +++ TODO (.../TODO) (revision b9444659be7050e31855b0dfc3789087ee62a274) @@ -2554,6 +2554,8 @@ changed, so we had shuffle some interals around. - nsf.c: remove unnecessary test when compiled without NRE +- nsf.c: make sure, validCscPtr is always initialized +- tested all regression tests with valgrind against tcl-trunk TODO: - maybe the destructor of a slot should remove the setter/forwarder Index: generic/nsf.c =================================================================== diff -u -rc52d87b194492e80c852899ac809e5fef329dd6d -rb9444659be7050e31855b0dfc3789087ee62a274 --- generic/nsf.c (.../nsf.c) (revision c52d87b194492e80c852899ac809e5fef329dd6d) +++ generic/nsf.c (.../nsf.c) (revision b9444659be7050e31855b0dfc3789087ee62a274) @@ -7797,7 +7797,6 @@ * The default assumption is that the CscPtr is valid after this function * finishes. */ - *validCscPtr = 1; if (proc == TclObjInterpProc) { #if defined(NRE) @@ -8021,7 +8020,7 @@ Tcl_Command cmd, NsfObject *object, NsfClass *cl, CONST char *methodName, int frameType, int flags) { NsfCallStackContent csc, *cscPtr; - int result, validCscPtr; + int result, validCscPtr = 1; assert (object->teardown); assert (cmd); @@ -8173,7 +8172,7 @@ Tcl_Command cmd = NULL; Tcl_Obj *cmdName = object->cmdName, *methodObj, *cmdObj; NsfCallStackContent csc, *cscPtr = NULL; - int validCscPtr; + int validCscPtr = 1; if (flags & NSF_CM_NO_SHIFT) { shift = 0; @@ -8390,7 +8389,6 @@ /* * The method to be dispatched is unknown */ - validCscPtr = 1; cscPtr = CscAlloc(interp, &csc, cmd); CscInit(cscPtr, object, cl, cmd, frameType, flags, methodName); cscPtr->flags |= NSF_CSC_METHOD_IS_UNKNOWN;