Index: generic/nsf.c =================================================================== diff -u -rce32c79bf925ce88c0d2be2c880071c5e6bd3007 -r2dbfbf437a522a475d2fd32702f7c3ca6bd0eb0c --- generic/nsf.c (.../nsf.c) (revision ce32c79bf925ce88c0d2be2c880071c5e6bd3007) +++ generic/nsf.c (.../nsf.c) (revision 2dbfbf437a522a475d2fd32702f7c3ca6bd0eb0c) @@ -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; } /*