Index: TODO =================================================================== diff -u -ra866226c4ca39c65f5f98539c140326c617da884 -r827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad --- TODO (.../TODO) (revision a866226c4ca39c65f5f98539c140326c617da884) +++ TODO (.../TODO) (revision 827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad) @@ -4268,6 +4268,10 @@ (containing flags and property|variable) - extended regression test +nsf.c: +- handling of method names in error messages from nsfAPI.h. Make sure + that error message is generated with the actual method name. + ======================================================================== TODO: - flatten out interface asymmetry between methods and properties @@ -4311,11 +4315,6 @@ - do we need "config" as parameter property? -- handling of method names in error messages from nsfAPI.h. The following - ? {o __alloc x} {method __alloc not dispatched on valid class} - should be - ? {o __alloc x} {method alloc not dispatched on valid class} - - document "private property" - document new setable object properties perobjectdispatch and keepcallerself Index: generic/gentclAPI.tcl =================================================================== diff -u -r7495af656ca04a32826ecb0b6e207f886eaaa7f8 -r827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad --- generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision 7495af656ca04a32826ecb0b6e207f886eaaa7f8) +++ generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision 827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad) @@ -137,14 +137,14 @@ set if [list "NsfClass *cl"] append intro \ " NsfClass *cl = NsfObjectToClass(clientData);" \n \ - " if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, \"class\", \"$methodName\");" + " if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, \"class\", ObjStr(objv\[0\]));" } object { set a [list obj] set if [list "NsfObject *obj"] append intro \ " NsfObject *obj = (NsfObject *)clientData;" \n \ - " if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, \"object\", \"$methodName\");" + " if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, \"object\", ObjStr(objv\[0\]));" } "" { append intro " (void)clientData;\n" Index: generic/nsf.c =================================================================== diff -u -r77f50f6c6304355d638d5bf6f172d404940447de -r827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad --- generic/nsf.c (.../nsf.c) (revision 77f50f6c6304355d638d5bf6f172d404940447de) +++ generic/nsf.c (.../nsf.c) (revision 827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad) @@ -16283,7 +16283,7 @@ int result, inputArg = 1; if (unlikely(!tcd || !tcd->object)) { - return NsfDispatchClientDataError(interp, tcd, "object", "forwarder"); + return NsfDispatchClientDataError(interp, tcd, "object", objc > 0 ? ObjStr(objv[0]) : "forwarder"); } /* Index: generic/nsfAPI.h =================================================================== diff -u -r200af46a04ef0a09e4d27b6662a5a49b82c8ba52 -r827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad --- generic/nsfAPI.h (.../nsfAPI.h) (revision 200af46a04ef0a09e4d27b6662a5a49b82c8ba52) +++ generic/nsfAPI.h (.../nsfAPI.h) (revision 827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad) @@ -565,7 +565,7 @@ static int NsfCAllocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "alloc"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (objc != 2) { @@ -582,7 +582,7 @@ NsfCCreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "create"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfCCreateMethodIdx].paramDefs, method_definitions[NsfCCreateMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -600,7 +600,7 @@ static int NsfCDeallocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "dealloc"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (objc != 2) { @@ -617,7 +617,7 @@ NsfCFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "filterguard"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfCFilterGuardMethodIdx].paramDefs, method_definitions[NsfCFilterGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -637,7 +637,7 @@ NsfCMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "mixinguard"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfCMixinGuardMethodIdx].paramDefs, method_definitions[NsfCMixinGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -657,7 +657,7 @@ NsfCNewMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "new"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfCNewMethodIdx].paramDefs, method_definitions[NsfCNewMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -676,7 +676,7 @@ NsfCRecreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "recreate"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfCRecreateMethodIdx].paramDefs, method_definitions[NsfCRecreateMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -694,7 +694,7 @@ static int NsfCSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "superclass"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (objc < 1 || objc > 2) { @@ -711,7 +711,7 @@ NsfClassInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "filterguard"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoFilterguardMethodIdx].paramDefs, method_definitions[NsfClassInfoFilterguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -730,7 +730,7 @@ NsfClassInfoFiltermethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "filtermethods"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoFiltermethodsMethodIdx].paramDefs, method_definitions[NsfClassInfoFiltermethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -750,7 +750,7 @@ NsfClassInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "forward"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoForwardMethodIdx].paramDefs, method_definitions[NsfClassInfoForwardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -770,7 +770,7 @@ NsfClassInfoHeritageMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "heritage"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoHeritageMethodIdx].paramDefs, method_definitions[NsfClassInfoHeritageMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -789,7 +789,7 @@ NsfClassInfoInstancesMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "instances"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoInstancesMethodIdx].paramDefs, method_definitions[NsfClassInfoInstancesMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -823,7 +823,7 @@ NsfClassInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "method"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoMethodMethodIdx].paramDefs, method_definitions[NsfClassInfoMethodMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -843,7 +843,7 @@ NsfClassInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "methods"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoMethodsMethodIdx].paramDefs, method_definitions[NsfClassInfoMethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -867,7 +867,7 @@ NsfClassInfoMixinOfMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "mixinof"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoMixinOfMethodIdx].paramDefs, method_definitions[NsfClassInfoMixinOfMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -902,7 +902,7 @@ NsfClassInfoMixinclassesMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "mixinclasses"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoMixinclassesMethodIdx].paramDefs, method_definitions[NsfClassInfoMixinclassesMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -938,7 +938,7 @@ NsfClassInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "mixinguard"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoMixinguardMethodIdx].paramDefs, method_definitions[NsfClassInfoMixinguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -957,7 +957,7 @@ NsfClassInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "slotobjects"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoSlotobjectsMethodIdx].paramDefs, method_definitions[NsfClassInfoSlotobjectsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -979,7 +979,7 @@ NsfClassInfoSubclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "subclass"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoSubclassMethodIdx].paramDefs, method_definitions[NsfClassInfoSubclassMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -1013,7 +1013,7 @@ NsfClassInfoSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfClass *cl = NsfObjectToClass(clientData); - if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", "superclass"); + if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0], method_definitions[NsfClassInfoSuperclassMethodIdx].paramDefs, method_definitions[NsfClassInfoSuperclassMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -1896,7 +1896,7 @@ NsfOAutonameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "autoname"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfOAutonameMethodIdx].paramDefs, method_definitions[NsfOAutonameMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -1916,7 +1916,7 @@ static int NsfOCgetMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "cget"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (objc != 2) { @@ -1932,7 +1932,7 @@ static int NsfOClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "class"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (objc < 1 || objc > 2) { @@ -1948,7 +1948,7 @@ static int NsfOCleanupMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "cleanup"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (unlikely(objc != 1)) { @@ -1964,7 +1964,7 @@ static int NsfOConfigureMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "configure"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); return NsfOConfigureMethod(interp, obj, objc, objv); @@ -1974,7 +1974,7 @@ static int NsfODestroyMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "destroy"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (unlikely(objc != 1)) { @@ -1991,7 +1991,7 @@ NsfOExistsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "exists"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfOExistsMethodIdx].paramDefs, method_definitions[NsfOExistsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2010,7 +2010,7 @@ NsfOFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "filterguard"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfOFilterGuardMethodIdx].paramDefs, method_definitions[NsfOFilterGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2029,7 +2029,7 @@ static int NsfOInstvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "instvar"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); return NsfOInstvarMethod(interp, obj, objc, objv); @@ -2040,7 +2040,7 @@ NsfOMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "mixinguard"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfOMixinGuardMethodIdx].paramDefs, method_definitions[NsfOMixinGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2059,7 +2059,7 @@ static int NsfONoinitMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "noinit"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (unlikely(objc != 1)) { @@ -2075,7 +2075,7 @@ static int NsfORequireNamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "requirenamespace"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (unlikely(objc != 1)) { @@ -2091,7 +2091,7 @@ static int NsfOResidualargsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "residualargs"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); return NsfOResidualargsMethod(interp, obj, objc, objv); @@ -2101,7 +2101,7 @@ static int NsfOUplevelMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "uplevel"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); return NsfOUplevelMethod(interp, obj, objc, objv); @@ -2111,7 +2111,7 @@ static int NsfOUpvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "upvar"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); return NsfOUpvarMethod(interp, obj, objc, objv); @@ -2121,7 +2121,7 @@ static int NsfOVolatileMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "volatile"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (unlikely(objc != 1)) { @@ -2138,7 +2138,7 @@ NsfObjInfoChildrenMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "children"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoChildrenMethodIdx].paramDefs, method_definitions[NsfObjInfoChildrenMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2157,7 +2157,7 @@ static int NsfObjInfoClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "class"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (unlikely(objc != 1)) { @@ -2174,7 +2174,7 @@ NsfObjInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "filterguard"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoFilterguardMethodIdx].paramDefs, method_definitions[NsfObjInfoFilterguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2193,7 +2193,7 @@ NsfObjInfoFiltermethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "filtermethods"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoFiltermethodsMethodIdx].paramDefs, method_definitions[NsfObjInfoFiltermethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2214,7 +2214,7 @@ NsfObjInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "forward"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoForwardMethodIdx].paramDefs, method_definitions[NsfObjInfoForwardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2234,7 +2234,7 @@ NsfObjInfoHasMixinMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "hasmixin"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoHasMixinMethodIdx].paramDefs, method_definitions[NsfObjInfoHasMixinMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2253,7 +2253,7 @@ NsfObjInfoHasTypeMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "hastype"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoHasTypeMethodIdx].paramDefs, method_definitions[NsfObjInfoHasTypeMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2271,7 +2271,7 @@ static int NsfObjInfoHasnamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "hasnamespace"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (unlikely(objc != 1)) { @@ -2288,7 +2288,7 @@ NsfObjInfoIsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "is"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoIsMethodIdx].paramDefs, method_definitions[NsfObjInfoIsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2307,7 +2307,7 @@ NsfObjInfoLookupFilterMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "lookupfilter"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoLookupFilterMethodIdx].paramDefs, method_definitions[NsfObjInfoLookupFilterMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2325,7 +2325,7 @@ static int NsfObjInfoLookupMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "lookupmethod"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (objc != 2) { @@ -2342,7 +2342,7 @@ NsfObjInfoLookupMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "lookupmethods"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoLookupMethodsMethodIdx].paramDefs, method_definitions[NsfObjInfoLookupMethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2367,7 +2367,7 @@ NsfObjInfoLookupSlotsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "lookupslots"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoLookupSlotsMethodIdx].paramDefs, method_definitions[NsfObjInfoLookupSlotsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2388,7 +2388,7 @@ NsfObjInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "method"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoMethodMethodIdx].paramDefs, method_definitions[NsfObjInfoMethodMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2408,7 +2408,7 @@ NsfObjInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "methods"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoMethodsMethodIdx].paramDefs, method_definitions[NsfObjInfoMethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2430,7 +2430,7 @@ NsfObjInfoMixinclassesMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "mixinclasses"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoMixinclassesMethodIdx].paramDefs, method_definitions[NsfObjInfoMixinclassesMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2465,7 +2465,7 @@ NsfObjInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "mixinguard"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoMixinguardMethodIdx].paramDefs, method_definitions[NsfObjInfoMixinguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2483,7 +2483,7 @@ static int NsfObjInfoNameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "name"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (unlikely(objc != 1)) { @@ -2500,7 +2500,7 @@ NsfObjInfoObjectparameterMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "objectparameter"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoObjectparameterMethodIdx].paramDefs, method_definitions[NsfObjInfoObjectparameterMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2519,7 +2519,7 @@ static int NsfObjInfoParentMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "parent"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (unlikely(objc != 1)) { @@ -2536,7 +2536,7 @@ NsfObjInfoPrecedenceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "precedence"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoPrecedenceMethodIdx].paramDefs, method_definitions[NsfObjInfoPrecedenceMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2556,7 +2556,7 @@ NsfObjInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "slotobjects"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoSlotobjectsMethodIdx].paramDefs, method_definitions[NsfObjInfoSlotobjectsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, @@ -2576,7 +2576,7 @@ NsfObjInfoVarsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; NsfObject *obj = (NsfObject *)clientData; - if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", "vars"); + if (unlikely(obj == NULL)) return NsfDispatchClientDataError(interp, clientData, "object", ObjStr(objv[0])); if (likely(ArgumentParse(interp, objc, objv, obj, objv[0], method_definitions[NsfObjInfoVarsMethodIdx].paramDefs, method_definitions[NsfObjInfoVarsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, Index: tests/method-require.test =================================================================== diff -u -r5c37eb1cd2b674337c60deeef1ecef4b663fa5ce -r827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad --- tests/method-require.test (.../method-require.test) (revision 5c37eb1cd2b674337c60deeef1ecef4b663fa5ce) +++ tests/method-require.test (.../method-require.test) (revision 827f6d934f60d5ea0c02ea68d9e4cb8fc8a2f7ad) @@ -126,5 +126,5 @@ nx::Object create o ::nsf::method::require o __alloc - ? {o __alloc x} {method alloc not dispatched on valid class} + ? {o __alloc x} {method __alloc not dispatched on valid class} }