Index: generic/nsf.c =================================================================== diff -u -r1e25f4b752350e34281ad2e57476437727b026ac -r3b6da5512709d653d343274219876b49690719d1 --- generic/nsf.c (.../nsf.c) (revision 1e25f4b752350e34281ad2e57476437727b026ac) +++ generic/nsf.c (.../nsf.c) (revision 3b6da5512709d653d343274219876b49690719d1) @@ -21742,13 +21742,17 @@ #endif if (unlikely(currentParamPtr > lastParamPtr)) { + int result; Tcl_Obj *methodPathObj; methodPathObj = NsfMethodNamePath(interp, CallStackGetTclFrame(interp, NULL, 0), NsfMethodName(procNameObj)); - return NsfUnexpectedArgumentError(interp, ObjStr(argumentObj), (Nsf_Object*)object, + INCR_REF_COUNT(methodPathObj); + result = NsfUnexpectedArgumentError(interp, ObjStr(argumentObj), (Nsf_Object*)object, paramPtr, methodPathObj); + DECR_REF_COUNT(methodPathObj); + return result; } if (*currentParamPtr->name == '-') { @@ -21927,13 +21931,17 @@ } if (nonposArgError != 0) { + int result; Tcl_Obj *methodPathObj = NsfMethodNamePath(interp, CallStackGetTclFrame(interp, NULL, 0), NsfMethodName(procNameObj)); - return NsfUnexpectedNonposArgumentError(interp, argumentString, - (Nsf_Object *)object, - currentParamPtr, paramPtr, - methodPathObj); + INCR_REF_COUNT(methodPathObj); + result = NsfUnexpectedNonposArgumentError(interp, argumentString, + (Nsf_Object *)object, + currentParamPtr, paramPtr, + methodPathObj); + DECR_REF_COUNT(methodPathObj); + return result; } pPtr = currentParamPtr = nextParamPtr; } @@ -21951,14 +21959,18 @@ * parameter, valueObj might be already provided for valueInArgument. */ if (unlikely(pPtr > lastParamPtr)) { + int result; Tcl_Obj *methodPathObj; methodPathObj = NsfMethodNamePath(interp, CallStackGetTclFrame(interp, NULL, 0), NsfMethodName(procNameObj)); + INCR_REF_COUNT(methodPathObj); /*fprintf(stderr, "call NsfUnexpectedArgumentError 2\n");*/ - return NsfUnexpectedArgumentError(interp, ObjStr(argumentObj), + result = NsfUnexpectedArgumentError(interp, ObjStr(argumentObj), (Nsf_Object *)object, paramPtr, methodPathObj); + DECR_REF_COUNT(methodPathObj); + return result; } /*