Index: generic/nsf.c =================================================================== diff -u -N -r61204e9c002aef188572943eab42ae7cc89904e3 -r5e2800c94141b92a4445c25fa692d19335e1cdbe --- generic/nsf.c (.../nsf.c) (revision 61204e9c002aef188572943eab42ae7cc89904e3) +++ generic/nsf.c (.../nsf.c) (revision 5e2800c94141b92a4445c25fa692d19335e1cdbe) @@ -1255,19 +1255,21 @@ static Tcl_HashEntry * Nsf_NextHashEntry(Tcl_HashTable *tablePtr, int expected, Tcl_HashSearch *hSrchPtr) { + Tcl_HashEntry *result; nonnull_assert(tablePtr != NULL); nonnull_assert(hSrchPtr != NULL); /*fprintf(stderr, "Nsf_NextHashEntry %p expected %d numEntries %d\n", tablePtr, expected, tablePtr->numEntries);*/ if (tablePtr->numEntries < 1) { - return NULL; + result = NULL; } else if (tablePtr->numEntries != expected) { - return Tcl_FirstHashEntry(tablePtr, hSrchPtr); + result = Tcl_FirstHashEntry(tablePtr, hSrchPtr); } else { - return Tcl_NextHashEntry(hSrchPtr); + result = Tcl_NextHashEntry(hSrchPtr); } + return result; } /* @@ -24285,8 +24287,9 @@ ListCmdParams(Tcl_Interp *interp, Tcl_Command cmd, NsfObject *contextObject, const char *pattern, const char *methodName, NsfParamsPrintStyle printStyle) { NsfParamDefs *paramDefs; - Tcl_Obj *listObj; - Proc *procPtr; + Tcl_Obj *listObj; + Proc *procPtr; + int result = TCL_OK; nonnull_assert(interp != NULL); nonnull_assert(methodName != NULL); @@ -24423,28 +24426,28 @@ } if (Tcl_Command_objProc(cmd) == NsfForwardMethod) { - return NsfPrintError(interp, "could not obtain parameter definition for forwarder '%s'", - methodName); + result = NsfPrintError(interp, "could not obtain parameter definition for forwarder '%s'", + methodName); + } else if (CmdIsNsfObject(cmd)) { /* procPtr == NsfObjDispatch: Reached for: ... ensemble objects ... plain objects */ - return TCL_OK; } else if (Tcl_Command_objProc(cmd) == NsfProcStub) { /* * Reached for C-implemented Tcl command procs */ - return TCL_OK; } else { /* * Reached for other C-implemented command procs */ - return NsfPrintError(interp, "could not obtain parameter definition for method '%s'", methodName); + result = NsfPrintError(interp, "could not obtain parameter definition for method '%s'", methodName); } + return result; }