Index: generic/nsf.c =================================================================== diff -u -r16d627336b40d4eafd46400984337bf3e514605e -re29434ffef30bea10b7422f1f295787d41377839 --- generic/nsf.c (.../nsf.c) (revision 16d627336b40d4eafd46400984337bf3e514605e) +++ generic/nsf.c (.../nsf.c) (revision e29434ffef30bea10b7422f1f295787d41377839) @@ -10692,14 +10692,16 @@ hPtr = Tcl_FirstHashEntry(cmdTablePtr, &hSrch); for (; hPtr; hPtr = Tcl_NextHashEntry(&hSrch)) { char *key = Tcl_GetHashKey(cmdTablePtr, hPtr); - - /* - * Check, if we have and entry with this key already processed. We - * never want to report shadowed entries. - */ - Tcl_CreateHashEntry(slotTablePtr, key, &new); - if (!new) continue; + if (slotTablePtr) { + /* + * Check, if we have and entry with this key already processed. We + * never want to report shadowed entries. + */ + Tcl_CreateHashEntry(slotTablePtr, key, &new); + if (!new) continue; + } + /* * Obtain the childObject */ @@ -19363,6 +19365,25 @@ } /* +objectInfoMethod slots NsfObjInfoSlotsMethod { + {-argName "-type" -required 0 -nrargs 1 -type class} + {-argName "pattern" -required 0} +} +*/ +static int +NsfObjInfoSlotsMethod(Tcl_Interp *interp, NsfObject *object, + NsfClass *type, CONST char *pattern) { + Tcl_Obj *listObj = Tcl_NewListObj(0, NULL); + + AddSlotObjects(interp, object, "::per-object-slot", NULL, + SourceAllIdx, type, pattern, listObj); + + Tcl_SetObjResult(interp, listObj); + return TCL_OK; +} + + +/* objectInfoMethod vars NsfObjInfoVarsMethod { {-argName "pattern" -required 0} }