Index: generic/nsf.c =================================================================== diff -u -r1919d17fefad9446170fa6d532b439f494189b32 -ra8fbf793da47dadb3800469704b57d01c6037e0d --- generic/nsf.c (.../nsf.c) (revision 1919d17fefad9446170fa6d532b439f494189b32) +++ generic/nsf.c (.../nsf.c) (revision a8fbf793da47dadb3800469704b57d01c6037e0d) @@ -7382,9 +7382,8 @@ } } if (format) { - Tcl_Obj *savedResultObj; + Tcl_Obj *savedResultObj, *ov[3]; - ALLOC_ON_STACK(Tcl_Obj*, 3, ov); savedResultObj = Tcl_GetObjResult(interp); INCR_REF_COUNT(savedResultObj); ov[0] = NULL; @@ -7393,15 +7392,13 @@ if (NsfCallCommand(interp, NSF_FORMAT, 3, ov) != TCL_OK) { Nsf_PopFrameObj(interp, framePtr); DECR_REF_COUNT(savedResultObj); - FREE_ON_STACK(Tcl_Obj*, ov); return NULL; } DECR_REF_COUNT(resultObj); resultObj = Tcl_DuplicateObj(Tcl_GetObjResult(interp)); INCR_REF_COUNT2("autoname", resultObj); Tcl_SetObjResult(interp, savedResultObj); DECR_REF_COUNT(savedResultObj); - FREE_ON_STACK(Tcl_Obj*, ov); } else { const char *valueString = Tcl_GetString(valueObj);