Index: generic/nsfObj.c =================================================================== diff -u -r207a8f514cdf626259fdbfa3bc525bdb0339efa0 -r15271802456b460be45984047976d644cf2b92a4 --- generic/nsfObj.c (.../nsfObj.c) (revision 207a8f514cdf626259fdbfa3bc525bdb0339efa0) +++ generic/nsfObj.c (.../nsfObj.c) (revision 15271802456b460be45984047976d644cf2b92a4) @@ -426,28 +426,26 @@ int oc, result; Tcl_Obj **ov; result = Tcl_ListObjGetElements(interp, objPtr, &oc, &ov); - if (result == TCL_OK) { - - if (oc == 1) { + if (unlikely(result != TCL_OK)) { + /* invalid Tcl list */ + return result; + } + + if (oc == 1) { + nameObj = ov[0]; + + /*} else if (oc == 2) { nameObj = ov[0]; - - /*} else if (oc == 2) { - nameObj = ov[0]; guardObj = ov[1];*/ - - } else if (oc == 3 && !strcmp(ObjStr(ov[1]), NsfGlobalStrings[NSF_GUARD_OPTION])) { - nameObj = ov[0]; - guardObj = ov[2]; - - } else { - nameObj = objPtr; - } - + + } else if (oc == 3 && !strcmp(ObjStr(ov[1]), NsfGlobalStrings[NSF_GUARD_OPTION])) { + nameObj = ov[0]; + guardObj = ov[2]; + } else { - /* invalid Tcl list */ - return result; + nameObj = objPtr; } - + /* * Syntax was ok. Try to lookup mixin classes: */