Index: TODO =================================================================== diff -u -r17ba2f1d86be4afd497d652b7ee39a5edc771a22 -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- TODO (.../TODO) (revision 17ba2f1d86be4afd497d652b7ee39a5edc771a22) +++ TODO (.../TODO) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -2992,7 +2992,15 @@ - library mongodb * changed mongoAPI to pointer converter interface +- C-code generator: + * additional parameter swith "-withObj" to allow passing + of internal representation and the according TclObj * + * c-implemented methods: report types in "info parameter" for + more builtin types. + * use "-withObj" in mongodb interface + * adapted regression test + TODO: - do we have to adjust the documentation in xotcl2 for object initialization? - maybe optional arg (true) to ::nsf::object::initialized Index: generic/gentclAPI.tcl =================================================================== diff -u -r17ba2f1d86be4afd497d652b7ee39a5edc771a22 -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision 17ba2f1d86be4afd497d652b7ee39a5edc771a22) +++ generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -82,7 +82,16 @@ } else { set conv ConvertTo$converter } - lappend l "{\"$argName\", $flags, $(-nrargs), $conv, NULL,NULL,\"$(-type)\",NULL,NULL,NULL,NULL,NULL}" + switch -glob -- $(-type) { + "*|*" - + "tclobj" - + "args" - + "" {set typeString NULL} + default { + set typeString "\"$(-type)\"" + } + } + lappend l "{\"$argName\", $flags, $(-nrargs), $conv, NULL,NULL,$typeString,NULL,NULL,NULL,NULL,NULL}" } if {[llength $l] == 0} { return "{NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}" @@ -193,8 +202,13 @@ default { if {[info exists ::ptrConverter($(-type))]} { set type "$(-type) *" - set varName "$(-type)Ptr" + set varName "${varName}Ptr" set calledArg $varName + if {$(-withObj)} { + append calledArg [subst -nocommands {,pc.objv[$i]}] + lappend if "$type$varName" "Tcl_Obj *$(-argName)Obj" + set ifSet 1 + } } else { error "type '$(-type)' not allowed for argument" } @@ -399,7 +413,7 @@ } set completed [list] foreach parameterDefinition $parameterDefinitions { - array set "" {-required 0 -nrargs 1 -type ""} + array set "" {-required 0 -nrargs 1 -type "" -withObj 0} array set "" $parameterDefinition lappend completed [array get ""] } Index: generic/nsf.h =================================================================== diff -u -r17ba2f1d86be4afd497d652b7ee39a5edc771a22 -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- generic/nsf.h (.../nsf.h) (revision 17ba2f1d86be4afd497d652b7ee39a5edc771a22) +++ generic/nsf.h (.../nsf.h) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -279,7 +279,7 @@ */ extern int Nsf_PointerAdd(Tcl_Interp *interp, char *buffer, CONST char *typeName, void *valuePtr); -extern int Nsf_PointerDelete(void *valuePtr); +extern int Nsf_PointerDelete(CONST char *key, void *valuePtr); extern void Nsf_PointerInit(Tcl_Interp *interp); extern void Nsf_PointerExit(Tcl_Interp *interp); extern void *Nsf_PointerTypeLookup(Tcl_Interp *interp, CONST char* typeName); Index: generic/nsfAPI.h =================================================================== diff -u -r17ba2f1d86be4afd497d652b7ee39a5edc771a22 -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- generic/nsfAPI.h (.../nsfAPI.h) (revision 17ba2f1d86be4afd497d652b7ee39a5edc771a22) +++ generic/nsfAPI.h (.../nsfAPI.h) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -2310,219 +2310,219 @@ static Nsf_methodDefinition method_definitions[] = { {"::nsf::methods::class::alloc", NsfCAllocMethodStub, 1, { - {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::create", NsfCCreateMethodStub, 2, { - {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, + {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::dealloc", NsfCDeallocMethodStub, 1, { - {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::filterguard", NsfCFilterGuardMethodStub, 2, { - {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::mixinguard", NsfCMixinGuardMethodStub, 2, { - {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::new", NsfCNewMethodStub, 2, { {"-childof", 0, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"args", 0, 1, ConvertToNothing, NULL,NULL,"args",NULL,NULL,NULL,NULL,NULL}} + {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::recreate", NsfCRecreateMethodStub, 2, { - {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, + {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::superclass", NsfCSuperclassMethodStub, 1, { - {"superclasses", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"superclasses", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::filterguard", NsfClassInfoFilterguardMethodStub, 1, { - {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::filtermethods", NsfClassInfoFiltermethodsMethodStub, 2, { - {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::forward", NsfClassInfoForwardMethodStub, 2, { - {"-definition", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"name", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"-definition", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"name", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::heritage", NsfClassInfoHeritageMethodStub, 1, { - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::instances", NsfClassInfoInstancesMethodStub, 2, { - {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::method", NsfClassInfoMethodMethodStub, 2, { - {"infomethodsubcmd", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,"args|body|definition|exists|handle|parameter|parametersyntax|type|precondition|postcondition|submethods",NULL,NULL,NULL,NULL,NULL}, - {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"infomethodsubcmd", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::methods", NsfClassInfoMethodsMethodStub, 4, { - {"-callprotection", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,"all|protected|public",NULL,NULL,NULL,NULL,NULL}, - {"-methodtype", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,"all|scripted|builtin|alias|forwarder|object|setter|nsfproc",NULL,NULL,NULL,NULL,NULL}, - {"-path", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"-callprotection", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-methodtype", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-path", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::mixinof", NsfClassInfoMixinOfMethodStub, 3, { - {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-scope", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToScope, NULL,NULL,"all|class|object",NULL,NULL,NULL,NULL,NULL}, + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-scope", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToScope, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::mixinclasses", NsfClassInfoMixinclassesMethodStub, 4, { - {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-heritage", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-heritage", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::mixinguard", NsfClassInfoMixinguardMethodStub, 1, { - {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::objectparameter", NsfClassInfoObjectparameterMethodStub, 2, { - {"infoobjectparametersubcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfoobjectparametersubcmd, NULL,NULL,"list|name|parameter|parametersyntax",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"infoobjectparametersubcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfoobjectparametersubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::slots", NsfClassInfoSlotsMethodStub, 4, { - {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-source", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToSource, NULL,NULL,"all|application|baseclasses",NULL,NULL,NULL,NULL,NULL}, + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-source", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToSource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-type", 0, 1, Nsf_ConvertToClass, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::subclass", NsfClassInfoSubclassMethodStub, 2, { - {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::superclass", NsfClassInfoSuperclassMethodStub, 2, { - {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::colon", NsfColonCmdStub, 1, { {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::configure", NsfConfigureCmdStub, 2, { - {"configureoption", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToConfigureoption, NULL,NULL,"debug|dtrace|filter|profile|softrecreate|objectsystems|keepinitcmd|checkresults|checkarguments",NULL,NULL,NULL,NULL,NULL}, - {"value", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"configureoption", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToConfigureoption, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"value", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::createobjectsystem", NsfCreateObjectSystemCmdStub, 3, { - {"rootClass", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"rootMetaClass", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"systemMethods", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"rootClass", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"rootMetaClass", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"systemMethods", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::current", NsfCurrentCmdStub, 1, { - {"currentoption", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCurrentoption, NULL,NULL,"proc|method|methodpath|object|class|activelevel|args|activemixin|calledproc|calledmethod|calledclass|callingproc|callingmethod|callingclass|callinglevel|callingobject|filterreg|isnextcall|next",NULL,NULL,NULL,NULL,NULL}} + {"currentoption", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCurrentoption, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::__db_run_assertions", NsfDebugRunAssertionsCmdStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::dispatch", NsfDispatchCmdStub, 4, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"-frame", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,"method|object|default",NULL,NULL,NULL,NULL,NULL}, - {"command", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"args", 0, 1, ConvertToNothing, NULL,NULL,"args",NULL,NULL,NULL,NULL,NULL}} + {"-frame", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"command", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::finalize", NsfFinalizeObjCmdStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::interp", NsfInterpObjCmdStub, 2, { - {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, + {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::invalidateobjectparameter", NsfInvalidateObjectParameterCmdStub, 1, { {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertToClass, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::is", NsfIsCmdStub, 3, { - {"-complain", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"constraint", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"value", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"-complain", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"constraint", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"value", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::alias", NsfMethodAliasCmdStub, 5, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-frame", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,"method|object|default",NULL,NULL,NULL,NULL,NULL}, - {"cmdName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-frame", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"cmdName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::assertion", NsfMethodAssertionCmdStub, 3, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"assertionsubcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToAssertionsubcmd, NULL,NULL,"check|object-invar|class-invar",NULL,NULL,NULL,NULL,NULL}, - {"arg", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"assertionsubcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToAssertionsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"arg", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::create", NsfMethodCreateCmdStub, 9, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"-inner-namespace", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, + {"-inner-namespace", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-reg-object", 0, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"-precondition", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"-postcondition", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-precondition", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-postcondition", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::delete", NsfMethodDeleteCmdStub, 3, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::forward", NsfMethodForwardCmdStub, 11, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"method", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"-default", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"-earlybinding", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-methodprefix", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"-objframe", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-onerror", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"-verbose", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"target", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"args", 0, 1, ConvertToNothing, NULL,NULL,"args",NULL,NULL,NULL,NULL,NULL}} + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"method", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-default", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-earlybinding", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-methodprefix", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-objframe", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-onerror", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-verbose", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"target", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::property", NsfMethodPropertyCmdStub, 5, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"methodproperty", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodproperty, NULL,NULL,"class-only|call-protected|redefine-protected|returns|slotcontainer|slotobj",NULL,NULL,NULL,NULL,NULL}, - {"value", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"methodproperty", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodproperty, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"value", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::registered", NsfMethodRegisteredCmdStub, 1, { - {"handle", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"handle", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::setter", NsfMethodSetterCmdStub, 3, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"parameter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"parameter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::my", NsfMyCmdStub, 3, { - {"-local", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"args", 0, 1, ConvertToNothing, NULL,NULL,"args",NULL,NULL,NULL,NULL,NULL}} + {"-local", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::nscopycmds", NsfNSCopyCmdsCmdStub, 2, { - {"fromNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"toNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"fromNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"toNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::nscopyvars", NsfNSCopyVarsCmdStub, 2, { - {"fromNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"toNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"fromNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"toNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::next", NsfNextCmdStub, 1, { - {"arguments", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"arguments", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::object::exists", NsfObjectExistsCmdStub, 1, { - {"value", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"value", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::object::initialized", NsfObjectInitializedCmdStub, 1, { {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::object::qualify", NsfObjectQualifyCmdStub, 1, { - {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::proc", NsfProcCmdStub, 4, { - {"-ad", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"procName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"-ad", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"procName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::__profile_clear", NsfProfileClearDataStubStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} @@ -2532,8 +2532,8 @@ }, {"::nsf::relation", NsfRelationCmdStub, 3, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"relationtype", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToRelationtype, NULL,NULL,"object-mixin|class-mixin|object-filter|class-filter|class|superclass|rootclass",NULL,NULL,NULL,NULL,NULL}, - {"value", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"relationtype", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToRelationtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"value", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::self", NsfSelfCmdStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} @@ -2546,28 +2546,28 @@ }, {"::nsf::var::exists", NsfVarExistsCmdStub, 2, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::var::import", NsfVarImportCmdStub, 2, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"args", 0, 1, ConvertToNothing, NULL,NULL,"args",NULL,NULL,NULL,NULL,NULL}} + {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::var::set", NsfVarSetCmdStub, 3, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"value", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"value", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::var::unset", NsfVarUnsetCmdStub, 2, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertToObject, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, - {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::autoname", NsfOAutonameMethodStub, 3, { - {"-instance", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-reset", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"-instance", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-reset", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::class", NsfOClassMethodStub, 1, { - {"class", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"class", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::cleanup", NsfOCleanupMethodStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} @@ -2579,18 +2579,18 @@ {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::exists", NsfOExistsMethodStub, 1, { - {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::filterguard", NsfOFilterGuardMethodStub, 2, { - {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::instvar", NsfOInstvarMethodStub, 1, { {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::mixinguard", NsfOMixinGuardMethodStub, 2, { - {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::noinit", NsfONoinitMethodStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} @@ -2612,22 +2612,22 @@ }, {"::nsf::methods::object::info::children", NsfObjInfoChildrenMethodStub, 2, { {"-type", 0, 1, Nsf_ConvertToClass, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::class", NsfObjInfoClassMethodStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::filterguard", NsfObjInfoFilterguardMethodStub, 1, { - {"fileName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"fileName", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::filtermethods", NsfObjInfoFiltermethodsMethodStub, 3, { - {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-order", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-order", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::forward", NsfObjInfoForwardMethodStub, 2, { - {"-definition", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"name", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"-definition", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"name", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::hasmixin", NsfObjInfoHasMixinMethodStub, 1, { {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertToClass, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}} @@ -2639,59 +2639,59 @@ {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::is", NsfObjInfoIsMethodStub, 1, { - {"objectkind", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToObjectkind, NULL,NULL,"class|baseclass|metaclass",NULL,NULL,NULL,NULL,NULL}} + {"objectkind", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToObjectkind, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::lookupfilter", NsfObjInfoLookupFilterMethodStub, 1, { - {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::lookupmethod", NsfObjInfoLookupMethodMethodStub, 1, { - {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::lookupmethods", NsfObjInfoLookupMethodsMethodStub, 7, { - {"-callprotection", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,"all|protected|public",NULL,NULL,NULL,NULL,NULL}, - {"-incontext", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-methodtype", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,"all|scripted|builtin|alias|forwarder|object|setter",NULL,NULL,NULL,NULL,NULL}, - {"-nomixins", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-path", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-source", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToSource, NULL,NULL,"all|application|baseclasses",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"-callprotection", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-incontext", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-methodtype", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-nomixins", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-path", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-source", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToSource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::lookupslots", NsfObjInfoLookupSlotsMethodStub, 3, { - {"-source", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToSource, NULL,NULL,"all|application|baseclasses",NULL,NULL,NULL,NULL,NULL}, + {"-source", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToSource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-type", 0, 1, Nsf_ConvertToClass, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::method", NsfObjInfoMethodMethodStub, 2, { - {"infomethodsubcmd", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,"args|body|definition|exists|handle|parameter|parametersyntax|type|precondition|postcondition|submethods",NULL,NULL,NULL,NULL,NULL}, - {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"infomethodsubcmd", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::methods", NsfObjInfoMethodsMethodStub, 4, { - {"-callprotection", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,"all|protected|public",NULL,NULL,NULL,NULL,NULL}, - {"-methodtype", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,"all|scripted|builtin|alias|forwarder|object|setter|nsfproc",NULL,NULL,NULL,NULL,NULL}, - {"-path", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"-callprotection", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-methodtype", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-path", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::mixinclasses", NsfObjInfoMixinclassesMethodStub, 3, { - {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-heritage", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, + {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-heritage", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::mixinguard", NsfObjInfoMixinguardMethodStub, 1, { - {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::parent", NsfObjInfoParentMethodStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::precedence", NsfObjInfoPrecedenceMethodStub, 2, { - {"-intrinsic", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"-intrinsic", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::slots", NsfObjInfoSlotsMethodStub, 2, { {"-type", 0, 1, Nsf_ConvertToClass, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::vars", NsfObjInfoVarsMethodStub, 1, { - {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} },{NULL} }; Index: generic/nsfPointer.c =================================================================== diff -u -r17ba2f1d86be4afd497d652b7ee39a5edc771a22 -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- generic/nsfPointer.c (.../nsfPointer.c) (revision 17ba2f1d86be4afd497d652b7ee39a5edc771a22) +++ generic/nsfPointer.c (.../nsfPointer.c) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -135,8 +135,10 @@ * * Nsf_PointerDelete -- * - * Delete an hash entry from our locally maintained hash table - * free the associated memory, if valuePtr is provided. + * Delete an hash entry from our locally maintained hash table and + * free the associated memory, if the heas entry is + * found. Normally, the key should be provided. If the key is not + * available, we perform a reverse lookup from the hash table. * * Results: * valuePtr or NULL. @@ -147,13 +149,16 @@ *---------------------------------------------------------------------- */ int -Nsf_PointerDelete(void *valuePtr) { +Nsf_PointerDelete(CONST char *key, void *valuePtr) { Tcl_HashEntry *hPtr; int result; - NsfMutexLock(&pointerMutex); + assert(valuePtr); - hPtr = Nsf_PointerGetHptr(valuePtr); + NsfMutexLock(&pointerMutex); + hPtr = key + ? Tcl_CreateHashEntry(pointerHashTablePtr, key, NULL) + : Nsf_PointerGetHptr(valuePtr); if (hPtr) { ckfree((char *)valuePtr); Tcl_DeleteHashEntry(hPtr); Index: library/mongodb/mongoAPI.decls =================================================================== diff -u -r17ba2f1d86be4afd497d652b7ee39a5edc771a22 -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- library/mongodb/mongoAPI.decls (.../mongoAPI.decls) (revision 17ba2f1d86be4afd497d652b7ee39a5edc771a22) +++ library/mongodb/mongoAPI.decls (.../mongoAPI.decls) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -15,7 +15,7 @@ cmd close NsfMongoClose { - {-argName "conn" -required 1 -type mongo_connection} + {-argName "conn" -required 1 -type mongo_connection -withObj 1} } cmd connect NsfMongoConnect { {-argName "-replica-set" -required 0 -nrargs 1} @@ -88,15 +88,15 @@ } cmd gridfs::close NsfMongoGridFSClose { - {-argName "gfs" -required 1 -type gridfs} + {-argName "gfs" -required 1 -type gridfs -withObj 1} } # # GridFile # cmd gridfile::close NsfMongoGridFileClose { - {-argName "file" -required 1 -type gridfile} + {-argName "file" -required 1 -type gridfile -withObj 1} } cmd gridfile::get_contentlength NsfMongoGridFileGetContentlength { Index: library/mongodb/mongoAPI.h =================================================================== diff -u -r17ba2f1d86be4afd497d652b7ee39a5edc771a22 -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- library/mongodb/mongoAPI.h (.../mongoAPI.h) (revision 17ba2f1d86be4afd497d652b7ee39a5edc771a22) +++ library/mongodb/mongoAPI.h (.../mongoAPI.h) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -25,24 +25,24 @@ static int NsfMongoRemoveStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int NsfMongoUpdateStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); -static int NsfMongoClose(Tcl_Interp *interp, mongo_connection *mongo_connectionPtr); +static int NsfMongoClose(Tcl_Interp *interp, mongo_connection *connPtr, Tcl_Obj *connObj); static int NsfMongoConnect(Tcl_Interp *interp, CONST char *withReplica_set, Tcl_Obj *withServer); -static int NsfMongoCount(Tcl_Interp *interp, mongo_connection *mongo_connectionPtr, CONST char *namespace, Tcl_Obj *query); -static int NsfMongoGridFSClose(Tcl_Interp *interp, gridfs *gridfsPtr); -static int NsfMongoGridFSOpen(Tcl_Interp *interp, mongo_connection *mongo_connectionPtr, CONST char *dbname, CONST char *prefix); -static int NsfMongoGridFSRemoveFile(Tcl_Interp *interp, gridfs *gridfsPtr, CONST char *filename); -static int NsfMongoGridFSStoreFile(Tcl_Interp *interp, gridfs *gridfsPtr, CONST char *filename, CONST char *remotename, CONST char *contenttype); -static int NsfMongoGridFileClose(Tcl_Interp *interp, gridfile *gridfilePtr); -static int NsfMongoGridFileGetContentType(Tcl_Interp *interp, gridfile *gridfilePtr); -static int NsfMongoGridFileGetContentlength(Tcl_Interp *interp, gridfile *gridfilePtr); -static int NsfMongoGridFileGetMetaData(Tcl_Interp *interp, gridfile *gridfilePtr); -static int NsfMongoGridFileOpen(Tcl_Interp *interp, gridfs *gridfsPtr, CONST char *filename); -static int NsfMongoGridFileRead(Tcl_Interp *interp, gridfile *gridfilePtr, int size); -static int NsfMongoIndex(Tcl_Interp *interp, mongo_connection *mongo_connectionPtr, CONST char *namespace, Tcl_Obj *attributes, int withDropdups, int withUnique); -static int NsfMongoInsert(Tcl_Interp *interp, mongo_connection *mongo_connectionPtr, CONST char *namespace, Tcl_Obj *values); -static int NsfMongoQuery(Tcl_Interp *interp, mongo_connection *mongo_connectionPtr, CONST char *namespace, Tcl_Obj *query, Tcl_Obj *withAtts, int withLimit, int withSkip); -static int NsfMongoRemove(Tcl_Interp *interp, mongo_connection *mongo_connectionPtr, CONST char *namespace, Tcl_Obj *condition); -static int NsfMongoUpdate(Tcl_Interp *interp, mongo_connection *mongo_connectionPtr, CONST char *namespace, Tcl_Obj *cond, Tcl_Obj *values, int withUpsert, int withAll); +static int NsfMongoCount(Tcl_Interp *interp, mongo_connection *connPtr, CONST char *namespace, Tcl_Obj *query); +static int NsfMongoGridFSClose(Tcl_Interp *interp, gridfs *gfsPtr, Tcl_Obj *gfsObj); +static int NsfMongoGridFSOpen(Tcl_Interp *interp, mongo_connection *connPtr, CONST char *dbname, CONST char *prefix); +static int NsfMongoGridFSRemoveFile(Tcl_Interp *interp, gridfs *gfsPtr, CONST char *filename); +static int NsfMongoGridFSStoreFile(Tcl_Interp *interp, gridfs *gfsPtr, CONST char *filename, CONST char *remotename, CONST char *contenttype); +static int NsfMongoGridFileClose(Tcl_Interp *interp, gridfile *filePtr, Tcl_Obj *fileObj); +static int NsfMongoGridFileGetContentType(Tcl_Interp *interp, gridfile *filePtr); +static int NsfMongoGridFileGetContentlength(Tcl_Interp *interp, gridfile *filePtr); +static int NsfMongoGridFileGetMetaData(Tcl_Interp *interp, gridfile *filePtr); +static int NsfMongoGridFileOpen(Tcl_Interp *interp, gridfs *fsPtr, CONST char *filename); +static int NsfMongoGridFileRead(Tcl_Interp *interp, gridfile *filePtr, int size); +static int NsfMongoIndex(Tcl_Interp *interp, mongo_connection *connPtr, CONST char *namespace, Tcl_Obj *attributes, int withDropdups, int withUnique); +static int NsfMongoInsert(Tcl_Interp *interp, mongo_connection *connPtr, CONST char *namespace, Tcl_Obj *values); +static int NsfMongoQuery(Tcl_Interp *interp, mongo_connection *connPtr, CONST char *namespace, Tcl_Obj *query, Tcl_Obj *withAtts, int withLimit, int withSkip); +static int NsfMongoRemove(Tcl_Interp *interp, mongo_connection *connPtr, CONST char *namespace, Tcl_Obj *condition); +static int NsfMongoUpdate(Tcl_Interp *interp, mongo_connection *connPtr, CONST char *namespace, Tcl_Obj *cond, Tcl_Obj *values, int withUpsert, int withAll); enum { NsfMongoCloseIdx, @@ -77,10 +77,10 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - mongo_connection *mongo_connectionPtr = (mongo_connection *)pc.clientData[0]; + mongo_connection *connPtr = (mongo_connection *)pc.clientData[0]; assert(pc.status == 0); - return NsfMongoClose(interp, mongo_connectionPtr); + return NsfMongoClose(interp, connPtr,pc.objv[0]); } } @@ -116,12 +116,12 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - mongo_connection *mongo_connectionPtr = (mongo_connection *)pc.clientData[0]; + mongo_connection *connPtr = (mongo_connection *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *query = (Tcl_Obj *)pc.clientData[2]; assert(pc.status == 0); - return NsfMongoCount(interp, mongo_connectionPtr, namespace, query); + return NsfMongoCount(interp, connPtr, namespace, query); } } @@ -137,10 +137,10 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - gridfs *gridfsPtr = (gridfs *)pc.clientData[0]; + gridfs *gfsPtr = (gridfs *)pc.clientData[0]; assert(pc.status == 0); - return NsfMongoGridFSClose(interp, gridfsPtr); + return NsfMongoGridFSClose(interp, gfsPtr,pc.objv[0]); } } @@ -156,12 +156,12 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - mongo_connection *mongo_connectionPtr = (mongo_connection *)pc.clientData[0]; + mongo_connection *connPtr = (mongo_connection *)pc.clientData[0]; CONST char *dbname = (CONST char *)pc.clientData[1]; CONST char *prefix = (CONST char *)pc.clientData[2]; assert(pc.status == 0); - return NsfMongoGridFSOpen(interp, mongo_connectionPtr, dbname, prefix); + return NsfMongoGridFSOpen(interp, connPtr, dbname, prefix); } } @@ -177,11 +177,11 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - gridfs *gridfsPtr = (gridfs *)pc.clientData[0]; + gridfs *gfsPtr = (gridfs *)pc.clientData[0]; CONST char *filename = (CONST char *)pc.clientData[1]; assert(pc.status == 0); - return NsfMongoGridFSRemoveFile(interp, gridfsPtr, filename); + return NsfMongoGridFSRemoveFile(interp, gfsPtr, filename); } } @@ -197,13 +197,13 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - gridfs *gridfsPtr = (gridfs *)pc.clientData[0]; + gridfs *gfsPtr = (gridfs *)pc.clientData[0]; CONST char *filename = (CONST char *)pc.clientData[1]; CONST char *remotename = (CONST char *)pc.clientData[2]; CONST char *contenttype = (CONST char *)pc.clientData[3]; assert(pc.status == 0); - return NsfMongoGridFSStoreFile(interp, gridfsPtr, filename, remotename, contenttype); + return NsfMongoGridFSStoreFile(interp, gfsPtr, filename, remotename, contenttype); } } @@ -219,10 +219,10 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - gridfile *gridfilePtr = (gridfile *)pc.clientData[0]; + gridfile *filePtr = (gridfile *)pc.clientData[0]; assert(pc.status == 0); - return NsfMongoGridFileClose(interp, gridfilePtr); + return NsfMongoGridFileClose(interp, filePtr,pc.objv[0]); } } @@ -238,10 +238,10 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - gridfile *gridfilePtr = (gridfile *)pc.clientData[0]; + gridfile *filePtr = (gridfile *)pc.clientData[0]; assert(pc.status == 0); - return NsfMongoGridFileGetContentType(interp, gridfilePtr); + return NsfMongoGridFileGetContentType(interp, filePtr); } } @@ -257,10 +257,10 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - gridfile *gridfilePtr = (gridfile *)pc.clientData[0]; + gridfile *filePtr = (gridfile *)pc.clientData[0]; assert(pc.status == 0); - return NsfMongoGridFileGetContentlength(interp, gridfilePtr); + return NsfMongoGridFileGetContentlength(interp, filePtr); } } @@ -276,10 +276,10 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - gridfile *gridfilePtr = (gridfile *)pc.clientData[0]; + gridfile *filePtr = (gridfile *)pc.clientData[0]; assert(pc.status == 0); - return NsfMongoGridFileGetMetaData(interp, gridfilePtr); + return NsfMongoGridFileGetMetaData(interp, filePtr); } } @@ -295,11 +295,11 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - gridfs *gridfsPtr = (gridfs *)pc.clientData[0]; + gridfs *fsPtr = (gridfs *)pc.clientData[0]; CONST char *filename = (CONST char *)pc.clientData[1]; assert(pc.status == 0); - return NsfMongoGridFileOpen(interp, gridfsPtr, filename); + return NsfMongoGridFileOpen(interp, fsPtr, filename); } } @@ -315,11 +315,11 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - gridfile *gridfilePtr = (gridfile *)pc.clientData[0]; + gridfile *filePtr = (gridfile *)pc.clientData[0]; int size = (int )PTR2INT(pc.clientData[1]); assert(pc.status == 0); - return NsfMongoGridFileRead(interp, gridfilePtr, size); + return NsfMongoGridFileRead(interp, filePtr, size); } } @@ -335,14 +335,14 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - mongo_connection *mongo_connectionPtr = (mongo_connection *)pc.clientData[0]; + mongo_connection *connPtr = (mongo_connection *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *attributes = (Tcl_Obj *)pc.clientData[2]; int withDropdups = (int )PTR2INT(pc.clientData[3]); int withUnique = (int )PTR2INT(pc.clientData[4]); assert(pc.status == 0); - return NsfMongoIndex(interp, mongo_connectionPtr, namespace, attributes, withDropdups, withUnique); + return NsfMongoIndex(interp, connPtr, namespace, attributes, withDropdups, withUnique); } } @@ -358,12 +358,12 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - mongo_connection *mongo_connectionPtr = (mongo_connection *)pc.clientData[0]; + mongo_connection *connPtr = (mongo_connection *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *values = (Tcl_Obj *)pc.clientData[2]; assert(pc.status == 0); - return NsfMongoInsert(interp, mongo_connectionPtr, namespace, values); + return NsfMongoInsert(interp, connPtr, namespace, values); } } @@ -379,15 +379,15 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - mongo_connection *mongo_connectionPtr = (mongo_connection *)pc.clientData[0]; + mongo_connection *connPtr = (mongo_connection *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *query = (Tcl_Obj *)pc.clientData[2]; Tcl_Obj *withAtts = (Tcl_Obj *)pc.clientData[3]; int withLimit = (int )PTR2INT(pc.clientData[4]); int withSkip = (int )PTR2INT(pc.clientData[5]); assert(pc.status == 0); - return NsfMongoQuery(interp, mongo_connectionPtr, namespace, query, withAtts, withLimit, withSkip); + return NsfMongoQuery(interp, connPtr, namespace, query, withAtts, withLimit, withSkip); } } @@ -403,12 +403,12 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - mongo_connection *mongo_connectionPtr = (mongo_connection *)pc.clientData[0]; + mongo_connection *connPtr = (mongo_connection *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *condition = (Tcl_Obj *)pc.clientData[2]; assert(pc.status == 0); - return NsfMongoRemove(interp, mongo_connectionPtr, namespace, condition); + return NsfMongoRemove(interp, connPtr, namespace, condition); } } @@ -424,15 +424,15 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - mongo_connection *mongo_connectionPtr = (mongo_connection *)pc.clientData[0]; + mongo_connection *connPtr = (mongo_connection *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *cond = (Tcl_Obj *)pc.clientData[2]; Tcl_Obj *values = (Tcl_Obj *)pc.clientData[3]; int withUpsert = (int )PTR2INT(pc.clientData[4]); int withAll = (int )PTR2INT(pc.clientData[5]); assert(pc.status == 0); - return NsfMongoUpdate(interp, mongo_connectionPtr, namespace, cond, values, withUpsert, withAll); + return NsfMongoUpdate(interp, connPtr, namespace, cond, values, withUpsert, withAll); } } @@ -442,31 +442,31 @@ {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"mongo_connection",NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::connect", NsfMongoConnectStub, 2, { - {"-replica-set", 0, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-server", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"-replica-set", 0, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-server", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::count", NsfMongoCountStub, 3, { {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"mongo_connection",NULL,NULL,NULL,NULL,NULL}, - {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"query", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"query", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::gridfs::close", NsfMongoGridFSCloseStub, 1, { {"gfs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"gridfs",NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::gridfs::open", NsfMongoGridFSOpenStub, 3, { {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"mongo_connection",NULL,NULL,NULL,NULL,NULL}, - {"dbname", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"prefix", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"dbname", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"prefix", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::gridfs::remove_file", NsfMongoGridFSRemoveFileStub, 2, { {"gfs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"gridfs",NULL,NULL,NULL,NULL,NULL}, - {"filename", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"filename", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::gridfs::store_file", NsfMongoGridFSStoreFileStub, 4, { {"gfs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"gridfs",NULL,NULL,NULL,NULL,NULL}, - {"filename", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"remotename", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"contenttype", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"filename", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"remotename", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"contenttype", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::gridfile::close", NsfMongoGridFileCloseStub, 1, { {"file", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"gridfile",NULL,NULL,NULL,NULL,NULL}} @@ -482,44 +482,44 @@ }, {"::mongo::gridfile::open", NsfMongoGridFileOpenStub, 2, { {"fs", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"gridfs",NULL,NULL,NULL,NULL,NULL}, - {"filename", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"filename", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::gridfile::read", NsfMongoGridFileReadStub, 2, { {"file", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"gridfile",NULL,NULL,NULL,NULL,NULL}, {"size", NSF_ARG_REQUIRED, 1, Nsf_ConvertToInt32, NULL,NULL,"int32",NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::index", NsfMongoIndexStub, 5, { {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"mongo_connection",NULL,NULL,NULL,NULL,NULL}, - {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"attributes", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"-dropdups", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-unique", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"attributes", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-dropdups", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-unique", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::insert", NsfMongoInsertStub, 3, { {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"mongo_connection",NULL,NULL,NULL,NULL,NULL}, - {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"values", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"values", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::query", NsfMongoQueryStub, 6, { {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"mongo_connection",NULL,NULL,NULL,NULL,NULL}, - {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"query", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"-atts", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, + {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"query", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-atts", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-limit", 0, 1, Nsf_ConvertToInt32, NULL,NULL,"int32",NULL,NULL,NULL,NULL,NULL}, {"-skip", 0, 1, Nsf_ConvertToInt32, NULL,NULL,"int32",NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::remove", NsfMongoRemoveStub, 3, { {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"mongo_connection",NULL,NULL,NULL,NULL,NULL}, - {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"condition", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}} + {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"condition", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::mongo::update", NsfMongoUpdateStub, 6, { {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"mongo_connection",NULL,NULL,NULL,NULL,NULL}, - {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"cond", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"values", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,"tclobj",NULL,NULL,NULL,NULL,NULL}, - {"-upsert", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}, - {"-all", 0, 0, Nsf_ConvertToString, NULL,NULL,"",NULL,NULL,NULL,NULL,NULL}} + {"namespace", NSF_ARG_REQUIRED, 1, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"cond", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"values", NSF_ARG_REQUIRED, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-upsert", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-all", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} },{NULL} }; Index: library/mongodb/nsfmongo.c =================================================================== diff -u -r17ba2f1d86be4afd497d652b7ee39a5edc771a22 -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- library/mongodb/nsfmongo.c (.../nsfmongo.c) (revision 17ba2f1d86be4afd497d652b7ee39a5edc771a22) +++ library/mongodb/nsfmongo.c (.../nsfmongo.c) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -461,15 +461,15 @@ /* cmd close NsfMongoClose { - {-argName "conn" -required 1 -type mongo_connection} + {-argName "conn" -required 1 -type mongo_connection -withObj 1} } */ static int -NsfMongoClose(Tcl_Interp *interp, mongo_connection *connPtr) { +NsfMongoClose(Tcl_Interp *interp, mongo_connection *connPtr, Tcl_Obj *connObj) { if (connPtr) { mongo_destroy(connPtr); - Nsf_PointerDelete(connPtr); + Nsf_PointerDelete(ObjStr(connObj), connPtr); } return TCL_OK; } @@ -873,14 +873,14 @@ /* cmd gridfs::close NsfMongoGridFSClose { - {-argName "gfs" -required 1 -type gridfs} + {-argName "gfs" -required 1 -type gridfs -withObj 1} } */ static int -NsfMongoGridFSClose(Tcl_Interp *interp, gridfs *gridfsPtr) { +NsfMongoGridFSClose(Tcl_Interp *interp, gridfs *gridfsPtr, Tcl_Obj *gridfsObj) { gridfs_destroy(gridfsPtr); - Nsf_PointerDelete(gridfsPtr); + Nsf_PointerDelete(ObjStr(gridfsObj), gridfsPtr); return TCL_OK; } @@ -891,14 +891,14 @@ /* cmd gridfile::close NsfMongoGridFileClose { - {-argName "file" -required 1 -type gridfile} + {-argName "file" -required 1 -type gridfile -withObj 1} } */ static int -NsfMongoGridFileClose(Tcl_Interp *interp, gridfile* gridFilePtr) { +NsfMongoGridFileClose(Tcl_Interp *interp, gridfile* gridFilePtr, Tcl_Obj *gridFileObj) { gridfile_destroy(gridFilePtr); - Nsf_PointerDelete(gridFilePtr); + Nsf_PointerDelete(ObjStr(gridFileObj), gridFilePtr); return TCL_OK; } Index: tests/info-method.test =================================================================== diff -u -r67591822465e64d9051583c9aa71f8d3a4ef5c96 -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- tests/info-method.test (.../info-method.test) (revision 67591822465e64d9051583c9aa71f8d3a4ef5c96) +++ tests/info-method.test (.../info-method.test) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -460,6 +460,9 @@ ? {nx::Object info method parameter "info lookup methods"} \ "-callprotection -incontext:switch -methodtype -nomixins:switch -path:switch -source pattern:optional" + ? {nx::Object info method parametersyntax "info lookup methods"} \ + "?-callprotection all|protected|public? ?-incontext? ?-methodtype all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ?-nomixins? ?-path? ?-source all|application|baseclasses? ?pattern?" + ? {o info method parameter "foo b"} "x:int y:upper" ? {nx::Object info method parameter ::nx::Object::slot::__info::lookup::methods} \ Index: tests/parameters.test =================================================================== diff -u -r17b63f15e327dd62f8dcd5e5419b7096b7d858ce -rcef0608bea97458e5dcd87615c9b8ca3fe7b464c --- tests/parameters.test (.../parameters.test) (revision 17b63f15e327dd62f8dcd5e5419b7096b7d858ce) +++ tests/parameters.test (.../parameters.test) (revision cef0608bea97458e5dcd87615c9b8ca3fe7b464c) @@ -586,7 +586,7 @@ "query instparams for scripted method 'method'" ? {Object info method parameter ::nsf::method::forward} \ - "object -per-object:switch method -default -earlybinding:switch -methodprefix -objframe:switch -onerror -verbose:switch target:optional args" \ + "object:object -per-object:switch method -default -earlybinding:switch -methodprefix -objframe:switch -onerror -verbose:switch target:optional args" \ "query parameter for C-defined cmd 'nsf::forward'" Object require method autoname