Index: generic/itcl.decls ================================================================== --- generic/itcl.decls +++ generic/itcl.decls @@ -11,40 +11,40 @@ # the an index should never be reused for a different function in order # to preserve backwards compatibility. declare 2 { int Itcl_RegisterC(Tcl_Interp *interp, const char *name, - Tcl_CmdProc *proc, ClientData clientData, + Tcl_CmdProc *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc) } declare 3 { int Itcl_RegisterObjC(Tcl_Interp *interp, const char *name, - Tcl_ObjCmdProc *proc, ClientData clientData, + Tcl_ObjCmdProc *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc) } declare 4 { int Itcl_FindC(Tcl_Interp *interp, const char *name, Tcl_CmdProc **argProcPtr, Tcl_ObjCmdProc **objProcPtr, - ClientData *cDataPtr) + void **cDataPtr) } declare 5 { void Itcl_InitStack(Itcl_Stack *stack) } declare 6 { void Itcl_DeleteStack(Itcl_Stack *stack) } declare 7 { - void Itcl_PushStack(ClientData cdata, Itcl_Stack *stack) + void Itcl_PushStack(void *cdata, Itcl_Stack *stack) } declare 8 { - ClientData Itcl_PopStack(Itcl_Stack *stack) + void *Itcl_PopStack(Itcl_Stack *stack) } declare 9 { - ClientData Itcl_PeekStack(Itcl_Stack *stack) + void *Itcl_PeekStack(Itcl_Stack *stack) } declare 10 { - ClientData Itcl_GetStackValue(Itcl_Stack *stack, int pos) + void *Itcl_GetStackValue(Itcl_Stack *stack, int pos) } declare 11 { void Itcl_InitList(Itcl_List *listPtr) } declare 12 { @@ -55,32 +55,32 @@ } declare 14 { Itcl_ListElem *Itcl_DeleteListElem(Itcl_ListElem *elemPtr) } declare 15 { - Itcl_ListElem *Itcl_InsertList(Itcl_List *listPtr, ClientData val) + Itcl_ListElem *Itcl_InsertList(Itcl_List *listPtr, void *val) } declare 16 { - Itcl_ListElem *Itcl_InsertListElem(Itcl_ListElem *pos, ClientData val) + Itcl_ListElem *Itcl_InsertListElem(Itcl_ListElem *pos, void *val) } declare 17 { - Itcl_ListElem *Itcl_AppendList(Itcl_List *listPtr, ClientData val) + Itcl_ListElem *Itcl_AppendList(Itcl_List *listPtr, void *val) } declare 18 { - Itcl_ListElem *Itcl_AppendListElem(Itcl_ListElem *pos, ClientData val) + Itcl_ListElem *Itcl_AppendListElem(Itcl_ListElem *pos, void *val) } declare 19 { - void Itcl_SetListValue(Itcl_ListElem *elemPtr, ClientData val) + void Itcl_SetListValue(Itcl_ListElem *elemPtr, void *val) } declare 20 { - void Itcl_EventuallyFree(ClientData cdata, Tcl_FreeProc *fproc) + void Itcl_EventuallyFree(void *cdata, Tcl_FreeProc *fproc) } declare 21 { - void Itcl_PreserveData(ClientData cdata) + void Itcl_PreserveData(void *cdata) } declare 22 { - void Itcl_ReleaseData(ClientData cdata) + void Itcl_ReleaseData(void *cdata) } declare 23 { Itcl_InterpState Itcl_SaveInterpState(Tcl_Interp *interp, int status) } declare 24 { @@ -96,11 +96,20 @@ void Itcl_Free(void *ptr) } declare 28 { void *ItclGetStackValue(Itcl_Stack *stack, size_t pos) } - +declare 29 { + int Itcl_RegisterObjC2(Tcl_Interp *interp, const char *name, + Tcl_ObjCmdProc2 *proc, void *clientData, + Tcl_CmdDeleteProc *deleteProc) +} +declare 30 { + int Itcl_FindC2(Tcl_Interp *interp, const char *name, + Tcl_CmdProc **argProcPtr, Tcl_ObjCmdProc2 **objProcPtr, + void **cDataPtr) +} # private API interface itclInt # @@ -164,40 +173,40 @@ } declare 20 { ItclClass *Itcl_AdvanceHierIter(ItclHierIter *iter) } declare 21 { - int Itcl_FindClassesCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_FindClassesCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 22 { - int Itcl_FindObjectsCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_FindObjectsCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 24 { - int Itcl_DelClassCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_DelClassCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 25 { - int Itcl_DelObjectCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_DelObjectCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 26 { - int Itcl_ScopeCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ScopeCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 27 { - int Itcl_CodeCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_CodeCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 28 { - int Itcl_StubCreateCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_StubCreateCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 29 { - int Itcl_StubExistsCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_StubExistsCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 30 { int Itcl_IsStub(Tcl_Command cmd) } @@ -215,12 +224,12 @@ } declare 33 { Tcl_Namespace *Itcl_FindClassNamespace(Tcl_Interp *interp, const char *path) } declare 34 { - int Itcl_HandleClass(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_HandleClass(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 38 { void Itcl_BuildVirtualTables(ItclClass *iclsPtr) } declare 39 { @@ -259,15 +268,15 @@ # # Functions for manipulating methods and procs # declare 50 { - int Itcl_BodyCmd(ClientData dummy, Tcl_Interp *interp, int objc, + int Itcl_BodyCmd(void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 51 { - int Itcl_ConfigBodyCmd(ClientData dummy, Tcl_Interp *interp, int objc, + int Itcl_ConfigBodyCmd(void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 52 { int Itcl_CreateMethod(Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *arglist, const char *body) @@ -305,16 +314,16 @@ declare 67 { void Itcl_GetMemberFuncUsage(ItclMemberFunc *mfunc, ItclObject *contextObj, Tcl_Obj *objPtr) } declare 68 { - int Itcl_ExecMethod(ClientData clientData, Tcl_Interp *interp, int objc, + int Itcl_ExecMethod(void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 69 { - int Itcl_ExecProc(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ExecProc(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 71 { int Itcl_ConstructBase(Tcl_Interp *interp, ItclObject *contextObj, ItclClass *contextClass) } @@ -335,44 +344,44 @@ declare 75 { int Itcl_ParseInit(Tcl_Interp *interp, ItclObjectInfo *info) } declare 76 { - int Itcl_ClassCmd(ClientData clientData, Tcl_Interp *interp, int objc, + int Itcl_ClassCmd(void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 77 { - int Itcl_ClassInheritCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ClassInheritCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 78 { - int Itcl_ClassProtectionCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ClassProtectionCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 79 { - int Itcl_ClassConstructorCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ClassConstructorCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 80 { - int Itcl_ClassDestructorCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ClassDestructorCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 81 { - int Itcl_ClassMethodCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ClassMethodCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 82 { - int Itcl_ClassProcCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ClassProcCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 83 { - int Itcl_ClassVariableCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ClassVariableCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 84 { - int Itcl_ClassCommonCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ClassCommonCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 85 { int Itcl_ParseVarResolver(Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNs, int flags, Tcl_Var *rPtr) } @@ -386,55 +395,55 @@ } declare 87 { int Itcl_InstallBiMethods(Tcl_Interp *interp, ItclClass *cdefn) } declare 88 { - int Itcl_BiIsaCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_BiIsaCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 89 { - int Itcl_BiConfigureCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_BiConfigureCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 90 { - int Itcl_BiCgetCmd(ClientData clientData, Tcl_Interp *interp, int objc, + int Itcl_BiCgetCmd(void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 91 { - int Itcl_BiChainCmd(ClientData dummy, Tcl_Interp *interp, int objc, + int Itcl_BiChainCmd(void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 92 { - int Itcl_BiInfoClassCmd(ClientData dummy, Tcl_Interp *interp, int objc, + int Itcl_BiInfoClassCmd(void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 93 { - int Itcl_BiInfoInheritCmd(ClientData dummy, Tcl_Interp *interp, int objc, + int Itcl_BiInfoInheritCmd(void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 94 { - int Itcl_BiInfoHeritageCmd(ClientData dummy, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_BiInfoHeritageCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 95 { - int Itcl_BiInfoFunctionCmd(ClientData dummy, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_BiInfoFunctionCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 96 { - int Itcl_BiInfoVariableCmd(ClientData dummy, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_BiInfoVariableCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 97 { - int Itcl_BiInfoBodyCmd(ClientData dummy, Tcl_Interp *interp, int objc, + int Itcl_BiInfoBodyCmd(void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 98 { - int Itcl_BiInfoArgsCmd(ClientData dummy, Tcl_Interp *interp, int objc, + int Itcl_BiInfoArgsCmd(void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } #declare 99 { -# int Itcl_DefaultInfoCmd(ClientData dummy, Tcl_Interp *interp, int objc, +# int Itcl_DefaultInfoCmd(void *dummy, Tcl_Interp *interp, ItclSizeT objc, # Tcl_Obj *const objv[]) #} # @@ -447,12 +456,12 @@ declare 101 { int Itcl_CreateEnsemble(Tcl_Interp *interp, const char *ensName) } declare 102 { int Itcl_AddEnsemblePart(Tcl_Interp *interp, const char *ensName, - const char *partName, const char *usageInfo, Tcl_ObjCmdProc *objProc, - ClientData clientData, Tcl_CmdDeleteProc *deleteProc) + const char *partName, const char *usageInfo, Tcl_ObjCmdProc2 *objProc, + void *clientData, Tcl_CmdDeleteProc *deleteProc) } declare 103 { int Itcl_GetEnsemblePart(Tcl_Interp *interp, const char *ensName, const char *partName, Tcl_CmdInfo *infoPtr) } @@ -466,77 +475,77 @@ declare 106 { int Itcl_GetEnsembleUsageForObj(Tcl_Interp *interp, Tcl_Obj *ensObjPtr, Tcl_Obj *objPtr) } declare 107 { - int Itcl_EnsembleCmd(ClientData clientData, Tcl_Interp *interp, int objc, + int Itcl_EnsembleCmd(void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 108 { - int Itcl_EnsPartCmd(ClientData clientData, Tcl_Interp *interp, int objc, + int Itcl_EnsPartCmd(void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 109 { - int Itcl_EnsembleErrorCmd(ClientData clientData, Tcl_Interp *interp, + int Itcl_EnsembleErrorCmd(void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 115 { void Itcl_Assert(const char *testExpr, const char *fileName, int lineNum) } declare 116 { - int Itcl_IsObjectCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_IsObjectCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 117 { - int Itcl_IsClassCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_IsClassCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } # # new commands to use TclOO functionality # declare 140 { - int Itcl_FilterAddCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_FilterAddCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 141 { - int Itcl_FilterDeleteCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_FilterDeleteCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 142 { - int Itcl_ForwardAddCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ForwardAddCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 143 { - int Itcl_ForwardDeleteCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_ForwardDeleteCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 144 { - int Itcl_MixinAddCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_MixinAddCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 145 { - int Itcl_MixinDeleteCmd(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_MixinDeleteCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } # # Helper commands # #declare 150 { -# int Itcl_BiInfoCmd(ClientData clientData, Tcl_Interp *interp, int objc, +# int Itcl_BiInfoCmd(void *clientData, Tcl_Interp *interp, ItclSizeT objc, # Tcl_Obj *const objv[]) #} declare 151 { - int Itcl_BiInfoUnknownCmd(ClientData dummy, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_BiInfoUnknownCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 152 { - int Itcl_BiInfoVarsCmd(ClientData dummy, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_BiInfoVarsCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 153 { int Itcl_CanAccess2(ItclClass *iclsPtr, int protection, Tcl_Namespace *fromNsPtr) } @@ -543,19 +552,19 @@ declare 160 { int Itcl_SetCallFrameResolver(Tcl_Interp *interp, Tcl_Resolve *resolvePtr) } declare 161 { - int ItclEnsembleSubCmd(ClientData clientData, Tcl_Interp *interp, - const char *ensembleName, int objc, Tcl_Obj *const *objv, + int ItclEnsembleSubCmd(void *clientData, Tcl_Interp *interp, + const char *ensembleName, ItclSizeT objc, Tcl_Obj *const *objv, const char *functionName) } declare 162 { Tcl_Namespace *Itcl_GetUplevelNamespace(Tcl_Interp *interp, int level) } declare 163 { - ClientData Itcl_GetCallFrameClientData(Tcl_Interp *interp) + void *Itcl_GetCallFrameClientData(Tcl_Interp *interp) } declare 165 { int Itcl_SetCallFrameNamespace(Tcl_Interp *interp, Tcl_Namespace *nsPtr) } declare 166 { @@ -563,28 +572,28 @@ } declare 167 { Tcl_Obj *const *Itcl_GetCallFrameObjv(Tcl_Interp *interp) } declare 168 { - int Itcl_NWidgetCmd(ClientData infoPtr, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_NWidgetCmd(void *infoPtr, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 169 { - int Itcl_AddOptionCmd(ClientData infoPtr, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_AddOptionCmd(void *infoPtr, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 170 { - int Itcl_AddComponentCmd(ClientData infoPtr, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_AddComponentCmd(void *infoPtr, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 171 { - int Itcl_BiInfoOptionCmd(ClientData dummy, Tcl_Interp *interp, int objc, + int Itcl_BiInfoOptionCmd(void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]) } declare 172 { - int Itcl_BiInfoComponentCmd(ClientData dummy, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]) + int Itcl_BiInfoComponentCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]) } declare 173 { int Itcl_RenameCommand(Tcl_Interp *interp, const char *oldName, const char *newName) } @@ -610,12 +619,12 @@ } declare 179 { Tcl_Obj * ItclCapitalize(const char *str) } declare 180 { - int ItclClassBaseCmd(ClientData clientData, Tcl_Interp *interp, - int flags, int objc, Tcl_Obj *const objv[], ItclClass **iclsPtrPtr) + int ItclClassBaseCmd(void *clientData, Tcl_Interp *interp, + int flags, ItclSizeT objc, Tcl_Obj *const objv[], ItclClass **iclsPtrPtr) } declare 181 { int ItclCreateComponent(Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *componentPtr, int type, ItclComponent **icPtrPtr) } Index: generic/itcl2TclOO.c ================================================================== --- generic/itcl2TclOO.c +++ generic/itcl2TclOO.c @@ -68,11 +68,11 @@ Tcl_InvokeClassProcedureMethod( Tcl_Interp *interp, Tcl_Obj *namePtr, /* name of the method */ Tcl_Namespace *nsPtr, /* namespace for calling method */ ProcedureMethod *pmPtr, /* method type specific data */ - int objc, /* Number of arguments. */ + ItclSizeT objc, /* Number of arguments. */ Tcl_Obj *const *objv) /* Arguments as actually seen. */ { Proc *procPtr = pmPtr->procPtr; CallFrame *framePtr = NULL; CallFrame **framePtrPtr1 = &framePtr; @@ -145,11 +145,11 @@ int Itcl_InvokeProcedureMethod( void *clientData, /* Pointer to some per-method context. */ Tcl_Interp *interp, - int objc, /* Number of arguments. */ + ItclSizeT objc, /* Number of arguments. */ Tcl_Obj *const *objv) /* Arguments as actually seen. */ { Tcl_Namespace *nsPtr; Method *mPtr; @@ -360,11 +360,11 @@ int Itcl_SelfCmd( TCL_UNUSED(void *), Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { Interp *iPtr = (Interp *) interp; CallFrame *framePtr = iPtr->varFramePtr; CallContext *contextPtr; Index: generic/itcl2TclOO.h ================================================================== --- generic/itcl2TclOO.h +++ generic/itcl2TclOO.h @@ -23,11 +23,11 @@ MODULE_SCOPE int Itcl_PublicObjectCmd(void *clientData, Tcl_Interp *interp, Tcl_Class clsPtr, size_t objc, Tcl_Obj *const *objv); MODULE_SCOPE Tcl_Method Itcl_NewForwardClassMethod(Tcl_Interp *interp, Tcl_Class clsPtr, int flags, Tcl_Obj *nameObj, Tcl_Obj *prefixObj); MODULE_SCOPE int Itcl_SelfCmd(void *clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const *objv); + ItclSizeT objc, Tcl_Obj *const *objv); MODULE_SCOPE int Itcl_IsMethodCallFrame(Tcl_Interp *interp); MODULE_SCOPE int Itcl_InvokeEnsembleMethod(Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *namePtr, Tcl_Proc *procPtr, size_t objc, Tcl_Obj *const *objv); MODULE_SCOPE int Itcl_InvokeProcedureMethod(void *clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const *objv); + ItclSizeT objc, Tcl_Obj *const *objv); Index: generic/itclBase.c ================================================================== --- generic/itclBase.c +++ generic/itclBase.c @@ -13,12 +13,12 @@ #include #include "itclInt.h" #include "itclUuid.h" static Tcl_NamespaceDeleteProc FreeItclObjectInfo; -static Tcl_ObjCmdProc ItclSetHullWindowName; -static Tcl_ObjCmdProc ItclCheckSetItclHull; +static Tcl_ObjCmdProc2 ItclSetHullWindowName; +static Tcl_ObjCmdProc2 ItclCheckSetItclHull; MODULE_SCOPE const ItclStubs itclStubs; static int Initialize(Tcl_Interp *interp); @@ -124,14 +124,14 @@ "ItclObject", ItclDeleteObjectMetadata, /* Not really used yet */ NULL }; -static Tcl_MethodCallProc RootCallProc; +static Tcl_MethodCallProc2 RootCallProc; -const Tcl_MethodType itclRootMethodType = { - TCL_OO_METHOD_VERSION_CURRENT, +const Tcl_MethodType2 itclRootMethodType = { + TCL_OO_METHOD_VERSION_2, "itcl root method", RootCallProc, NULL, NULL }; @@ -139,11 +139,11 @@ static int RootCallProc( void *clientData, Tcl_Interp *interp, Tcl_ObjectContext context, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { Tcl_Object oPtr = Tcl_ObjectContextObject(context); ItclObject *ioPtr = (ItclObject *)Tcl_ObjectGetMetadata(oPtr, &objMDT); ItclRootMethodProc *proc = (ItclRootMethodProc *)clientData; @@ -298,17 +298,17 @@ Itcl_PreserveData(infoPtr); root = Tcl_NewObjectInstance(interp, tclCls, "::itcl::Root", NULL, 0, NULL, 0); - Tcl_NewMethod(interp, Tcl_GetObjectAsClass(root), + Tcl_NewMethod2(interp, Tcl_GetObjectAsClass(root), Tcl_NewStringObj("unknown", -1), 0, &itclRootMethodType, (void *)ItclUnknownGuts); - Tcl_NewMethod(interp, Tcl_GetObjectAsClass(root), + Tcl_NewMethod2(interp, Tcl_GetObjectAsClass(root), Tcl_NewStringObj("ItclConstructBase", -1), 0, &itclRootMethodType, (void *)ItclConstructGuts); - Tcl_NewMethod(interp, Tcl_GetObjectAsClass(root), + Tcl_NewMethod2(interp, Tcl_GetObjectAsClass(root), Tcl_NewStringObj("info", -1), 1, &itclRootMethodType, (void *)ItclInfoGuts); /* first create the Itcl base class as root of itcl classes */ if (Tcl_EvalEx(interp, clazzClassScript, -1, 0) != TCL_OK) { @@ -382,14 +382,14 @@ (Tcl_Export(interp, itclNs, "mixin", 0) != TCL_OK) || (Tcl_Export(interp, itclNs, "scope", 0) != TCL_OK)) { return TCL_ERROR; } - Tcl_CreateObjCommand(interp, + Tcl_CreateObjCommand2(interp, ITCL_NAMESPACE"::internal::commands::sethullwindowname", ItclSetHullWindowName, infoPtr, NULL); - Tcl_CreateObjCommand(interp, + Tcl_CreateObjCommand2(interp, ITCL_NAMESPACE"::internal::commands::checksetitclhull", ItclCheckSetItclHull, infoPtr, NULL); /* * Set up the variables containing version info. @@ -527,11 +527,11 @@ */ static int ItclSetHullWindowName( void *clientData, /* infoPtr */ TCL_UNUSED(Tcl_Interp *),/* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclObjectInfo *infoPtr; infoPtr = (ItclObjectInfo *)clientData; @@ -551,11 +551,11 @@ */ static int ItclCheckSetItclHull( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_Obj *objPtr; ItclObject *ioPtr; Index: generic/itclBuiltin.c ================================================================== --- generic/itclBuiltin.c +++ generic/itclBuiltin.c @@ -86,35 +86,35 @@ " error $msg\n" " }\n" " _find_hull_init\n" "}"; -static Tcl_ObjCmdProc Itcl_BiDestroyCmd; -static Tcl_ObjCmdProc ItclExtendedConfigure; -static Tcl_ObjCmdProc ItclExtendedCget; -static Tcl_ObjCmdProc ItclExtendedSetGet; -static Tcl_ObjCmdProc Itcl_BiCreateHullCmd; -static Tcl_ObjCmdProc Itcl_BiSetupComponentCmd; -static Tcl_ObjCmdProc Itcl_BiKeepComponentOptionCmd; -static Tcl_ObjCmdProc Itcl_BiIgnoreComponentOptionCmd; -static Tcl_ObjCmdProc Itcl_BiInitOptionsCmd; +static Tcl_ObjCmdProc2 Itcl_BiDestroyCmd; +static Tcl_ObjCmdProc2 ItclExtendedConfigure; +static Tcl_ObjCmdProc2 ItclExtendedCget; +static Tcl_ObjCmdProc2 ItclExtendedSetGet; +static Tcl_ObjCmdProc2 Itcl_BiCreateHullCmd; +static Tcl_ObjCmdProc2 Itcl_BiSetupComponentCmd; +static Tcl_ObjCmdProc2 Itcl_BiKeepComponentOptionCmd; +static Tcl_ObjCmdProc2 Itcl_BiIgnoreComponentOptionCmd; +static Tcl_ObjCmdProc2 Itcl_BiInitOptionsCmd; /* * FORWARD DECLARATIONS */ static Tcl_Obj* ItclReportPublicOpt(Tcl_Interp *interp, ItclVariable *ivPtr, ItclObject *contextIoPtr); -static Tcl_ObjCmdProc ItclBiClassUnknownCmd; +static Tcl_ObjCmdProc2 ItclBiClassUnknownCmd; /* * Standard list of built-in methods for all objects. */ typedef struct BiMethod { const char* name; /* method name */ const char* usage; /* string describing usage */ const char* registration;/* registration name for C proc */ - Tcl_ObjCmdProc *proc; /* implementation C proc */ + Tcl_ObjCmdProc2 *proc; /* implementation C proc */ int flags; /* flag for which type of class to be used */ } BiMethod; static const BiMethod BiMethodList[] = { { "callinstance", @@ -338,19 +338,19 @@ Tcl_DStringInit(&buffer); for (i=0; i < BiMethodListLen; i++) { Tcl_DStringSetLength(&buffer, 0); Tcl_DStringAppend(&buffer, "::itcl::builtin::", -1); Tcl_DStringAppend(&buffer, BiMethodList[i].name, -1); - Tcl_CreateObjCommand(interp, Tcl_DStringValue(&buffer), + Tcl_CreateObjCommand2(interp, Tcl_DStringValue(&buffer), BiMethodList[i].proc, infoPtr, NULL); } Tcl_DStringFree(&buffer); - Tcl_CreateObjCommand(interp, "::itcl::builtin::chain", Itcl_BiChainCmd, + Tcl_CreateObjCommand2(interp, "::itcl::builtin::chain", Itcl_BiChainCmd, NULL, NULL); - Tcl_CreateObjCommand(interp, "::itcl::builtin::classunknown", + Tcl_CreateObjCommand2(interp, "::itcl::builtin::classunknown", ItclBiClassUnknownCmd, infoPtr, NULL); ItclInfoInit(interp, infoPtr); /* * Export all commands in the built-in namespace so we can @@ -490,11 +490,11 @@ int Itcl_BiIsaCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *iclsPtr; const char *token; @@ -569,11 +569,11 @@ int Itcl_BiConfigureCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *contextIclsPtr; ItclObject *contextIoPtr; @@ -843,11 +843,11 @@ int Itcl_BiCgetCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *contextIclsPtr; ItclObject *contextIoPtr; @@ -1076,11 +1076,11 @@ static int NRBiChainCmd( TCL_UNUSED(void *), /* not used */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int result = TCL_OK; ItclClass *contextIclsPtr; @@ -1208,14 +1208,14 @@ int Itcl_BiChainCmd( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { - return Tcl_NRCallObjProc(interp, NRBiChainCmd, clientData, objc, objv); + return Tcl_NRCallObjProc2(interp, NRBiChainCmd, clientData, objc, objv); } static int CallCreateObject( void *data[], @@ -1223,11 +1223,11 @@ int result) { Tcl_CallFrame frame; Tcl_Namespace *nsPtr; ItclClass *iclsPtr = (ItclClass *)data[0]; - int objc = PTR2INT(data[1]); + ItclSizeT objc = PTR2INT(data[1]); Tcl_Obj *const *objv = (Tcl_Obj *const *)data[2]; if (result != TCL_OK) { return result; } @@ -1246,11 +1246,11 @@ static int PrepareCreateObject( Tcl_Interp *interp, ItclClass *iclsPtr, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { Tcl_HashEntry *hPtr; Tcl_Obj **newObjv; void *callbackPtr; @@ -1313,13 +1313,13 @@ * ------------------------------------------------------------------------ */ static int ItclBiClassUnknownCmd( - void *clientData, /* ItclObjectInfo Ptr */ + void *clientData, /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_HashEntry *hPtr2; Tcl_Obj **newObjv; @@ -1591,11 +1591,11 @@ int ItclUnknownGuts( ItclObject *ioPtr, /* The ItclObject seeking method */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_HashEntry *hPtr2; Tcl_Obj **newObjv; @@ -1923,11 +1923,11 @@ static int ItclExtendedConfigure( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_HashTable unique; Tcl_HashEntry *hPtr2; @@ -2590,11 +2590,11 @@ static int ItclExtendedCget( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_HashEntry *hPtr2; Tcl_HashEntry *hPtr3; @@ -2828,11 +2828,11 @@ static int ItclExtendedSetGet( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *contextIclsPtr; ItclObject *contextIoPtr; @@ -2946,11 +2946,11 @@ int Itcl_BiInstallComponentCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj ** newObjv; ItclClass *contextIclsPtr; @@ -3080,11 +3080,11 @@ static int Itcl_BiDestroyCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj **newObjv; ItclClass *contextIclsPtr; ItclObject *contextIoPtr; @@ -3157,11 +3157,11 @@ int Itcl_BiCallInstanceCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_Obj *objPtr; Tcl_Obj **newObjv; @@ -3224,11 +3224,11 @@ int Itcl_BiGetInstanceVarCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_Obj *objPtr; Tcl_Obj **newObjv; @@ -3290,11 +3290,11 @@ int Itcl_BiMyTypeMethodCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *objPtr; Tcl_Obj *resultPtr; ItclClass *contextIclsPtr; @@ -3340,11 +3340,11 @@ int Itcl_BiMyMethodCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *resultPtr; int i; ItclClass *contextIclsPtr; @@ -3389,11 +3389,11 @@ int Itcl_BiMyProcCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *objPtr; Tcl_Obj *resultPtr; ItclClass *contextIclsPtr; @@ -3440,11 +3440,11 @@ int Itcl_BiMyTypeVarCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *objPtr; Tcl_Obj *resultPtr; ItclClass *contextIclsPtr; @@ -3492,11 +3492,11 @@ int Itcl_BiMyVarCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *resultPtr; ItclClass *contextIclsPtr; ItclObject *contextIoPtr; @@ -3536,11 +3536,11 @@ int Itcl_BiItclHullCmd( TCL_UNUSED(void *), /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *contextIclsPtr; ItclObject *contextIoPtr; const char *val; @@ -3578,11 +3578,11 @@ */ static int Itcl_BiCreateHullCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int result; ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; @@ -3613,11 +3613,11 @@ */ static int Itcl_BiSetupComponentCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int result; ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; @@ -3649,11 +3649,11 @@ */ static int Itcl_BiInitOptionsCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int result; ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; ItclClass *iclsPtr; @@ -3701,11 +3701,11 @@ */ static int Itcl_BiKeepComponentOptionCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int result; ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; @@ -3736,11 +3736,11 @@ */ static int Itcl_BiIgnoreComponentOptionCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_HashEntry *hPtr2; Tcl_Obj *objPtr; Index: generic/itclClass.c ================================================================== --- generic/itclClass.c +++ generic/itclClass.c @@ -447,11 +447,11 @@ * Add the built-in "this" command to the list of function members. */ Tcl_DStringInit(&buffer); Tcl_DStringAppend(&buffer, Tcl_GetString(iclsPtr->fullNamePtr), -1); Tcl_DStringAppend(&buffer, "::this", -1); - iclsPtr->thisCmd = Tcl_CreateObjCommand(interp, Tcl_DStringValue(&buffer), + iclsPtr->thisCmd = Tcl_CreateObjCommand2(interp, Tcl_DStringValue(&buffer), Itcl_ThisCmd, iclsPtr, NULL); /* * Add the built-in "type" variable to the list of data members. */ @@ -1405,11 +1405,11 @@ */ int Itcl_HandleClass( void *clientData, /* class definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { if (objc > 3) { const char *token = Tcl_GetString(objv[3]); const char *nsEnd = NULL; @@ -1462,11 +1462,11 @@ int ItclClassCreateObject( void *clientData, /* IclObjectInfo */ Tcl_Interp *interp, /* current interpreter */ - size_t objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_DString buffer; /* buffer used to build object names */ Tcl_Obj *objNamePtr; Tcl_HashEntry *hPtr; Index: generic/itclCmd.c ================================================================== --- generic/itclCmd.c +++ generic/itclCmd.c @@ -45,11 +45,11 @@ static int NRThisCmd( void *clientData, /* class info */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { void *clientData2; Tcl_Object oPtr; ItclClass *iclsPtr; @@ -63,11 +63,11 @@ int Itcl_ThisCmd( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { FOREACH_HASH_DECLS; void *clientData2; Tcl_Object oPtr; @@ -147,11 +147,11 @@ if (hPtr == NULL) { Tcl_AppendResult(interp, "class \"", iclsPtr->nsPtr->fullName, "\" has no method: \"", Tcl_GetString(objv[1]), "\"", NULL); return TCL_ERROR; } - return Tcl_NRCallObjProc(interp, NRThisCmd, clientData, objc, objv); + return Tcl_NRCallObjProc2(interp, NRThisCmd, clientData, objc, objv); } /* * ------------------------------------------------------------------------ @@ -169,11 +169,11 @@ int Itcl_FindClassesCmd( TCL_UNUSED(void *), /* class/object info */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Namespace *activeNs = Tcl_GetCurrentNamespace(interp); Tcl_Namespace *globalNs = Tcl_GetGlobalNamespace(interp); Tcl_HashTable unique; @@ -302,11 +302,11 @@ */ int Itcl_FindObjectsCmd( TCL_UNUSED(void *), /* class/object info */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Namespace *activeNs = Tcl_GetCurrentNamespace(interp); Tcl_Namespace *globalNs = Tcl_GetGlobalNamespace(interp); int forceFullNames = 0; @@ -501,11 +501,11 @@ static int NRDelClassCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int i; char *name; ItclClass *iclsPtr; @@ -544,14 +544,14 @@ int Itcl_DelClassCmd( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { - return Tcl_NRCallObjProc(interp, NRDelClassCmd, clientData, objc, objv); + return Tcl_NRCallObjProc2(interp, NRDelClassCmd, clientData, objc, objv); } /* * ------------------------------------------------------------------------ @@ -586,11 +586,11 @@ static int NRDelObjectCmd( TCL_UNUSED(void *), /* object management info */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclObject *contextIoPtr; char *name; void *callbackPtr; @@ -631,14 +631,14 @@ int Itcl_DelObjectCmd( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { - return Tcl_NRCallObjProc(interp, NRDelObjectCmd, clientData, objc, objv); + return Tcl_NRCallObjProc2(interp, NRDelObjectCmd, clientData, objc, objv); } /* * ------------------------------------------------------------------------ @@ -668,11 +668,11 @@ int Itcl_ScopeCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Namespace *contextNsPtr; Tcl_HashEntry *hPtr; Tcl_Object oPtr; @@ -896,11 +896,11 @@ int Itcl_CodeCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Namespace *contextNs = Tcl_GetCurrentNamespace(interp); Tcl_Obj *listPtr; @@ -997,11 +997,11 @@ */ int Itcl_IsObjectCmd( TCL_UNUSED(void *), /* class/object info */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int classFlag = 0; int idx = 0; @@ -1115,11 +1115,11 @@ */ int Itcl_IsClassCmd( TCL_UNUSED(void *), /* class/object info */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { char *cname; char *name; @@ -1176,11 +1176,11 @@ int Itcl_FilterAddCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj **newObjv; int result; @@ -1218,11 +1218,11 @@ int Itcl_FilterDeleteCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclShowArgs(1, "Itcl_FilterDeleteCmd", objc, objv); /* Tcl_Namespace *contextNs = Tcl_GetCurrentNamespace(interp); */ @@ -1243,11 +1243,11 @@ int Itcl_ForwardAddCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *prefixObj; Tcl_Method mPtr; ItclObjectInfo *infoPtr; @@ -1291,11 +1291,11 @@ int Itcl_ForwardDeleteCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclShowArgs(1, "Itcl_ForwardDeleteCmd", objc, objv); /* Tcl_Namespace *contextNs = Tcl_GetCurrentNamespace(interp); */ @@ -1315,11 +1315,11 @@ int Itcl_MixinAddCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj **newObjv; int result; @@ -1355,11 +1355,11 @@ int Itcl_MixinDeleteCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclShowArgs(1, "Itcl_MixinDeleteCmd", objc, objv); /* Tcl_Namespace *contextNs = Tcl_GetCurrentNamespace(interp); */ @@ -1379,11 +1379,11 @@ int Itcl_NWidgetCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *iclsPtr; int result; @@ -1415,11 +1415,11 @@ int Itcl_AddOptionCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; ItclObjectInfo *infoPtr; ItclClass *iclsPtr; @@ -1490,11 +1490,11 @@ int Itcl_AddObjectOptionCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_Command cmd; Tcl_Obj *objPtr; @@ -1578,11 +1578,11 @@ int Itcl_AddDelegatedOptionCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_Command cmd; ItclObjectInfo *infoPtr; @@ -1638,11 +1638,11 @@ int Itcl_AddDelegatedFunctionCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_Command cmd; Tcl_Obj *componentNamePtr; @@ -1716,11 +1716,11 @@ int Itcl_AddComponentCmd( TCL_UNUSED(void *), /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_DString buffer; Tcl_DString buffer2; @@ -1880,11 +1880,11 @@ int Itcl_SetComponentCmd( TCL_UNUSED(void *), /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; ItclClass *iclsPtr; ItclObject *contextIoPtr; @@ -1966,11 +1966,11 @@ int Itcl_ExtendedClassCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *iclsPtr; int result; @@ -1999,11 +1999,11 @@ int Itcl_TypeClassCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *objPtr; ItclClass *iclsPtr; int result; @@ -2042,11 +2042,11 @@ int Itcl_ClassHullTypeCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *iclsPtr; ItclObjectInfo *infoPtr; const char *hullTypeName; @@ -2127,11 +2127,11 @@ int Itcl_ClassWidgetClassCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *iclsPtr; ItclObjectInfo *infoPtr; const char *widgetClassName; Index: generic/itclDecls.h ================================================================== --- generic/itclDecls.h +++ generic/itclDecls.h @@ -13,15 +13,18 @@ #define Itcl_InitStubs(interp, version, exact) Tcl_PkgRequireEx(interp,"itcl",version,exact,NULL) #endif +#if TCL_MAJOR_VERSION < 9 +# define Tcl_ObjCmdProc2 Tcl_ObjCmdProc +#endif /* !BEGIN!: Do not edit below this line. */ #define ITCL_STUBS_EPOCH 0 -#define ITCL_STUBS_REVISION 153 +#define ITCL_STUBS_REVISION 155 #ifdef __cplusplus extern "C" { #endif @@ -31,62 +34,57 @@ /* Slot 0 is reserved */ /* Slot 1 is reserved */ /* 2 */ ITCLAPI int Itcl_RegisterC(Tcl_Interp *interp, const char *name, - Tcl_CmdProc *proc, ClientData clientData, + Tcl_CmdProc *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 3 */ ITCLAPI int Itcl_RegisterObjC(Tcl_Interp *interp, const char *name, Tcl_ObjCmdProc *proc, - ClientData clientData, + void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 4 */ ITCLAPI int Itcl_FindC(Tcl_Interp *interp, const char *name, Tcl_CmdProc **argProcPtr, - Tcl_ObjCmdProc **objProcPtr, - ClientData *cDataPtr); + Tcl_ObjCmdProc **objProcPtr, void **cDataPtr); /* 5 */ ITCLAPI void Itcl_InitStack(Itcl_Stack *stack); /* 6 */ ITCLAPI void Itcl_DeleteStack(Itcl_Stack *stack); /* 7 */ -ITCLAPI void Itcl_PushStack(ClientData cdata, Itcl_Stack *stack); +ITCLAPI void Itcl_PushStack(void *cdata, Itcl_Stack *stack); /* 8 */ -ITCLAPI ClientData Itcl_PopStack(Itcl_Stack *stack); +ITCLAPI void * Itcl_PopStack(Itcl_Stack *stack); /* 9 */ -ITCLAPI ClientData Itcl_PeekStack(Itcl_Stack *stack); +ITCLAPI void * Itcl_PeekStack(Itcl_Stack *stack); /* 10 */ -ITCLAPI ClientData Itcl_GetStackValue(Itcl_Stack *stack, int pos); +ITCLAPI void * Itcl_GetStackValue(Itcl_Stack *stack, int pos); /* 11 */ ITCLAPI void Itcl_InitList(Itcl_List *listPtr); /* 12 */ ITCLAPI void Itcl_DeleteList(Itcl_List *listPtr); /* 13 */ ITCLAPI Itcl_ListElem * Itcl_CreateListElem(Itcl_List *listPtr); /* 14 */ ITCLAPI Itcl_ListElem * Itcl_DeleteListElem(Itcl_ListElem *elemPtr); /* 15 */ -ITCLAPI Itcl_ListElem * Itcl_InsertList(Itcl_List *listPtr, ClientData val); +ITCLAPI Itcl_ListElem * Itcl_InsertList(Itcl_List *listPtr, void *val); /* 16 */ -ITCLAPI Itcl_ListElem * Itcl_InsertListElem(Itcl_ListElem *pos, - ClientData val); +ITCLAPI Itcl_ListElem * Itcl_InsertListElem(Itcl_ListElem *pos, void *val); /* 17 */ -ITCLAPI Itcl_ListElem * Itcl_AppendList(Itcl_List *listPtr, ClientData val); +ITCLAPI Itcl_ListElem * Itcl_AppendList(Itcl_List *listPtr, void *val); /* 18 */ -ITCLAPI Itcl_ListElem * Itcl_AppendListElem(Itcl_ListElem *pos, - ClientData val); +ITCLAPI Itcl_ListElem * Itcl_AppendListElem(Itcl_ListElem *pos, void *val); /* 19 */ -ITCLAPI void Itcl_SetListValue(Itcl_ListElem *elemPtr, - ClientData val); +ITCLAPI void Itcl_SetListValue(Itcl_ListElem *elemPtr, void *val); /* 20 */ -ITCLAPI void Itcl_EventuallyFree(ClientData cdata, - Tcl_FreeProc *fproc); +ITCLAPI void Itcl_EventuallyFree(void *cdata, Tcl_FreeProc *fproc); /* 21 */ -ITCLAPI void Itcl_PreserveData(ClientData cdata); +ITCLAPI void Itcl_PreserveData(void *cdata); /* 22 */ -ITCLAPI void Itcl_ReleaseData(ClientData cdata); +ITCLAPI void Itcl_ReleaseData(void *cdata); /* 23 */ ITCLAPI Itcl_InterpState Itcl_SaveInterpState(Tcl_Interp *interp, int status); /* 24 */ ITCLAPI int Itcl_RestoreInterpState(Tcl_Interp *interp, Itcl_InterpState state); @@ -96,10 +94,20 @@ ITCLAPI void * Itcl_Alloc(size_t size); /* 27 */ ITCLAPI void Itcl_Free(void *ptr); /* 28 */ ITCLAPI void * ItclGetStackValue(Itcl_Stack *stack, size_t pos); +/* 29 */ +ITCLAPI int Itcl_RegisterObjC2(Tcl_Interp *interp, + const char *name, Tcl_ObjCmdProc2 *proc, + void *clientData, + Tcl_CmdDeleteProc *deleteProc); +/* 30 */ +ITCLAPI int Itcl_FindC2(Tcl_Interp *interp, const char *name, + Tcl_CmdProc **argProcPtr, + Tcl_ObjCmdProc2 **objProcPtr, + void **cDataPtr); typedef struct { const struct ItclIntStubs *itclIntStubs; } ItclStubHooks; @@ -109,37 +117,39 @@ int revision; const ItclStubHooks *hooks; void (*reserved0)(void); void (*reserved1)(void); - int (*itcl_RegisterC) (Tcl_Interp *interp, const char *name, Tcl_CmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 2 */ - int (*itcl_RegisterObjC) (Tcl_Interp *interp, const char *name, Tcl_ObjCmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 3 */ - int (*itcl_FindC) (Tcl_Interp *interp, const char *name, Tcl_CmdProc **argProcPtr, Tcl_ObjCmdProc **objProcPtr, ClientData *cDataPtr); /* 4 */ + int (*itcl_RegisterC) (Tcl_Interp *interp, const char *name, Tcl_CmdProc *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 2 */ + int (*itcl_RegisterObjC) (Tcl_Interp *interp, const char *name, Tcl_ObjCmdProc *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 3 */ + int (*itcl_FindC) (Tcl_Interp *interp, const char *name, Tcl_CmdProc **argProcPtr, Tcl_ObjCmdProc **objProcPtr, void **cDataPtr); /* 4 */ void (*itcl_InitStack) (Itcl_Stack *stack); /* 5 */ void (*itcl_DeleteStack) (Itcl_Stack *stack); /* 6 */ - void (*itcl_PushStack) (ClientData cdata, Itcl_Stack *stack); /* 7 */ - ClientData (*itcl_PopStack) (Itcl_Stack *stack); /* 8 */ - ClientData (*itcl_PeekStack) (Itcl_Stack *stack); /* 9 */ - ClientData (*itcl_GetStackValue) (Itcl_Stack *stack, int pos); /* 10 */ + void (*itcl_PushStack) (void *cdata, Itcl_Stack *stack); /* 7 */ + void * (*itcl_PopStack) (Itcl_Stack *stack); /* 8 */ + void * (*itcl_PeekStack) (Itcl_Stack *stack); /* 9 */ + void * (*itcl_GetStackValue) (Itcl_Stack *stack, int pos); /* 10 */ void (*itcl_InitList) (Itcl_List *listPtr); /* 11 */ void (*itcl_DeleteList) (Itcl_List *listPtr); /* 12 */ Itcl_ListElem * (*itcl_CreateListElem) (Itcl_List *listPtr); /* 13 */ Itcl_ListElem * (*itcl_DeleteListElem) (Itcl_ListElem *elemPtr); /* 14 */ - Itcl_ListElem * (*itcl_InsertList) (Itcl_List *listPtr, ClientData val); /* 15 */ - Itcl_ListElem * (*itcl_InsertListElem) (Itcl_ListElem *pos, ClientData val); /* 16 */ - Itcl_ListElem * (*itcl_AppendList) (Itcl_List *listPtr, ClientData val); /* 17 */ - Itcl_ListElem * (*itcl_AppendListElem) (Itcl_ListElem *pos, ClientData val); /* 18 */ - void (*itcl_SetListValue) (Itcl_ListElem *elemPtr, ClientData val); /* 19 */ - void (*itcl_EventuallyFree) (ClientData cdata, Tcl_FreeProc *fproc); /* 20 */ - void (*itcl_PreserveData) (ClientData cdata); /* 21 */ - void (*itcl_ReleaseData) (ClientData cdata); /* 22 */ + Itcl_ListElem * (*itcl_InsertList) (Itcl_List *listPtr, void *val); /* 15 */ + Itcl_ListElem * (*itcl_InsertListElem) (Itcl_ListElem *pos, void *val); /* 16 */ + Itcl_ListElem * (*itcl_AppendList) (Itcl_List *listPtr, void *val); /* 17 */ + Itcl_ListElem * (*itcl_AppendListElem) (Itcl_ListElem *pos, void *val); /* 18 */ + void (*itcl_SetListValue) (Itcl_ListElem *elemPtr, void *val); /* 19 */ + void (*itcl_EventuallyFree) (void *cdata, Tcl_FreeProc *fproc); /* 20 */ + void (*itcl_PreserveData) (void *cdata); /* 21 */ + void (*itcl_ReleaseData) (void *cdata); /* 22 */ Itcl_InterpState (*itcl_SaveInterpState) (Tcl_Interp *interp, int status); /* 23 */ int (*itcl_RestoreInterpState) (Tcl_Interp *interp, Itcl_InterpState state); /* 24 */ void (*itcl_DiscardInterpState) (Itcl_InterpState state); /* 25 */ void * (*itcl_Alloc) (size_t size); /* 26 */ void (*itcl_Free) (void *ptr); /* 27 */ void * (*itclGetStackValue) (Itcl_Stack *stack, size_t pos); /* 28 */ + int (*itcl_RegisterObjC2) (Tcl_Interp *interp, const char *name, Tcl_ObjCmdProc2 *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 29 */ + int (*itcl_FindC2) (Tcl_Interp *interp, const char *name, Tcl_CmdProc **argProcPtr, Tcl_ObjCmdProc2 **objProcPtr, void **cDataPtr); /* 30 */ } ItclStubs; extern const ItclStubs *itclStubsPtr; #ifdef __cplusplus @@ -206,10 +216,14 @@ (itclStubsPtr->itcl_Alloc) /* 26 */ #define Itcl_Free \ (itclStubsPtr->itcl_Free) /* 27 */ #define ItclGetStackValue \ (itclStubsPtr->itclGetStackValue) /* 28 */ +#define Itcl_RegisterObjC2 \ + (itclStubsPtr->itcl_RegisterObjC2) /* 29 */ +#define Itcl_FindC2 \ + (itclStubsPtr->itcl_FindC2) /* 30 */ #endif /* defined(USE_ITCL_STUBS) */ /* !END!: Do not edit above this line. */ Index: generic/itclEnsemble.c ================================================================== --- generic/itclEnsemble.c +++ generic/itclEnsemble.c @@ -44,11 +44,11 @@ Tcl_Obj *namePtr; Tcl_Command cmdPtr; /* command handling this part */ char *usage; /* usage string describing syntax */ struct Ensemble* ensemble; /* ensemble containing this part */ ItclArgList *arglistPtr; /* the parsed argument list */ - Tcl_ObjCmdProc *objProc; /* handling procedure for part */ + Tcl_ObjCmdProc2 *objProc; /* handling procedure for part */ void *clientData; /* the procPtr for the part */ Tcl_CmdDeleteProc *deleteProc; /* procedure used to destroy client data */ int minChars; /* chars needed to uniquely identify part */ int flags; @@ -86,13 +86,13 @@ Tcl_Interp* parser; /* child interp for parsing */ Ensemble* ensData; /* add parts to this ensemble */ } EnsembleParser; static int EnsembleSubCmd(void *clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]); + ItclSizeT objc, Tcl_Obj *const objv[]); static int EnsembleUnknownCmd(void *dummy, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]); + ItclSizeT objc, Tcl_Obj *const objv[]); /* * Forward declarations for the procedures used in this file. */ static void GetEnsembleUsage (Tcl_Interp *interp, @@ -101,11 +101,11 @@ Ensemble *ensData, EnsemblePart *ensPart, Tcl_Obj *objPtr); static int CreateEnsemble (Tcl_Interp *interp, Ensemble *parentEnsData, const char *ensName); static int AddEnsemblePart (Tcl_Interp *interp, Ensemble* ensData, const char* partName, const char* usageInfo, - Tcl_ObjCmdProc *objProc, void *clientData, + Tcl_ObjCmdProc2 *objProc, void *clientData, Tcl_CmdDeleteProc *deleteProc, int flags, EnsemblePart **rVal); static int FindEnsemble (Tcl_Interp *interp, const char **nameArgv, ItclSizeT nameArgc, Ensemble** ensDataPtr); static int CreateEnsemblePart (Tcl_Interp *interp, Ensemble *ensData, const char* partName, EnsemblePart **ensPartPtr); @@ -146,11 +146,11 @@ { Tcl_DString buffer; ItclObjectInfo *infoPtr; infoPtr = (ItclObjectInfo *)Tcl_GetAssocData(interp, ITCL_INTERP_DATA, NULL); - Tcl_CreateObjCommand(interp, "::itcl::ensemble", + Tcl_CreateObjCommand2(interp, "::itcl::ensemble", Itcl_EnsembleCmd, NULL, NULL); Tcl_DStringInit(&buffer); Tcl_DStringAppend(&buffer, ITCL_COMMANDS_NAMESPACE, -1); Tcl_DStringAppend(&buffer, "::ensembles", -1); @@ -160,11 +160,11 @@ if (infoPtr->ensembleInfo->ensembleNsPtr == NULL) { Tcl_AppendResult(interp, "error in creating namespace: ", Tcl_DStringValue(&buffer), NULL); return TCL_ERROR; } - Tcl_CreateObjCommand(interp, + Tcl_CreateObjCommand2(interp, ITCL_COMMANDS_NAMESPACE "::ensembles::unknown", EnsembleUnknownCmd, NULL, NULL); return TCL_OK; } @@ -303,11 +303,11 @@ Itcl_AddEnsemblePart( Tcl_Interp *interp, /* interpreter to be updated */ const char* ensName, /* ensemble containing this part */ const char* partName, /* name of the new part */ const char* usageInfo, /* usage info for argument list */ - Tcl_ObjCmdProc *objProc, /* handling procedure for part */ + Tcl_ObjCmdProc2 *objProc, /* handling procedure for part */ void *clientData, /* client data associated with part */ Tcl_CmdDeleteProc *deleteProc) /* procedure used to destroy client data */ { const char **nameArgv = NULL; ItclSizeT nameArgc; @@ -579,10 +579,15 @@ cmd = Tcl_GetCommandFromObj(interp, chainObj); if (Tcl_GetCommandInfoFromToken(cmd, &infoPtr) != 1) { return 0; } if (infoPtr.deleteProc == DeleteEnsemble) { +#if TCL_MAJOR_VERSION > 8 + if (infoPtr.isNativeObjectProc == 2) { + ensData = (Ensemble*)infoPtr.objClientData2; + } else +#endif ensData = (Ensemble*)infoPtr.objClientData; GetEnsembleUsage(interp, ensData, objPtr); return 1; } } @@ -919,11 +924,11 @@ AddEnsemblePart( Tcl_Interp *interp, /* interpreter to be updated */ Ensemble* ensData, /* ensemble that will contain this part */ const char* partName, /* name of the new part */ const char* usageInfo, /* usage info for argument list */ - Tcl_ObjCmdProc *objProc, /* handling procedure for part */ + Tcl_ObjCmdProc2 *objProc, /* handling procedure for part */ void *clientData, /* client data associated with part */ Tcl_CmdDeleteProc *deleteProc, /* procedure used to destroy client data */ int flags, EnsemblePart **rVal) /* returns: new ensemble part */ { @@ -957,11 +962,11 @@ Tcl_AppendToObj(ensPart->mapNamePtr, "::", 2); Tcl_AppendToObj(ensPart->mapNamePtr, partName, -1); Tcl_IncrRefCount(ensPart->namePtr); Tcl_IncrRefCount(ensPart->mapNamePtr); Tcl_DictObjPut(NULL, mapDict, ensPart->namePtr, ensPart->mapNamePtr); - cmd = Tcl_CreateObjCommand(interp, Tcl_GetString(ensPart->mapNamePtr), + cmd = Tcl_CreateObjCommand2(interp, Tcl_GetString(ensPart->mapNamePtr), EnsembleSubCmd, ensPart, DeleteEnsemblePart); if (cmd == NULL) { Tcl_DictObjRemove(NULL, mapDict, ensPart->namePtr); Tcl_DecrRefCount(ensPart->namePtr); Tcl_DecrRefCount(ensPart->mapNamePtr); @@ -1128,10 +1133,15 @@ return TCL_ERROR; } if (Tcl_GetCommandInfoFromToken(cmdPtr, &cmdInfo) != 1) { return TCL_ERROR; } +#if TCL_MAJOR_VERSION > 8 + if (cmdInfo.isNativeObjectProc == 2) { + ensData = (Ensemble*)cmdInfo.objClientData2; + } else +#endif ensData = (Ensemble*)cmdInfo.objClientData; } *ensDataPtr = ensData; return TCL_OK; @@ -1630,11 +1640,11 @@ */ int Itcl_EnsembleCmd( void *clientData, /* ensemble data */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int status; char *ensName; EnsembleParser *ensInfo; @@ -1839,17 +1849,17 @@ Tcl_DeleteNamespace(Tcl_GetGlobalNamespace(ensInfo->parser)); /* * Add the allowed commands to the parser interpreter: * part, delete, ensemble */ - Tcl_CreateObjCommand(ensInfo->parser, "part", Itcl_EnsPartCmd, + Tcl_CreateObjCommand2(ensInfo->parser, "part", Itcl_EnsPartCmd, ensInfo, NULL); - Tcl_CreateObjCommand(ensInfo->parser, "option", Itcl_EnsPartCmd, + Tcl_CreateObjCommand2(ensInfo->parser, "option", Itcl_EnsPartCmd, ensInfo, NULL); - Tcl_CreateObjCommand(ensInfo->parser, "ensemble", Itcl_EnsembleCmd, + Tcl_CreateObjCommand2(ensInfo->parser, "ensemble", Itcl_EnsembleCmd, ensInfo, NULL); /* * Install the parser data, so we'll have it the next time * we call this procedure. @@ -1922,11 +1932,11 @@ */ int Itcl_EnsPartCmd( void *clientData, /* ensemble data */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *usagePtr; Tcl_Proc procPtr; EnsembleParser *ensInfo = (EnsembleParser*)clientData; @@ -1981,11 +1991,11 @@ * plug the command token into the proc; we'll need it later * if we try to compile the Tcl code for the part. If * anything goes wrong, clean up before bailing out. */ result = AddEnsemblePart(ensInfo->interp, ensData, partName, usage, - (Tcl_ObjCmdProc *)Tcl_GetObjInterpProc(), procPtr, _Tcl_ProcDeleteProc, + (Tcl_ObjCmdProc2 *)Tcl_GetObjInterpProc(), procPtr, _Tcl_ProcDeleteProc, ITCL_ENSEMBLE_ENSEMBLE, &ensPart); if (result == TCL_ERROR) { _Tcl_ProcDeleteProc(procPtr); } Tcl_TransferResult(ensInfo->interp, result, interp); @@ -2059,11 +2069,11 @@ Tcl_Interp *interp, int result) { Tcl_Namespace *nsPtr = (Tcl_Namespace *)data[0]; EnsemblePart *ensPart = (EnsemblePart *)data[1]; - size_t objc = PTR2INT(data[2]); + ItclSizeT objc = PTR2INT(data[2]); Tcl_Obj *const *objv = (Tcl_Obj *const *)data[3]; result = Itcl_InvokeEnsembleMethod(interp, nsPtr, ensPart->namePtr, (Tcl_Proc *)ensPart->clientData, objc, objv); return result; @@ -2074,21 +2084,21 @@ void *data[], Tcl_Interp *interp, int result) { EnsemblePart *ensPart = (EnsemblePart *)data[0]; - int objc = PTR2INT(data[1]); + ItclSizeT objc = PTR2INT(data[1]); Tcl_Obj *const*objv = (Tcl_Obj *const*)data[2]; result = (*ensPart->objProc)(ensPart->clientData, interp, objc, objv); return result; } static int EnsembleSubCmd( void *clientData, /* ensPart struct pointer */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + ItclSizeT objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { int result; Tcl_Namespace *nsPtr; EnsemblePart *ensPart; @@ -2121,11 +2131,11 @@ static int EnsembleUnknownCmd( TCL_UNUSED(void *), /* not used */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Command cmd; Tcl_HashEntry *hPtr; ItclObjectInfo *infoPtr; @@ -2183,11 +2193,11 @@ */ int Itcl_EnsembleDeleteCmd( void *clientData, /* infoPtr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; Tcl_Command cmdPtr; Ensemble *ensData; Index: generic/itclHelpers.c ================================================================== --- generic/itclHelpers.c +++ generic/itclHelpers.c @@ -24,14 +24,14 @@ void ItclShowArgs( int level, const char *str, - size_t objc, + ItclSizeT objc, Tcl_Obj * const* objv) { - size_t i; + ItclSizeT i; if (level > _itcl_debug_level) { return; } fprintf(stderr, "%s", str); @@ -272,10 +272,15 @@ /* * Finally, invoke the command's Tcl_ObjCmdProc. Be careful * to pass in the proper client data. */ Tcl_GetCommandInfoFromToken(cmd, &infoPtr); +#if TCL_MAJOR_VERSION > 8 + if (infoPtr.isNativeObjectProc == 2) { + return infoPtr.objProc2(infoPtr.objClientData2, interp, objc, objv); + } +#endif return infoPtr.objProc(infoPtr.objClientData, interp, objc, objv); } /* @@ -324,11 +329,11 @@ int ItclEnsembleSubCmd( TCL_UNUSED(void *), Tcl_Interp *interp, TCL_UNUSED(const char *), - int objc, + ItclSizeT objc, Tcl_Obj *const *objv, TCL_UNUSED(const char *)) { int result; Tcl_Obj **newObjv; Index: generic/itclInfo.c ================================================================== --- generic/itclInfo.c +++ generic/itclInfo.c @@ -29,42 +29,42 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "itclInt.h" -static Tcl_ObjCmdProc Itcl_BiInfoClassOptionsCmd; -static Tcl_ObjCmdProc Itcl_BiInfoComponentsCmd; -static Tcl_ObjCmdProc Itcl_BiInfoDefaultCmd; -static Tcl_ObjCmdProc Itcl_BiInfoDelegatedCmd; -static Tcl_ObjCmdProc Itcl_BiInfoExtendedClassCmd; -static Tcl_ObjCmdProc Itcl_BiInfoInstancesCmd; -static Tcl_ObjCmdProc Itcl_BiInfoHullTypeCmd; -static Tcl_ObjCmdProc Itcl_BiInfoMethodCmd; -static Tcl_ObjCmdProc Itcl_BiInfoMethodsCmd; -static Tcl_ObjCmdProc Itcl_BiInfoOptionsCmd; -static Tcl_ObjCmdProc Itcl_BiInfoTypeCmd; -static Tcl_ObjCmdProc Itcl_BiInfoTypeMethodCmd; -static Tcl_ObjCmdProc Itcl_BiInfoTypeMethodsCmd; -static Tcl_ObjCmdProc Itcl_BiInfoTypesCmd; -static Tcl_ObjCmdProc Itcl_BiInfoTypeVarsCmd; -static Tcl_ObjCmdProc Itcl_BiInfoTypeVariableCmd; -static Tcl_ObjCmdProc Itcl_BiInfoVariablesCmd; -static Tcl_ObjCmdProc Itcl_BiInfoWidgetadaptorCmd; -static Tcl_ObjCmdProc Itcl_BiInfoWidgetCmd; -static Tcl_ObjCmdProc Itcl_BiInfoDelegatedOptionsCmd; -static Tcl_ObjCmdProc Itcl_BiInfoDelegatedMethodsCmd; -static Tcl_ObjCmdProc Itcl_BiInfoDelegatedTypeMethodsCmd; -static Tcl_ObjCmdProc Itcl_BiInfoDelegatedOptionCmd; -static Tcl_ObjCmdProc Itcl_BiInfoDelegatedMethodCmd; -static Tcl_ObjCmdProc Itcl_BiInfoDelegatedTypeMethodCmd; -static Tcl_ObjCmdProc Itcl_BiInfoDelegatedUnknownCmd; -static Tcl_ObjCmdProc Itcl_BiInfoContextCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoClassOptionsCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoComponentsCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoDefaultCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoDelegatedCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoExtendedClassCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoInstancesCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoHullTypeCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoMethodCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoMethodsCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoOptionsCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoTypeCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoTypeMethodCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoTypeMethodsCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoTypesCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoTypeVarsCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoTypeVariableCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoVariablesCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoWidgetadaptorCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoWidgetCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoDelegatedOptionsCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoDelegatedMethodsCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoDelegatedTypeMethodsCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoDelegatedOptionCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoDelegatedMethodCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoDelegatedTypeMethodCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoDelegatedUnknownCmd; +static Tcl_ObjCmdProc2 Itcl_BiInfoContextCmd; typedef struct InfoMethod { const char* name; /* method name */ const char* usage; /* string describing usage */ - Tcl_ObjCmdProc *proc; /* implementation C proc */ + Tcl_ObjCmdProc2 *proc; /* implementation C proc */ int flags; /* which class commands have it */ } InfoMethod; static const InfoMethod InfoMethodList[] = { { "args", @@ -248,11 +248,11 @@ }; struct NameProcMap2 { const char* name; /* method name */ const char* usage; /* string describing usage */ - Tcl_ObjCmdProc *proc; /* implementation C proc */ + Tcl_ObjCmdProc2 *proc; /* implementation C proc */ int flags; /* which class commands have it */ }; static const struct NameProcMap2 infoCmdsDelegated2[] = { { "::itcl::builtin::Info::delegated::methods", @@ -344,11 +344,11 @@ int ItclInfoGuts( ItclObject *ioPtr, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const objv[]) { ItclObjectInfo *infoPtr = ioPtr->infoPtr; Tcl_CmdInfo info; ItclCallContext *cPtr; @@ -390,19 +390,25 @@ Itcl_PushStack(cPtr, stackPtr); Tcl_NRAddCallback(interp, InfoGutsFinish, framePtr, infoPtr, cPtr, NULL); Tcl_GetCommandInfoFromToken(infoPtr->infoCmd, &info); +#if TCL_MAJOR_VERSION > 8 + if (info.isNativeObjectProc == 2) { + return Tcl_NRCallObjProc2(interp, info.objProc2, info.objClientData2, + objc-1, objv+1); + } +#endif return Tcl_NRCallObjProc(interp, info.objProc, info.objClientData, objc-1, objv+1); } static int NRInfoWrap( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const objv[]) { Tcl_CmdInfo info; ItclObjectInfo *infoPtr = (ItclObjectInfo *)clientData; @@ -426,22 +432,28 @@ } /* Have a subcommand. Pass on to the ensemble */ Tcl_GetCommandInfoFromToken(infoPtr->infoCmd, &info); +#if TCL_MAJOR_VERSION > 8 + if (info.isNativeObjectProc == 2) { + return Tcl_NRCallObjProc2(interp, info.objProc2, info.objClientData2, + objc, objv); + } +#endif return Tcl_NRCallObjProc(interp, info.objProc, info.objClientData, objc, objv); } static int InfoWrap( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const objv[]) { - return Tcl_NRCallObjProc(interp, NRInfoWrap, clientData, objc, objv); + return Tcl_NRCallObjProc2(interp, NRInfoWrap, clientData, objc, objv); } static void InfoCmdDelete( void *clientData) @@ -476,20 +488,26 @@ Tcl_Panic("Double init of info ensemble"); } token = Tcl_CreateEnsemble(interp, nsPtr->fullName, nsPtr, TCL_ENSEMBLE_PREFIX); infoPtr->infoCmd = token; - token = Tcl_NRCreateCommand(interp, "::itcl::builtin::info", InfoWrap, + token = Tcl_NRCreateCommand2(interp, "::itcl::builtin::info", InfoWrap, NRInfoWrap, infoPtr, InfoCmdDelete); Tcl_GetCommandInfoFromToken(token, &info); /* * Make the C implementation of the "info" ensemble available as * a method body. This makes all [$object info] become the * equivalent of [::itcl::builtin::Info] without any need for * tailcall to restore the right frame [87a1bc6e82]. */ +#if TCL_MAJOR_VERSION > 8 + if (info.isNativeObjectProc == 2) { + Itcl_RegisterObjC2(interp, "itcl-builtin-info", info.objProc2, + info.objClientData2, NULL); + } else +#endif Itcl_RegisterObjC(interp, "itcl-builtin-info", info.objProc, info.objClientData, NULL); Tcl_Export(interp, nsPtr, "[a-z]*", 1); ensObjPtr = Tcl_NewStringObj("::itcl::builtin::Info", -1); @@ -497,17 +515,17 @@ for (i=0 ; InfoMethodList[i].name!=NULL ; i++) { Tcl_Obj *cmdObjPtr = Tcl_DuplicateObj(ensObjPtr); Tcl_AppendToObj(cmdObjPtr, "::", 2); Tcl_AppendToObj(cmdObjPtr, InfoMethodList[i].name, -1); - Tcl_CreateObjCommand(interp, Tcl_GetString(cmdObjPtr), + Tcl_CreateObjCommand2(interp, Tcl_GetString(cmdObjPtr), InfoMethodList[i].proc, infoPtr, InfoMethodList[i].proc == Itcl_BiInfoVarsCmd ? ItclRestoreInfoVars : NULL); Tcl_DecrRefCount(cmdObjPtr); } unkObjPtr = Tcl_NewStringObj("::itcl::builtin::Info::unknown", -1); - Tcl_CreateObjCommand(interp, Tcl_GetString(unkObjPtr), + Tcl_CreateObjCommand2(interp, Tcl_GetString(unkObjPtr), Itcl_BiInfoUnknownCmd, infoPtr, NULL); if (Tcl_SetEnsembleUnknownHandler(NULL, Tcl_FindEnsemble(interp, ensObjPtr, TCL_LEAVE_ERR_MSG), unkObjPtr) != TCL_OK) { Tcl_DecrRefCount(unkObjPtr); @@ -527,11 +545,11 @@ } Tcl_CreateEnsemble(interp, nsPtr->fullName, nsPtr, TCL_ENSEMBLE_PREFIX); Tcl_Export(interp, nsPtr, "[a-z]*", 1); for (i=0 ; infoCmdsDelegated2[i].name!=NULL ; i++) { - Tcl_CreateObjCommand(interp, infoCmdsDelegated2[i].name, + Tcl_CreateObjCommand2(interp, infoCmdsDelegated2[i].name, infoCmdsDelegated2[i].proc, infoPtr, NULL); } ensObjPtr = Tcl_NewStringObj("::itcl::builtin::Info::delegated", -1); unkObjPtr = Tcl_NewStringObj( @@ -661,11 +679,11 @@ int Itcl_BiInfoClassCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Namespace *contextNs = NULL; ItclClass *contextIclsPtr = NULL; ItclObject *contextIoPtr; @@ -741,11 +759,11 @@ static int Itcl_BiInfoClassOptionsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_HashEntry *hPtr2; Tcl_Obj *listPtr; @@ -852,11 +870,11 @@ static int Itcl_BiInfoContextCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *listPtr; Tcl_Obj *objPtr; ItclObject *ioPtr = NULL; @@ -891,11 +909,11 @@ int Itcl_BiInfoInheritCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *contextIclsPtr = NULL; ItclObject *contextIoPtr = NULL; Itcl_ListElem *elem; @@ -951,11 +969,11 @@ int Itcl_BiInfoHeritageCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *contextIclsPtr = NULL; ItclObject *contextIoPtr = NULL; ItclHierIter hier; @@ -1021,11 +1039,11 @@ int Itcl_BiInfoFunctionCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { char *cmdName = NULL; Tcl_Obj *resultPtr = NULL; Tcl_Obj *objPtr = NULL; @@ -1261,11 +1279,11 @@ int Itcl_BiInfoVariableCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *resultPtr; Tcl_Obj *objPtr; Tcl_HashSearch place; @@ -1605,11 +1623,11 @@ int Itcl_BiInfoVarsCmd( void *clientData, /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; Tcl_Obj **newObjv; @@ -1745,11 +1763,11 @@ int Itcl_BiInfoUnknownCmd( void *clientData, /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *objPtr, *listObj; int usage = 1; int code = TCL_ERROR; @@ -1830,11 +1848,11 @@ int Itcl_BiInfoBodyCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; ItclClass *contextIclsPtr = NULL; ItclObject *contextIoPtr; @@ -1933,11 +1951,11 @@ int Itcl_BiInfoArgsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr = NULL; ItclClass *contextIclsPtr = NULL; ItclObject *contextIoPtr; @@ -2042,11 +2060,11 @@ int Itcl_BiInfoOptionCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { char *optionName = NULL; Tcl_Obj *resultPtr = NULL; Tcl_Obj *objPtr = NULL; @@ -2345,11 +2363,11 @@ int Itcl_BiInfoComponentCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { char *componentName = NULL; Tcl_Obj *resultPtr = NULL; Tcl_Obj *objPtr = NULL; @@ -2564,11 +2582,11 @@ static int Itcl_BiInfoWidgetCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Namespace *contextNs = NULL; Tcl_Obj *objPtr; ItclClass *contextIclsPtr; @@ -2656,11 +2674,11 @@ static int Itcl_BiInfoExtendedClassCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { #ifdef NOTYET static const char *components[] = { "-name", "-inherit", "-value", NULL @@ -2743,11 +2761,11 @@ static int Itcl_BiInfoDelegatedCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { #ifdef NOTYET static const char *components[] = { "-name", "-inherit", "-value", NULL @@ -2828,11 +2846,11 @@ static int Itcl_BiInfoTypeCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Namespace *contextNs = NULL; Tcl_Obj *objPtr; ItclClass *contextIclsPtr; @@ -2916,11 +2934,11 @@ static int Itcl_BiInfoHullTypeCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclClass *contextIclsPtr; ItclObject *contextIoPtr; @@ -2983,11 +3001,11 @@ static int Itcl_BiInfoDefaultCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; ItclObject *ioPtr; ItclClass *iclsPtr; @@ -3078,11 +3096,11 @@ static int Itcl_BiInfoMethodCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *resultPtr; Tcl_Obj *objPtr; Tcl_HashSearch place; @@ -3305,11 +3323,11 @@ static int Itcl_BiInfoMethodsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; ItclObject *ioPtr; @@ -3403,11 +3421,11 @@ static int Itcl_BiInfoOptionsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_HashEntry *hPtr2; Tcl_Obj *listPtr; @@ -3523,11 +3541,11 @@ static int Itcl_BiInfoTypesCmd( void *clientData, /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; ItclObjectInfo *infoPtr; @@ -3576,11 +3594,11 @@ static int Itcl_BiInfoComponentsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; ItclObject *ioPtr; @@ -3647,11 +3665,11 @@ static int Itcl_BiInfoTypeMethodCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *resultPtr; Tcl_Obj *objPtr; Tcl_HashSearch place; @@ -3875,11 +3893,11 @@ static int Itcl_BiInfoTypeMethodsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; ItclObject *ioPtr; @@ -3980,11 +3998,11 @@ static int Itcl_BiInfoTypeVarsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; ItclObject *ioPtr; @@ -4037,11 +4055,11 @@ static int Itcl_BiInfoTypeVariableCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *resultPtr; Tcl_Obj *objPtr; Tcl_HashSearch place; @@ -4287,11 +4305,11 @@ static int Itcl_BiInfoVariablesCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclShowArgs(1, "Itcl_BiInfoVariablesCmd", objc, objv); Tcl_AppendResult(interp, "Itcl_BiInfoVariablesCmd not yet implemented\n", NULL); @@ -4312,11 +4330,11 @@ static int Itcl_BiInfoWidgetadaptorCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Namespace *contextNs = NULL; Tcl_Obj *objPtr; ItclClass *contextIclsPtr; @@ -4399,11 +4417,11 @@ static int Itcl_BiInfoInstancesCmd( void *clientData, /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; Tcl_Obj *objPtr; @@ -4468,11 +4486,11 @@ static int Itcl_BiInfoDelegatedOptionsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; Tcl_Obj *objPtr; @@ -4539,11 +4557,11 @@ static int Itcl_BiInfoDelegatedMethodsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; Tcl_Obj *objPtr; @@ -4612,11 +4630,11 @@ static int Itcl_BiInfoDelegatedTypeMethodsCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *listPtr; Tcl_Obj *objPtr; @@ -4681,11 +4699,11 @@ static int Itcl_BiInfoDelegatedUnknownCmd( void *clientData, /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *objPtr; ItclShowArgs(1, "Itcl_BiInfoDelegatedUnknownCmd", objc, objv); @@ -4716,11 +4734,11 @@ static int Itcl_BiInfoDelegatedOptionCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_HashSearch place; Tcl_Namespace *nsPtr; @@ -4950,11 +4968,11 @@ static int Itcl_BiInfoDelegatedMethodCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_HashSearch place; Tcl_Obj *resultPtr; @@ -5174,11 +5192,11 @@ static int Itcl_BiInfoDelegatedTypeMethodCmd( TCL_UNUSED(void *), /* ItclObjectInfo Ptr */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_HashSearch place; Index: generic/itclInt.h ================================================================== --- generic/itclInt.h +++ generic/itclInt.h @@ -78,10 +78,32 @@ #if TCL_MAJOR_VERSION > 8 # define ITCL_Z_MODIFIER TCL_Z_MODIFIER #else # define ITCL_Z_MODIFIER "" +# undef Tcl_MethodIsType2 +# undef Tcl_NewInstanceMethod2 +# undef Tcl_NewMethod2 +# undef Tcl_MethodType2 +# undef Tcl_MethodCallProc2 +# define Tcl_MethodIsType2 Tcl_MethodIsType +# define Tcl_NewInstanceMethod2 Tcl_NewInstanceMethod +# define Tcl_NewMethod2 Tcl_NewMethod +# define Tcl_MethodType2 Tcl_MethodType +# define Tcl_MethodCallProc2 Tcl_MethodCallProc +# undef Tcl_CreateObjCommand2 +# define Tcl_CreateObjCommand2 Tcl_CreateObjCommand +# undef Tcl_NRCreateCommand2 +# define Tcl_NRCreateCommand2 Tcl_NRCreateCommand +# undef Tcl_NRCallObjProc2 +# define Tcl_NRCallObjProc2 Tcl_NRCallObjProc +# undef Itcl_RegisterObjC2 +# define Itcl_RegisterObjC2 Itcl_RegisterObjC +# undef Itcl_FindC2 +# define Itcl_FindC2 Itcl_FindC +# undef TCL_OO_METHOD_VERSION_2 +# define TCL_OO_METHOD_VERSION_2 TCL_OO_METHOD_VERSION_CURRENT #endif #if !defined(ItclSizeT) #if TCL_MAJOR_VERSION > 8 #define ItclSizeT size_t @@ -429,11 +451,11 @@ Tcl_Obj *argumentPtr; /* the function arguments */ Tcl_Obj *bodyPtr; /* the function body */ ItclArgList *argListPtr; /* the parsed arguments */ union { Tcl_CmdProc *argCmd; /* (argc,argv) C implementation */ - Tcl_ObjCmdProc *objCmd; /* (objc,objv) C implementation */ + Tcl_ObjCmdProc2 *objCmd; /* (objc,objv) C implementation */ } cfunc; void *clientData; /* client data for C implementations */ } ItclMemberCode; /* @@ -679,26 +701,26 @@ # define PTR2INT(p) ((ptrdiff_t)(p)) #endif #ifdef ITCL_DEBUG MODULE_SCOPE int _itcl_debug_level; -MODULE_SCOPE void ItclShowArgs(int level, const char *str, size_t objc, +MODULE_SCOPE void ItclShowArgs(int level, const char *str, ItclSizeT objc, Tcl_Obj *const *objv); #else #define ItclShowArgs(a,b,c,d) do {(void)(c);(void)(d);} while(0) #endif -MODULE_SCOPE Tcl_ObjCmdProc ItclCallCCommand; -MODULE_SCOPE Tcl_ObjCmdProc ItclObjectUnknownCommand; +MODULE_SCOPE Tcl_ObjCmdProc2 ItclCallCCommand; +MODULE_SCOPE Tcl_ObjCmdProc2 ItclObjectUnknownCommand; MODULE_SCOPE int ItclCheckCallProc(void *clientData, Tcl_Interp *interp, Tcl_ObjectContext contextPtr, Tcl_CallFrame *framePtr, int *isFinished); MODULE_SCOPE void ItclPreserveClass(ItclClass *iclsPtr); MODULE_SCOPE void ItclReleaseClass(void *iclsPtr); MODULE_SCOPE ItclFoundation *ItclGetFoundation(Tcl_Interp *interp); -MODULE_SCOPE Tcl_ObjCmdProc ItclClassCommandDispatcher; +MODULE_SCOPE Tcl_ObjCmdProc2 ItclClassCommandDispatcher; MODULE_SCOPE Tcl_Command Itcl_CmdAliasProc(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *cmdName, void *clientData); MODULE_SCOPE Tcl_Var Itcl_VarAliasProc(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *VarName, void *clientData); MODULE_SCOPE int ItclIsClass(Tcl_Interp *interp, Tcl_Command cmd); @@ -714,13 +736,13 @@ MODULE_SCOPE int ItclCreateArgList(Tcl_Interp *interp, const char *str, ItclSizeT *argcPtr, ItclSizeT *maxArgcPtr, Tcl_Obj **usagePtr, ItclArgList **arglistPtrPtr, ItclMemberFunc *imPtr, const char *commandName); MODULE_SCOPE int ItclObjectCmd(void *clientData, Tcl_Interp *interp, - Tcl_Object oPtr, Tcl_Class clsPtr, size_t objc, Tcl_Obj *const *objv); + Tcl_Object oPtr, Tcl_Class clsPtr, ItclSizeT objc, Tcl_Obj *const *objv); MODULE_SCOPE int ItclCreateObject (Tcl_Interp *interp, const char* name, - ItclClass *iclsPtr, size_t objc, Tcl_Obj *const objv[]); + ItclClass *iclsPtr, ItclSizeT objc, Tcl_Obj *const objv[]); MODULE_SCOPE void ItclDeleteObjectVariablesNamespace(Tcl_Interp *interp, ItclObject *ioPtr); MODULE_SCOPE void ItclDeleteClassVariablesNamespace(Tcl_Interp *interp, ItclClass *iclsPtr); MODULE_SCOPE int ItclInfoInit(Tcl_Interp *interp, ItclObjectInfo *infoPtr); @@ -760,19 +782,19 @@ ItclObjectInfo *infoPtr); MODULE_SCOPE void ItclDeleteObjectMetadata(void *clientData); MODULE_SCOPE void ItclDeleteClassMetadata(void *clientData); MODULE_SCOPE void ItclDeleteArgList(ItclArgList *arglistPtr); MODULE_SCOPE int Itcl_ClassOptionCmd(void *clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]); + ItclSizeT objc, Tcl_Obj *const objv[]); MODULE_SCOPE int DelegatedOptionsInstall(Tcl_Interp *interp, ItclClass *iclsPtr); MODULE_SCOPE int Itcl_HandleDelegateOptionCmd(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, ItclDelegatedOption **idoPtrPtr, - size_t objc, Tcl_Obj *const objv[]); + ItclSizeT objc, Tcl_Obj *const objv[]); MODULE_SCOPE int Itcl_HandleDelegateMethodCmd(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, - ItclDelegatedFunction **idmPtrPtr, size_t objc, Tcl_Obj *const objv[]); + ItclDelegatedFunction **idmPtrPtr, ItclSizeT objc, Tcl_Obj *const objv[]); MODULE_SCOPE int DelegateFunction(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, Tcl_Obj *componentNamePtr, ItclDelegatedFunction *idmPtr); MODULE_SCOPE int ItclInitObjectMethodVariables(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, const char *name); @@ -779,11 +801,11 @@ MODULE_SCOPE int InitTclOOFunctionPointers(Tcl_Interp *interp); MODULE_SCOPE ItclOption* ItclNewOption(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *resourceName, const char *className, char *init, ItclMemberCode *mCodePtr); MODULE_SCOPE int ItclParseOption(ItclObjectInfo *infoPtr, Tcl_Interp *interp, - size_t objc, Tcl_Obj *const objv[], ItclClass *iclsPtr, + ItclSizeT objc, Tcl_Obj *const objv[], ItclClass *iclsPtr, ItclObject *ioPtr, ItclOption **ioptPtrPtr); MODULE_SCOPE void ItclDestroyClassNamesp(void *cdata); MODULE_SCOPE int ExpandDelegateAs(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, ItclDelegatedFunction *idmPtr, const char *funcName, Tcl_Obj *listPtr); @@ -796,11 +818,11 @@ MODULE_SCOPE void ItclDeleteDelegatedOption(char *cdata); MODULE_SCOPE void Itcl_FinishList(); MODULE_SCOPE void ItclDeleteDelegatedFunction(ItclDelegatedFunction *idmPtr); MODULE_SCOPE void ItclFinishEnsemble(ItclObjectInfo *infoPtr); MODULE_SCOPE int Itcl_EnsembleDeleteCmd(void *clientData, - Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); MODULE_SCOPE int ItclAddClassesDictInfo(Tcl_Interp *interp, ItclClass *iclsPtr); MODULE_SCOPE int ItclDeleteClassesDictInfo(Tcl_Interp *interp, ItclClass *iclsPtr); MODULE_SCOPE int ItclAddObjectsDictInfo(Tcl_Interp *interp, ItclObject *ioPtr); MODULE_SCOPE int ItclDeleteObjectsDictInfo(Tcl_Interp *interp, @@ -816,37 +838,37 @@ MODULE_SCOPE int ItclAddClassFunctionDictInfo(Tcl_Interp *interp, ItclClass *iclsPtr, ItclMemberFunc *imPtr); MODULE_SCOPE int ItclAddClassDelegatedFunctionDictInfo(Tcl_Interp *interp, ItclClass *iclsPtr, ItclDelegatedFunction *idmPtr); MODULE_SCOPE int ItclClassCreateObject(void *clientData, Tcl_Interp *interp, - size_t objc, Tcl_Obj *const objv[]); + ItclSizeT objc, Tcl_Obj *const objv[]); MODULE_SCOPE void ItclRestoreInfoVars(void *clientData); -MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyProcCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiInstallComponentCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiCallInstanceCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiGetInstanceVarCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyTypeMethodCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyMethodCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyTypeVarCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyVarCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiItclHullCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_ThisCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_ExtendedClassCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_TypeClassCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_AddObjectOptionCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_AddDelegatedOptionCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_AddDelegatedFunctionCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_SetComponentCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_ClassHullTypeCmd; -MODULE_SCOPE Tcl_ObjCmdProc Itcl_ClassWidgetClassCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_BiMyProcCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_BiInstallComponentCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_BiCallInstanceCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_BiGetInstanceVarCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_BiMyTypeMethodCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_BiMyMethodCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_BiMyTypeVarCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_BiMyVarCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_BiItclHullCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_ThisCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_ExtendedClassCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_TypeClassCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_AddObjectOptionCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_AddDelegatedOptionCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_AddDelegatedFunctionCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_SetComponentCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_ClassHullTypeCmd; +MODULE_SCOPE Tcl_ObjCmdProc2 Itcl_ClassWidgetClassCmd; typedef int (ItclRootMethodProc)(ItclObject *ioPtr, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]); + ItclSizeT objc, Tcl_Obj *const objv[]); -MODULE_SCOPE const Tcl_MethodType itclRootMethodType; +MODULE_SCOPE const Tcl_MethodType2 itclRootMethodType; MODULE_SCOPE ItclRootMethodProc ItclUnknownGuts; MODULE_SCOPE ItclRootMethodProc ItclConstructGuts; MODULE_SCOPE ItclRootMethodProc ItclInfoGuts; #include "itcl2TclOO.h" Index: generic/itclIntDecls.h ================================================================== --- generic/itclIntDecls.h +++ generic/itclIntDecls.h @@ -14,11 +14,11 @@ #endif /* !BEGIN!: Do not edit below this line. */ #define ITCLINT_STUBS_EPOCH 0 -#define ITCLINT_STUBS_REVISION 153 +#define ITCLINT_STUBS_REVISION 155 #ifdef __cplusplus extern "C" { #endif @@ -79,41 +79,39 @@ /* 19 */ ITCLAPI void Itcl_DeleteHierIter(ItclHierIter *iter); /* 20 */ ITCLAPI ItclClass * Itcl_AdvanceHierIter(ItclHierIter *iter); /* 21 */ -ITCLAPI int Itcl_FindClassesCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_FindClassesCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 22 */ -ITCLAPI int Itcl_FindObjectsCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_FindObjectsCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* Slot 23 is reserved */ /* 24 */ -ITCLAPI int Itcl_DelClassCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_DelClassCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 25 */ -ITCLAPI int Itcl_DelObjectCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_DelObjectCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 26 */ -ITCLAPI int Itcl_ScopeCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_ScopeCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 27 */ -ITCLAPI int Itcl_CodeCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_CodeCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 28 */ -ITCLAPI int Itcl_StubCreateCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_StubCreateCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 29 */ -ITCLAPI int Itcl_StubExistsCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_StubExistsCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 30 */ ITCLAPI int Itcl_IsStub(Tcl_Command cmd); /* 31 */ ITCLAPI int Itcl_CreateClass(Tcl_Interp *interp, @@ -124,12 +122,12 @@ ItclClass *iclsPtr); /* 33 */ ITCLAPI Tcl_Namespace * Itcl_FindClassNamespace(Tcl_Interp *interp, const char *path); /* 34 */ -ITCLAPI int Itcl_HandleClass(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_HandleClass(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* Slot 35 is reserved */ /* Slot 36 is reserved */ /* Slot 37 is reserved */ /* 38 */ @@ -162,16 +160,15 @@ ITCLAPI const char * Itcl_GetInstanceVar(Tcl_Interp *interp, const char *name, ItclObject *contextIoPtr, ItclClass *contextIclsPtr); /* Slot 49 is reserved */ /* 50 */ -ITCLAPI int Itcl_BodyCmd(ClientData dummy, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]); +ITCLAPI int Itcl_BodyCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 51 */ -ITCLAPI int Itcl_ConfigBodyCmd(ClientData dummy, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_ConfigBodyCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 52 */ ITCLAPI int Itcl_CreateMethod(Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *arglist, const char *body); /* 53 */ @@ -211,17 +208,15 @@ /* Slot 66 is reserved */ /* 67 */ ITCLAPI void Itcl_GetMemberFuncUsage(ItclMemberFunc *mfunc, ItclObject *contextObj, Tcl_Obj *objPtr); /* 68 */ -ITCLAPI int Itcl_ExecMethod(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_ExecMethod(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 69 */ -ITCLAPI int Itcl_ExecProc(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_ExecProc(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* Slot 70 is reserved */ /* 71 */ ITCLAPI int Itcl_ConstructBase(Tcl_Interp *interp, ItclObject *contextObj, ItclClass *contextClass); @@ -237,44 +232,43 @@ ItclObject *contextObj, int result); /* 75 */ ITCLAPI int Itcl_ParseInit(Tcl_Interp *interp, ItclObjectInfo *info); /* 76 */ -ITCLAPI int Itcl_ClassCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_ClassCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 77 */ -ITCLAPI int Itcl_ClassInheritCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ClassInheritCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 78 */ -ITCLAPI int Itcl_ClassProtectionCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ClassProtectionCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 79 */ -ITCLAPI int Itcl_ClassConstructorCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ClassConstructorCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 80 */ -ITCLAPI int Itcl_ClassDestructorCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ClassDestructorCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 81 */ -ITCLAPI int Itcl_ClassMethodCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ClassMethodCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 82 */ -ITCLAPI int Itcl_ClassProcCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ClassProcCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 83 */ -ITCLAPI int Itcl_ClassVariableCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ClassVariableCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 84 */ -ITCLAPI int Itcl_ClassCommonCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ClassCommonCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 85 */ ITCLAPI int Itcl_ParseVarResolver(Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNs, int flags, Tcl_Var *rPtr); @@ -283,52 +277,47 @@ ItclObjectInfo *infoPtr); /* 87 */ ITCLAPI int Itcl_InstallBiMethods(Tcl_Interp *interp, ItclClass *cdefn); /* 88 */ -ITCLAPI int Itcl_BiIsaCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_BiIsaCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 89 */ -ITCLAPI int Itcl_BiConfigureCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_BiConfigureCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 90 */ -ITCLAPI int Itcl_BiCgetCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_BiCgetCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 91 */ -ITCLAPI int Itcl_BiChainCmd(ClientData dummy, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]); +ITCLAPI int Itcl_BiChainCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 92 */ -ITCLAPI int Itcl_BiInfoClassCmd(ClientData dummy, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_BiInfoClassCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 93 */ -ITCLAPI int Itcl_BiInfoInheritCmd(ClientData dummy, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_BiInfoInheritCmd(void *dummy, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 94 */ -ITCLAPI int Itcl_BiInfoHeritageCmd(ClientData dummy, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_BiInfoHeritageCmd(void *dummy, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 95 */ -ITCLAPI int Itcl_BiInfoFunctionCmd(ClientData dummy, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_BiInfoFunctionCmd(void *dummy, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 96 */ -ITCLAPI int Itcl_BiInfoVariableCmd(ClientData dummy, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_BiInfoVariableCmd(void *dummy, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 97 */ -ITCLAPI int Itcl_BiInfoBodyCmd(ClientData dummy, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_BiInfoBodyCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 98 */ -ITCLAPI int Itcl_BiInfoArgsCmd(ClientData dummy, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_BiInfoArgsCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* Slot 99 is reserved */ /* 100 */ ITCLAPI int Itcl_EnsembleInit(Tcl_Interp *interp); /* 101 */ ITCLAPI int Itcl_CreateEnsemble(Tcl_Interp *interp, @@ -335,12 +324,11 @@ const char *ensName); /* 102 */ ITCLAPI int Itcl_AddEnsemblePart(Tcl_Interp *interp, const char *ensName, const char *partName, const char *usageInfo, - Tcl_ObjCmdProc *objProc, - ClientData clientData, + Tcl_ObjCmdProc2 *objProc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 103 */ ITCLAPI int Itcl_GetEnsemblePart(Tcl_Interp *interp, const char *ensName, const char *partName, Tcl_CmdInfo *infoPtr); @@ -351,19 +339,18 @@ const char *ensName, Tcl_Obj *objPtr); /* 106 */ ITCLAPI int Itcl_GetEnsembleUsageForObj(Tcl_Interp *interp, Tcl_Obj *ensObjPtr, Tcl_Obj *objPtr); /* 107 */ -ITCLAPI int Itcl_EnsembleCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_EnsembleCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 108 */ -ITCLAPI int Itcl_EnsPartCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_EnsPartCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 109 */ -ITCLAPI int Itcl_EnsembleErrorCmd(ClientData clientData, +ITCLAPI int Itcl_EnsembleErrorCmd(void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* Slot 110 is reserved */ /* Slot 111 is reserved */ /* Slot 112 is reserved */ @@ -371,17 +358,16 @@ /* Slot 114 is reserved */ /* 115 */ ITCLAPI void Itcl_Assert(const char *testExpr, const char *fileName, int lineNum); /* 116 */ -ITCLAPI int Itcl_IsObjectCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_IsObjectCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 117 */ -ITCLAPI int Itcl_IsClassCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_IsClassCmd(void *clientData, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* Slot 118 is reserved */ /* Slot 119 is reserved */ /* Slot 120 is reserved */ /* Slot 121 is reserved */ /* Slot 122 is reserved */ @@ -401,46 +387,45 @@ /* Slot 136 is reserved */ /* Slot 137 is reserved */ /* Slot 138 is reserved */ /* Slot 139 is reserved */ /* 140 */ -ITCLAPI int Itcl_FilterAddCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_FilterAddCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 141 */ -ITCLAPI int Itcl_FilterDeleteCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_FilterDeleteCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 142 */ -ITCLAPI int Itcl_ForwardAddCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ForwardAddCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 143 */ -ITCLAPI int Itcl_ForwardDeleteCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_ForwardDeleteCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 144 */ -ITCLAPI int Itcl_MixinAddCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_MixinAddCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 145 */ -ITCLAPI int Itcl_MixinDeleteCmd(ClientData clientData, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_MixinDeleteCmd(void *clientData, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* Slot 146 is reserved */ /* Slot 147 is reserved */ /* Slot 148 is reserved */ /* Slot 149 is reserved */ /* Slot 150 is reserved */ /* 151 */ -ITCLAPI int Itcl_BiInfoUnknownCmd(ClientData dummy, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_BiInfoUnknownCmd(void *dummy, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 152 */ -ITCLAPI int Itcl_BiInfoVarsCmd(ClientData dummy, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_BiInfoVarsCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 153 */ ITCLAPI int Itcl_CanAccess2(ItclClass *iclsPtr, int protection, Tcl_Namespace *fromNsPtr); /* Slot 154 is reserved */ /* Slot 155 is reserved */ @@ -450,46 +435,43 @@ /* Slot 159 is reserved */ /* 160 */ ITCLAPI int Itcl_SetCallFrameResolver(Tcl_Interp *interp, Tcl_Resolve *resolvePtr); /* 161 */ -ITCLAPI int ItclEnsembleSubCmd(ClientData clientData, +ITCLAPI int ItclEnsembleSubCmd(void *clientData, Tcl_Interp *interp, const char *ensembleName, - int objc, Tcl_Obj *const *objv, + ItclSizeT objc, Tcl_Obj *const *objv, const char *functionName); /* 162 */ ITCLAPI Tcl_Namespace * Itcl_GetUplevelNamespace(Tcl_Interp *interp, int level); /* 163 */ -ITCLAPI ClientData Itcl_GetCallFrameClientData(Tcl_Interp *interp); +ITCLAPI void * Itcl_GetCallFrameClientData(Tcl_Interp *interp); /* Slot 164 is reserved */ /* 165 */ ITCLAPI int Itcl_SetCallFrameNamespace(Tcl_Interp *interp, Tcl_Namespace *nsPtr); /* 166 */ ITCLAPI ItclSizeT Itcl_GetCallFrameObjc(Tcl_Interp *interp); /* 167 */ ITCLAPI Tcl_Obj *const * Itcl_GetCallFrameObjv(Tcl_Interp *interp); /* 168 */ -ITCLAPI int Itcl_NWidgetCmd(ClientData infoPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_NWidgetCmd(void *infoPtr, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 169 */ -ITCLAPI int Itcl_AddOptionCmd(ClientData infoPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_AddOptionCmd(void *infoPtr, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 170 */ -ITCLAPI int Itcl_AddComponentCmd(ClientData infoPtr, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_AddComponentCmd(void *infoPtr, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 171 */ -ITCLAPI int Itcl_BiInfoOptionCmd(ClientData dummy, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); +ITCLAPI int Itcl_BiInfoOptionCmd(void *dummy, Tcl_Interp *interp, + ItclSizeT objc, Tcl_Obj *const objv[]); /* 172 */ -ITCLAPI int Itcl_BiInfoComponentCmd(ClientData dummy, - Tcl_Interp *interp, int objc, +ITCLAPI int Itcl_BiInfoComponentCmd(void *dummy, + Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 173 */ ITCLAPI int Itcl_RenameCommand(Tcl_Interp *interp, const char *oldName, const char *newName); /* 174 */ @@ -510,13 +492,13 @@ const char *value, ItclObject *contextIoPtr, ItclClass *contextIclsPtr); /* 179 */ ITCLAPI Tcl_Obj * ItclCapitalize(const char *str); /* 180 */ -ITCLAPI int ItclClassBaseCmd(ClientData clientData, - Tcl_Interp *interp, int flags, int objc, - Tcl_Obj *const objv[], +ITCLAPI int ItclClassBaseCmd(void *clientData, + Tcl_Interp *interp, int flags, + ItclSizeT objc, Tcl_Obj *const objv[], ItclClass **iclsPtrPtr); /* 181 */ ITCLAPI int ItclCreateComponent(Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *componentPtr, int type, ItclComponent **icPtrPtr); @@ -555,24 +537,24 @@ void (*reserved16)(void); int (*itcl_GetContext) (Tcl_Interp *interp, ItclClass **iclsPtrPtr, ItclObject **ioPtrPtr); /* 17 */ void (*itcl_InitHierIter) (ItclHierIter *iter, ItclClass *iclsPtr); /* 18 */ void (*itcl_DeleteHierIter) (ItclHierIter *iter); /* 19 */ ItclClass * (*itcl_AdvanceHierIter) (ItclHierIter *iter); /* 20 */ - int (*itcl_FindClassesCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 21 */ - int (*itcl_FindObjectsCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 22 */ + int (*itcl_FindClassesCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 21 */ + int (*itcl_FindObjectsCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 22 */ void (*reserved23)(void); - int (*itcl_DelClassCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 24 */ - int (*itcl_DelObjectCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 25 */ - int (*itcl_ScopeCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 26 */ - int (*itcl_CodeCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 27 */ - int (*itcl_StubCreateCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 28 */ - int (*itcl_StubExistsCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 29 */ + int (*itcl_DelClassCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 24 */ + int (*itcl_DelObjectCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 25 */ + int (*itcl_ScopeCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 26 */ + int (*itcl_CodeCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 27 */ + int (*itcl_StubCreateCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 28 */ + int (*itcl_StubExistsCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 29 */ int (*itcl_IsStub) (Tcl_Command cmd); /* 30 */ int (*itcl_CreateClass) (Tcl_Interp *interp, const char *path, ItclObjectInfo *info, ItclClass **rPtr); /* 31 */ int (*itcl_DeleteClass) (Tcl_Interp *interp, ItclClass *iclsPtr); /* 32 */ Tcl_Namespace * (*itcl_FindClassNamespace) (Tcl_Interp *interp, const char *path); /* 33 */ - int (*itcl_HandleClass) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 34 */ + int (*itcl_HandleClass) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 34 */ void (*reserved35)(void); void (*reserved36)(void); void (*reserved37)(void); void (*itcl_BuildVirtualTables) (ItclClass *iclsPtr); /* 38 */ int (*itcl_CreateVariable) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *name, char *init, char *config, ItclVariable **ivPtr); /* 39 */ @@ -584,12 +566,12 @@ int (*itcl_DeleteObject) (Tcl_Interp *interp, ItclObject *contextObj); /* 45 */ int (*itcl_DestructObject) (Tcl_Interp *interp, ItclObject *contextObj, int flags); /* 46 */ void (*reserved47)(void); const char * (*itcl_GetInstanceVar) (Tcl_Interp *interp, const char *name, ItclObject *contextIoPtr, ItclClass *contextIclsPtr); /* 48 */ void (*reserved49)(void); - int (*itcl_BodyCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 50 */ - int (*itcl_ConfigBodyCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 51 */ + int (*itcl_BodyCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 50 */ + int (*itcl_ConfigBodyCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 51 */ int (*itcl_CreateMethod) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *arglist, const char *body); /* 52 */ int (*itcl_CreateProc) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *arglist, const char *body); /* 53 */ int (*itcl_CreateMemberFunc) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *name, const char *arglist, const char *body, ItclMemberFunc **mfuncPtr); /* 54 */ int (*itcl_ChangeMemberFunc) (Tcl_Interp *interp, ItclMemberFunc *mfunc, const char *arglist, const char *body); /* 55 */ void (*itcl_DeleteMemberFunc) (void *cdata); /* 56 */ @@ -602,60 +584,60 @@ void (*reserved63)(void); void (*reserved64)(void); void (*reserved65)(void); void (*reserved66)(void); void (*itcl_GetMemberFuncUsage) (ItclMemberFunc *mfunc, ItclObject *contextObj, Tcl_Obj *objPtr); /* 67 */ - int (*itcl_ExecMethod) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 68 */ - int (*itcl_ExecProc) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 69 */ + int (*itcl_ExecMethod) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 68 */ + int (*itcl_ExecProc) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 69 */ void (*reserved70)(void); int (*itcl_ConstructBase) (Tcl_Interp *interp, ItclObject *contextObj, ItclClass *contextClass); /* 71 */ int (*itcl_InvokeMethodIfExists) (Tcl_Interp *interp, const char *name, ItclClass *contextClass, ItclObject *contextObj, ItclSizeT objc, Tcl_Obj *const objv[]); /* 72 */ void (*reserved73)(void); int (*itcl_ReportFuncErrors) (Tcl_Interp *interp, ItclMemberFunc *mfunc, ItclObject *contextObj, int result); /* 74 */ int (*itcl_ParseInit) (Tcl_Interp *interp, ItclObjectInfo *info); /* 75 */ - int (*itcl_ClassCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 76 */ - int (*itcl_ClassInheritCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 77 */ - int (*itcl_ClassProtectionCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 78 */ - int (*itcl_ClassConstructorCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 79 */ - int (*itcl_ClassDestructorCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 80 */ - int (*itcl_ClassMethodCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 81 */ - int (*itcl_ClassProcCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 82 */ - int (*itcl_ClassVariableCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 83 */ - int (*itcl_ClassCommonCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 84 */ + int (*itcl_ClassCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 76 */ + int (*itcl_ClassInheritCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 77 */ + int (*itcl_ClassProtectionCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 78 */ + int (*itcl_ClassConstructorCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 79 */ + int (*itcl_ClassDestructorCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 80 */ + int (*itcl_ClassMethodCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 81 */ + int (*itcl_ClassProcCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 82 */ + int (*itcl_ClassVariableCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 83 */ + int (*itcl_ClassCommonCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 84 */ int (*itcl_ParseVarResolver) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNs, int flags, Tcl_Var *rPtr); /* 85 */ int (*itcl_BiInit) (Tcl_Interp *interp, ItclObjectInfo *infoPtr); /* 86 */ int (*itcl_InstallBiMethods) (Tcl_Interp *interp, ItclClass *cdefn); /* 87 */ - int (*itcl_BiIsaCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 88 */ - int (*itcl_BiConfigureCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 89 */ - int (*itcl_BiCgetCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 90 */ - int (*itcl_BiChainCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 91 */ - int (*itcl_BiInfoClassCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 92 */ - int (*itcl_BiInfoInheritCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 93 */ - int (*itcl_BiInfoHeritageCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 94 */ - int (*itcl_BiInfoFunctionCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 95 */ - int (*itcl_BiInfoVariableCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 96 */ - int (*itcl_BiInfoBodyCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 97 */ - int (*itcl_BiInfoArgsCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 98 */ + int (*itcl_BiIsaCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 88 */ + int (*itcl_BiConfigureCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 89 */ + int (*itcl_BiCgetCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 90 */ + int (*itcl_BiChainCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 91 */ + int (*itcl_BiInfoClassCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 92 */ + int (*itcl_BiInfoInheritCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 93 */ + int (*itcl_BiInfoHeritageCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 94 */ + int (*itcl_BiInfoFunctionCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 95 */ + int (*itcl_BiInfoVariableCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 96 */ + int (*itcl_BiInfoBodyCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 97 */ + int (*itcl_BiInfoArgsCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 98 */ void (*reserved99)(void); int (*itcl_EnsembleInit) (Tcl_Interp *interp); /* 100 */ int (*itcl_CreateEnsemble) (Tcl_Interp *interp, const char *ensName); /* 101 */ - int (*itcl_AddEnsemblePart) (Tcl_Interp *interp, const char *ensName, const char *partName, const char *usageInfo, Tcl_ObjCmdProc *objProc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 102 */ + int (*itcl_AddEnsemblePart) (Tcl_Interp *interp, const char *ensName, const char *partName, const char *usageInfo, Tcl_ObjCmdProc2 *objProc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 102 */ int (*itcl_GetEnsemblePart) (Tcl_Interp *interp, const char *ensName, const char *partName, Tcl_CmdInfo *infoPtr); /* 103 */ int (*itcl_IsEnsemble) (Tcl_CmdInfo *infoPtr); /* 104 */ int (*itcl_GetEnsembleUsage) (Tcl_Interp *interp, const char *ensName, Tcl_Obj *objPtr); /* 105 */ int (*itcl_GetEnsembleUsageForObj) (Tcl_Interp *interp, Tcl_Obj *ensObjPtr, Tcl_Obj *objPtr); /* 106 */ - int (*itcl_EnsembleCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 107 */ - int (*itcl_EnsPartCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 108 */ - int (*itcl_EnsembleErrorCmd) (ClientData clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 109 */ + int (*itcl_EnsembleCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 107 */ + int (*itcl_EnsPartCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 108 */ + int (*itcl_EnsembleErrorCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 109 */ void (*reserved110)(void); void (*reserved111)(void); void (*reserved112)(void); void (*reserved113)(void); void (*reserved114)(void); void (*itcl_Assert) (const char *testExpr, const char *fileName, int lineNum); /* 115 */ - int (*itcl_IsObjectCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 116 */ - int (*itcl_IsClassCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 117 */ + int (*itcl_IsObjectCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 116 */ + int (*itcl_IsClassCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 117 */ void (*reserved118)(void); void (*reserved119)(void); void (*reserved120)(void); void (*reserved121)(void); void (*reserved122)(void); @@ -674,51 +656,51 @@ void (*reserved135)(void); void (*reserved136)(void); void (*reserved137)(void); void (*reserved138)(void); void (*reserved139)(void); - int (*itcl_FilterAddCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 140 */ - int (*itcl_FilterDeleteCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 141 */ - int (*itcl_ForwardAddCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 142 */ - int (*itcl_ForwardDeleteCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 143 */ - int (*itcl_MixinAddCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 144 */ - int (*itcl_MixinDeleteCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 145 */ + int (*itcl_FilterAddCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 140 */ + int (*itcl_FilterDeleteCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 141 */ + int (*itcl_ForwardAddCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 142 */ + int (*itcl_ForwardDeleteCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 143 */ + int (*itcl_MixinAddCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 144 */ + int (*itcl_MixinDeleteCmd) (void *clientData, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 145 */ void (*reserved146)(void); void (*reserved147)(void); void (*reserved148)(void); void (*reserved149)(void); void (*reserved150)(void); - int (*itcl_BiInfoUnknownCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 151 */ - int (*itcl_BiInfoVarsCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 152 */ + int (*itcl_BiInfoUnknownCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 151 */ + int (*itcl_BiInfoVarsCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 152 */ int (*itcl_CanAccess2) (ItclClass *iclsPtr, int protection, Tcl_Namespace *fromNsPtr); /* 153 */ void (*reserved154)(void); void (*reserved155)(void); void (*reserved156)(void); void (*reserved157)(void); void (*reserved158)(void); void (*reserved159)(void); int (*itcl_SetCallFrameResolver) (Tcl_Interp *interp, Tcl_Resolve *resolvePtr); /* 160 */ - int (*itclEnsembleSubCmd) (ClientData clientData, Tcl_Interp *interp, const char *ensembleName, int objc, Tcl_Obj *const *objv, const char *functionName); /* 161 */ + int (*itclEnsembleSubCmd) (void *clientData, Tcl_Interp *interp, const char *ensembleName, ItclSizeT objc, Tcl_Obj *const *objv, const char *functionName); /* 161 */ Tcl_Namespace * (*itcl_GetUplevelNamespace) (Tcl_Interp *interp, int level); /* 162 */ - ClientData (*itcl_GetCallFrameClientData) (Tcl_Interp *interp); /* 163 */ + void * (*itcl_GetCallFrameClientData) (Tcl_Interp *interp); /* 163 */ void (*reserved164)(void); int (*itcl_SetCallFrameNamespace) (Tcl_Interp *interp, Tcl_Namespace *nsPtr); /* 165 */ ItclSizeT (*itcl_GetCallFrameObjc) (Tcl_Interp *interp); /* 166 */ Tcl_Obj *const * (*itcl_GetCallFrameObjv) (Tcl_Interp *interp); /* 167 */ - int (*itcl_NWidgetCmd) (ClientData infoPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 168 */ - int (*itcl_AddOptionCmd) (ClientData infoPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 169 */ - int (*itcl_AddComponentCmd) (ClientData infoPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 170 */ - int (*itcl_BiInfoOptionCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 171 */ - int (*itcl_BiInfoComponentCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 172 */ + int (*itcl_NWidgetCmd) (void *infoPtr, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 168 */ + int (*itcl_AddOptionCmd) (void *infoPtr, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 169 */ + int (*itcl_AddComponentCmd) (void *infoPtr, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 170 */ + int (*itcl_BiInfoOptionCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 171 */ + int (*itcl_BiInfoComponentCmd) (void *dummy, Tcl_Interp *interp, ItclSizeT objc, Tcl_Obj *const objv[]); /* 172 */ int (*itcl_RenameCommand) (Tcl_Interp *interp, const char *oldName, const char *newName); /* 173 */ int (*itcl_PushCallFrame) (Tcl_Interp *interp, Tcl_CallFrame *framePtr, Tcl_Namespace *nsPtr, int isProcCallFrame); /* 174 */ void (*itcl_PopCallFrame) (Tcl_Interp *interp); /* 175 */ Tcl_CallFrame * (*itcl_GetUplevelCallFrame) (Tcl_Interp *interp, int level); /* 176 */ Tcl_CallFrame * (*itcl_ActivateCallFrame) (Tcl_Interp *interp, Tcl_CallFrame *framePtr); /* 177 */ const char* (*itclSetInstanceVar) (Tcl_Interp *interp, const char *name, const char *name2, const char *value, ItclObject *contextIoPtr, ItclClass *contextIclsPtr); /* 178 */ Tcl_Obj * (*itclCapitalize) (const char *str); /* 179 */ - int (*itclClassBaseCmd) (ClientData clientData, Tcl_Interp *interp, int flags, int objc, Tcl_Obj *const objv[], ItclClass **iclsPtrPtr); /* 180 */ + int (*itclClassBaseCmd) (void *clientData, Tcl_Interp *interp, int flags, ItclSizeT objc, Tcl_Obj *const objv[], ItclClass **iclsPtrPtr); /* 180 */ int (*itclCreateComponent) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *componentPtr, int type, ItclComponent **icPtrPtr); /* 181 */ void (*itcl_SetContext) (Tcl_Interp *interp, ItclObject *ioPtr); /* 182 */ void (*itcl_UnsetContext) (Tcl_Interp *interp); /* 183 */ const char * (*itclGetInstanceVar) (Tcl_Interp *interp, const char *name, const char *name2, ItclObject *ioPtr, ItclClass *iclsPtr); /* 184 */ } ItclIntStubs; Index: generic/itclLinkage.c ================================================================== --- generic/itclLinkage.c +++ generic/itclLinkage.c @@ -28,17 +28,18 @@ * ------------------------------------------------------------------------ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "itclInt.h" +#include /* * These records store the pointers for all "RegisterC" functions. */ typedef struct ItclCfunc { Tcl_CmdProc *argCmdProc; /* old-style (argc,argv) command handler */ - Tcl_ObjCmdProc *objCmdProc; /* new (objc,objv) command handler */ + Tcl_ObjCmdProc2 *objCmdProc; /* new (objc,objv) command handler */ void *clientData; /* client data passed into this function */ Tcl_CmdDeleteProc *deleteProc; /* proc called to free clientData */ } ItclCfunc; static Tcl_HashTable* ItclGetRegisteredProcs(Tcl_Interp *interp); @@ -155,15 +156,16 @@ * * Returns TCL_OK on success, or TCL_ERROR (along with an error message * in interp->result) if anything goes wrong. * ------------------------------------------------------------------------ */ + int -Itcl_RegisterObjC( +Itcl_RegisterObjC2( Tcl_Interp *interp, /* interpreter handling this registration */ const char *name, /* symbolic name for procedure */ - Tcl_ObjCmdProc *proc, /* procedure handling Tcl command */ + Tcl_ObjCmdProc2 *proc, /* procedure handling Tcl command */ void *clientData, /* client data associated with proc */ Tcl_CmdDeleteProc *deleteProc) /* proc called to free up client data */ { int newEntry; Tcl_HashEntry *entry; @@ -211,11 +213,63 @@ Tcl_SetHashValue(entry, cfunc); return TCL_OK; } - +#if TCL_MAJOR_VERSION > 8 + +typedef struct { + void *clientData; /* Arbitrary value to pass to object function. */ + Tcl_ObjCmdProc *proc; + Tcl_CmdDeleteProc *deleteProc; +} CmdWrapperInfo; + + +static int cmdWrapperProc(void *clientData, + Tcl_Interp *interp, + size_t objc, + struct Tcl_Obj * const *objv) +{ + CmdWrapperInfo *info = (CmdWrapperInfo *)clientData; + if (objc > INT_MAX) { + Tcl_WrongNumArgs(interp, 1, objv, "?args?"); + return TCL_ERROR; + } + return info->proc(info->clientData, interp, objc, objv); +} + +static void cmdWrapperDeleteProc(void *clientData) { + CmdWrapperInfo *info = (CmdWrapperInfo *)clientData; + + clientData = info->clientData; + Tcl_CmdDeleteProc *deleteProc = info->deleteProc; + ckfree(info); + if (deleteProc != NULL) { + deleteProc(clientData); + } +} + +int +Itcl_RegisterObjC( + Tcl_Interp *interp, /* interpreter handling this registration */ + const char *name, /* symbolic name for procedure */ + Tcl_ObjCmdProc *proc, /* procedure handling Tcl command */ + void *clientData, /* client data associated with proc */ + Tcl_CmdDeleteProc *deleteProc) /* proc called to free up client data */ +{ + CmdWrapperInfo *info = (CmdWrapperInfo *)ckalloc(sizeof(CmdWrapperInfo)); + info->proc = proc; + info->deleteProc = deleteProc; + info->clientData = clientData; + + return Itcl_RegisterObjC2(interp, name, + (proc ? cmdWrapperProc : NULL), + info, cmdWrapperDeleteProc); + +} +#endif + /* * ------------------------------------------------------------------------ * Itcl_FindC() * * Used to query a C procedure via its symbolic name. Looks at the @@ -224,16 +278,17 @@ * (argc,argv) or (objc,objv) handlers. Returns non-zero if the * name is recognized and pointers are returned; returns zero * otherwise. * ------------------------------------------------------------------------ */ + int -Itcl_FindC( +Itcl_FindC2( Tcl_Interp *interp, /* interpreter handling this registration */ const char *name, /* symbolic name for procedure */ Tcl_CmdProc **argProcPtr, /* returns (argc,argv) command handler */ - Tcl_ObjCmdProc **objProcPtr, /* returns (objc,objv) command handler */ + Tcl_ObjCmdProc2 **objProcPtr, /* returns (objc,objv) command handler */ void **cDataPtr) /* returns client data */ { Tcl_HashEntry *entry; Tcl_HashTable *procTable; ItclCfunc *cfunc; @@ -257,11 +312,31 @@ } } return (*argProcPtr != NULL || *objProcPtr != NULL); } - +#if TCL_MAJOR_VERSION > 8 +int +Itcl_FindC( + Tcl_Interp *interp, /* interpreter handling this registration */ + const char *name, /* symbolic name for procedure */ + Tcl_CmdProc **argProcPtr, /* returns (argc,argv) command handler */ + Tcl_ObjCmdProc **objProcPtr, /* returns (objc,objv) command handler */ + void **cDataPtr) /* returns client data */ +{ + Tcl_ObjCmdProc2 *proc2; + int result = Itcl_FindC2(interp, name, argProcPtr, &proc2, cDataPtr); + if (result && proc2 == cmdWrapperProc) { + CmdWrapperInfo *info = (CmdWrapperInfo *)ckalloc(sizeof(CmdWrapperInfo)); + *objProcPtr = info->proc; + *cDataPtr = info->clientData; + } + return result; +} +#endif + + /* * ------------------------------------------------------------------------ * ItclGetRegisteredProcs() * * Returns a pointer to a hash table containing the list of registered Index: generic/itclMethod.c ================================================================== --- generic/itclMethod.c +++ generic/itclMethod.c @@ -64,11 +64,11 @@ */ static int NRBodyCmd( TCL_UNUSED(void *), /* */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const *objv) /* argument objects */ { Tcl_HashEntry *entry; Tcl_DString buffer; Tcl_Obj *objPtr; @@ -158,14 +158,14 @@ int Itcl_BodyCmd( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { - return Tcl_NRCallObjProc(interp, NRBodyCmd, clientData, objc, objv); + return Tcl_NRCallObjProc2(interp, NRBodyCmd, clientData, objc, objv); } /* @@ -189,11 +189,11 @@ static int NRConfigBodyCmd( TCL_UNUSED(void *), /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int status = TCL_OK; const char *head; @@ -291,14 +291,14 @@ int Itcl_ConfigBodyCmd( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { - return Tcl_NRCallObjProc(interp, NRConfigBodyCmd, clientData, objc, objv); + return Tcl_NRCallObjProc2(interp, NRConfigBodyCmd, clientData, objc, objv); } /* @@ -907,11 +907,11 @@ if (body == NULL) { /* No-op */ } else { if (*body == '@') { Tcl_CmdProc *argCmdProc; - Tcl_ObjCmdProc *objCmdProc; + Tcl_ObjCmdProc2 *objCmdProc; void *cdata; int isDone; isDone = 0; if (strcmp(body, "@itcl-builtin-cget") == 0) { @@ -988,11 +988,11 @@ } if (strcmp(body, "@itcl-builtin-classunknown") == 0) { isDone = 1; } if (!isDone) { - if (!Itcl_FindC(interp, body+1, &argCmdProc, &objCmdProc, + if (!Itcl_FindC2(interp, body+1, &argCmdProc, &objCmdProc, &cdata)) { Tcl_AppendResult(interp, "no registered C procedure with name \"", body+1, "\"", NULL); Itcl_PreserveData(mcode); @@ -1189,11 +1189,11 @@ int result) { Tcl_Object oPtr; ItclMemberFunc *imPtr = (ItclMemberFunc *)data[0]; ItclObject *ioPtr = (ItclObject *)data[1]; - int objc = PTR2INT(data[2]); + ItclSizeT objc = PTR2INT(data[2]); Tcl_Obj **objv = (Tcl_Obj **)data[3]; ItclShowArgs(1, "CallItclObjectCmd", objc, objv); if (ioPtr != NULL) { ioPtr->hadConstructorError = 0; @@ -1636,11 +1636,11 @@ */ static int NRExecMethod( void *clientData, /* method definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const *objv) /* argument objects */ { ItclMemberFunc *imPtr = (ItclMemberFunc*)clientData; int result = TCL_OK; @@ -1708,14 +1708,14 @@ int Itcl_ExecMethod( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { - return Tcl_NRCallObjProc(interp, NRExecMethod, clientData, objc, objv); + return Tcl_NRCallObjProc2(interp, NRExecMethod, clientData, objc, objv); } /* * ------------------------------------------------------------------------ @@ -1733,11 +1733,11 @@ */ static int NRExecProc( void *clientData, /* proc definition */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclMemberFunc *imPtr = (ItclMemberFunc*)clientData; int result = TCL_OK; @@ -1796,14 +1796,14 @@ int Itcl_ExecProc( void *clientData, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { - return Tcl_NRCallObjProc(interp, NRExecProc, clientData, objc, objv); + return Tcl_NRCallObjProc2(interp, NRExecProc, clientData, objc, objv); } static int CallInvokeMethodIfExists( void *data[], @@ -1810,11 +1810,11 @@ Tcl_Interp *interp, int result) { ItclClass *iclsPtr = (ItclClass *)data[0]; ItclObject *contextObj = (ItclObject *)data[1]; - int objc = PTR2INT(data[2]); + ItclSizeT objc = PTR2INT(data[2]); Tcl_Obj *const *objv = (Tcl_Obj *const *)data[3]; result = Itcl_InvokeMethodIfExists(interp, "constructor", iclsPtr, contextObj, objc, (Tcl_Obj* const*)objv); @@ -1902,11 +1902,11 @@ int ItclConstructGuts( ItclObject *contextObj, Tcl_Interp *interp, - int objc, + ItclSizeT objc, Tcl_Obj *const objv[]) { ItclClass *contextClass; /* Ignore syntax error */ Index: generic/itclObject.c ================================================================== --- generic/itclObject.c +++ generic/itclObject.c @@ -197,11 +197,11 @@ int ItclCreateObject( Tcl_Interp *interp, /* interpreter mananging new object */ const char* name, /* name of new object */ ItclClass *iclsPtr, /* class for new object */ - size_t objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { int result = TCL_OK; Tcl_DString buffer; @@ -629,11 +629,11 @@ * can be eliminated by getting the inheritance tree right. */ if (iclsPtr->flags & (ITCL_ECLASS|ITCL_TYPE|ITCL_WIDGET|ITCL_WIDGETADAPTOR)) { - Tcl_NewInstanceMethod(interp, ioPtr->oPtr, + Tcl_NewInstanceMethod2(interp, ioPtr->oPtr, Tcl_NewStringObj("unknown", -1), 0, &itclRootMethodType, (void *)ItclUnknownGuts); } if (iclsPtr->flags & (ITCL_TYPE|ITCL_WIDGETADAPTOR)) { @@ -2716,11 +2716,11 @@ int result) { Tcl_Object *oPtr = (Tcl_Object *)data[0]; Tcl_Class clsPtr = (Tcl_Class)data[1]; Tcl_Obj *const *objv = (Tcl_Obj *const *)data[3]; - size_t objc = PTR2INT(data[2]); + ItclSizeT objc = PTR2INT(data[2]); ItclShowArgs(1, "CallPublicObjectCmd", objc, objv); result = Itcl_PublicObjectCmd(oPtr, interp, clsPtr, objc, objv); ItclShowArgs(1, "CallPublicObjectCmd DONE", objc, objv); return result; @@ -2730,11 +2730,11 @@ ItclObjectCmd( void *clientData, Tcl_Interp *interp, Tcl_Object oPtr, Tcl_Class clsPtr, - size_t objc, + ItclSizeT objc, Tcl_Obj *const *objv) { Tcl_Obj *methodNamePtr; Tcl_Obj **newObjv; Tcl_DString buffer; Index: generic/itclParse.c ================================================================== --- generic/itclParse.c +++ generic/itclParse.c @@ -118,29 +118,29 @@ static Tcl_CmdDeleteProc ItclFreeParserCommandData; static void ItclDelObjectInfo(char* cdata); static int ItclInitClassCommon(Tcl_Interp *interp, ItclClass *iclsPtr, ItclVariable *ivPtr, const char *initStr); -static Tcl_ObjCmdProc Itcl_ClassTypeVariableCmd; -static Tcl_ObjCmdProc Itcl_ClassTypeMethodCmd; -static Tcl_ObjCmdProc Itcl_ClassFilterCmd; -static Tcl_ObjCmdProc Itcl_ClassMixinCmd; -static Tcl_ObjCmdProc Itcl_WidgetCmd; -static Tcl_ObjCmdProc Itcl_WidgetAdaptorCmd; -static Tcl_ObjCmdProc Itcl_ClassComponentCmd; -static Tcl_ObjCmdProc Itcl_ClassTypeComponentCmd; -static Tcl_ObjCmdProc Itcl_ClassDelegateMethodCmd; -static Tcl_ObjCmdProc Itcl_ClassDelegateOptionCmd; -static Tcl_ObjCmdProc Itcl_ClassDelegateTypeMethodCmd; -static Tcl_ObjCmdProc Itcl_ClassForwardCmd; -static Tcl_ObjCmdProc Itcl_ClassMethodVariableCmd; -static Tcl_ObjCmdProc Itcl_ClassTypeConstructorCmd; -static Tcl_ObjCmdProc ItclGenericClassCmd; +static Tcl_ObjCmdProc2 Itcl_ClassTypeVariableCmd; +static Tcl_ObjCmdProc2 Itcl_ClassTypeMethodCmd; +static Tcl_ObjCmdProc2 Itcl_ClassFilterCmd; +static Tcl_ObjCmdProc2 Itcl_ClassMixinCmd; +static Tcl_ObjCmdProc2 Itcl_WidgetCmd; +static Tcl_ObjCmdProc2 Itcl_WidgetAdaptorCmd; +static Tcl_ObjCmdProc2 Itcl_ClassComponentCmd; +static Tcl_ObjCmdProc2 Itcl_ClassTypeComponentCmd; +static Tcl_ObjCmdProc2 Itcl_ClassDelegateMethodCmd; +static Tcl_ObjCmdProc2 Itcl_ClassDelegateOptionCmd; +static Tcl_ObjCmdProc2 Itcl_ClassDelegateTypeMethodCmd; +static Tcl_ObjCmdProc2 Itcl_ClassForwardCmd; +static Tcl_ObjCmdProc2 Itcl_ClassMethodVariableCmd; +static Tcl_ObjCmdProc2 Itcl_ClassTypeConstructorCmd; +static Tcl_ObjCmdProc2 ItclGenericClassCmd; static const struct { const char *name; - Tcl_ObjCmdProc *objProc; + Tcl_ObjCmdProc2 *objProc; } parseCmds[] = { {"common", Itcl_ClassCommonCmd}, {"component", Itcl_ClassComponentCmd}, {"constructor", Itcl_ClassConstructorCmd}, {"destructor", Itcl_ClassDestructorCmd}, @@ -163,11 +163,11 @@ {NULL, NULL} }; static const struct { const char *name; - Tcl_ObjCmdProc *objProc; + Tcl_ObjCmdProc2 *objProc; int protection; } protectionCmds[] = { {"private", Itcl_ClassProtectionCmd, ITCL_PRIVATE}, {"protected", Itcl_ClassProtectionCmd, ITCL_PROTECTED}, {"public", Itcl_ClassProtectionCmd, ITCL_PUBLIC}, @@ -213,11 +213,11 @@ */ Tcl_DStringInit(&buffer); for (i=0 ; parseCmds[i].name ; i++) { Tcl_DStringAppend(&buffer, "::itcl::parser::", 16); Tcl_DStringAppend(&buffer, parseCmds[i].name, -1); - Tcl_CreateObjCommand(interp, Tcl_DStringValue(&buffer), + Tcl_CreateObjCommand2(interp, Tcl_DStringValue(&buffer), parseCmds[i].objProc, infoPtr, NULL); Tcl_DStringFree(&buffer); } for (i=0 ; protectionCmds[i].name ; i++) { @@ -224,11 +224,11 @@ Tcl_DStringAppend(&buffer, "::itcl::parser::", 16); Tcl_DStringAppend(&buffer, protectionCmds[i].name, -1); pInfoPtr = (ProtectionCmdInfo*)ckalloc(sizeof(ProtectionCmdInfo)); pInfoPtr->pLevel = protectionCmds[i].protection; pInfoPtr->infoPtr = infoPtr; - Tcl_CreateObjCommand(interp, Tcl_DStringValue(&buffer), + Tcl_CreateObjCommand2(interp, Tcl_DStringValue(&buffer), protectionCmds[i].objProc, pInfoPtr, (Tcl_CmdDeleteProc*) ItclFreeParserCommandData); Tcl_DStringFree(&buffer); } @@ -241,18 +241,18 @@ ItclSetParserResolver(parserNs); } /* * Install the "class" command for defining new classes. */ - Tcl_CreateObjCommand(interp, "::itcl::class", Itcl_ClassCmd, + Tcl_CreateObjCommand2(interp, "::itcl::class", Itcl_ClassCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); - Tcl_CreateObjCommand(interp, "::itcl::body", Itcl_BodyCmd, + Tcl_CreateObjCommand2(interp, "::itcl::body", Itcl_BodyCmd, NULL, NULL); - Tcl_CreateObjCommand(interp, "::itcl::configbody", Itcl_ConfigBodyCmd, + Tcl_CreateObjCommand2(interp, "::itcl::configbody", Itcl_ConfigBodyCmd, NULL, NULL); Itcl_EventuallyFree(infoPtr, (Tcl_FreeProc *) ItclDelObjectInfo); /* @@ -335,14 +335,14 @@ /* * Add "code" and "scope" commands for handling scoped values. */ - Tcl_CreateObjCommand(interp, "::itcl::code", Itcl_CodeCmd, + Tcl_CreateObjCommand2(interp, "::itcl::code", Itcl_CodeCmd, NULL, NULL); - Tcl_CreateObjCommand(interp, "::itcl::scope", Itcl_ScopeCmd, + Tcl_CreateObjCommand2(interp, "::itcl::scope", Itcl_ScopeCmd, NULL, NULL); /* * Add the "filter" commands (add/delete) */ @@ -426,58 +426,58 @@ "exists", "name", Itcl_StubExistsCmd, NULL, NULL) != TCL_OK) { return TCL_ERROR; } - Tcl_CreateObjCommand(interp, "::itcl::type", Itcl_TypeClassCmd, + Tcl_CreateObjCommand2(interp, "::itcl::type", Itcl_TypeClassCmd, + infoPtr, Itcl_ReleaseData); + Itcl_PreserveData(infoPtr); + + Tcl_CreateObjCommand2(interp, "::itcl::widget", Itcl_WidgetCmd, + infoPtr, Itcl_ReleaseData); + Itcl_PreserveData(infoPtr); + + Tcl_CreateObjCommand2(interp, "::itcl::widgetadaptor", Itcl_WidgetAdaptorCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); - Tcl_CreateObjCommand(interp, "::itcl::widget", Itcl_WidgetCmd, + Tcl_CreateObjCommand2(interp, "::itcl::nwidget", Itcl_NWidgetCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); - Tcl_CreateObjCommand(interp, "::itcl::widgetadaptor", Itcl_WidgetAdaptorCmd, + Tcl_CreateObjCommand2(interp, "::itcl::addoption", Itcl_AddOptionCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); - Tcl_CreateObjCommand(interp, "::itcl::nwidget", Itcl_NWidgetCmd, - infoPtr, Itcl_ReleaseData); - Itcl_PreserveData(infoPtr); - - Tcl_CreateObjCommand(interp, "::itcl::addoption", Itcl_AddOptionCmd, - infoPtr, Itcl_ReleaseData); - Itcl_PreserveData(infoPtr); - - Tcl_CreateObjCommand(interp, "::itcl::addobjectoption", + Tcl_CreateObjCommand2(interp, "::itcl::addobjectoption", Itcl_AddObjectOptionCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); - Tcl_CreateObjCommand(interp, "::itcl::adddelegatedoption", + Tcl_CreateObjCommand2(interp, "::itcl::adddelegatedoption", Itcl_AddDelegatedOptionCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); - Tcl_CreateObjCommand(interp, "::itcl::adddelegatedmethod", + Tcl_CreateObjCommand2(interp, "::itcl::adddelegatedmethod", Itcl_AddDelegatedFunctionCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); - Tcl_CreateObjCommand(interp, "::itcl::addcomponent", Itcl_AddComponentCmd, + Tcl_CreateObjCommand2(interp, "::itcl::addcomponent", Itcl_AddComponentCmd, + infoPtr, Itcl_ReleaseData); + Itcl_PreserveData(infoPtr); + + Tcl_CreateObjCommand2(interp, "::itcl::setcomponent", Itcl_SetComponentCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); - Tcl_CreateObjCommand(interp, "::itcl::setcomponent", Itcl_SetComponentCmd, + Tcl_CreateObjCommand2(interp, "::itcl::extendedclass", Itcl_ExtendedClassCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); - Tcl_CreateObjCommand(interp, "::itcl::extendedclass", Itcl_ExtendedClassCmd, - infoPtr, Itcl_ReleaseData); - Itcl_PreserveData(infoPtr); - - Tcl_CreateObjCommand(interp, ITCL_COMMANDS_NAMESPACE "::genericclass", + Tcl_CreateObjCommand2(interp, ITCL_COMMANDS_NAMESPACE "::genericclass", ItclGenericClassCmd, infoPtr, Itcl_ReleaseData); Itcl_PreserveData(infoPtr); /* * Add the "delegate" (method/option) commands. @@ -541,11 +541,11 @@ */ static int ItclGenericClassCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *namePtr; Tcl_HashEntry *hPtr; ItclObjectInfo *infoPtr; @@ -615,11 +615,11 @@ */ int Itcl_ClassCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { return ItclClassBaseCmd(clientData, interp, ITCL_CLASS, objc, objv, NULL); } @@ -628,24 +628,24 @@ * ItclClassBaseCmd() * * ------------------------------------------------------------------------ */ -static Tcl_MethodCallProc ObjCallProc; -static Tcl_MethodCallProc ArgCallProc; +static Tcl_MethodCallProc2 ObjCallProc; +static Tcl_MethodCallProc2 ArgCallProc; static Tcl_CloneProc CloneProc; -static const Tcl_MethodType itclObjMethodType = { - TCL_OO_METHOD_VERSION_CURRENT, +static const Tcl_MethodType2 itclObjMethodType = { + TCL_OO_METHOD_VERSION_2, "itcl objv method", ObjCallProc, Itcl_ReleaseData, CloneProc }; -static const Tcl_MethodType itclArgMethodType = { - TCL_OO_METHOD_VERSION_CURRENT, +static const Tcl_MethodType2 itclArgMethodType = { + TCL_OO_METHOD_VERSION_2, "itcl argv method", ArgCallProc, Itcl_ReleaseData, CloneProc }; @@ -677,11 +677,11 @@ static int ObjCallProc( void *clientData, Tcl_Interp *interp, Tcl_ObjectContext context, - int objc, + ItclSizeT objc, Tcl_Obj *const *objv) { ItclMemberFunc *imPtr = (ItclMemberFunc *)clientData; if (TCL_ERROR == ItclCheckCallMethod(clientData, interp, context, @@ -702,11 +702,11 @@ static int ArgCallProc( TCL_UNUSED(void *), TCL_UNUSED(Tcl_Interp *), TCL_UNUSED(Tcl_ObjectContext), - TCL_UNUSED(int), + TCL_UNUSED(ItclSizeT), TCL_UNUSED(Tcl_Obj *const *)) { return TCL_ERROR; } @@ -714,11 +714,11 @@ ItclClassBaseCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ int flags, /* flags: ITCL_CLASS, ITCL_TYPE, * ITCL_WIDGET or ITCL_WIDGETADAPTOR */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[], /* argument objects */ ItclClass **iclsPtrPtr) /* for returning iclsPtr */ { Tcl_Obj *argumentPtr; Tcl_Obj *bodyPtr; @@ -877,24 +877,24 @@ bodyPtr = imPtr->codePtr->bodyPtr; if (imPtr->codePtr->flags & ITCL_IMPLEMENT_OBJCMD) { /* Implementation of this member is coded in C expecting Tcl_Obj */ - imPtr->tmPtr = Tcl_NewMethod(interp, iclsPtr->clsPtr, imPtr->namePtr, + imPtr->tmPtr = Tcl_NewMethod2(interp, iclsPtr->clsPtr, imPtr->namePtr, 1, &itclObjMethodType, imPtr); Itcl_PreserveData(imPtr); if (iclsPtr->flags & (ITCL_TYPE|ITCL_WIDGET|ITCL_WIDGETADAPTOR)) { - imPtr->tmPtr = Tcl_NewInstanceMethod(interp, iclsPtr->oPtr, + imPtr->tmPtr = Tcl_NewInstanceMethod2(interp, iclsPtr->oPtr, imPtr->namePtr, 1, &itclObjMethodType, imPtr); Itcl_PreserveData(imPtr); } } else if (imPtr->codePtr->flags & ITCL_IMPLEMENT_ARGCMD) { /* Implementation of this member is coded in C expecting (char *) */ - imPtr->tmPtr = Tcl_NewMethod(interp, iclsPtr->clsPtr, imPtr->namePtr, + imPtr->tmPtr = Tcl_NewMethod2(interp, iclsPtr->clsPtr, imPtr->namePtr, 1, &itclArgMethodType, imPtr); Itcl_PreserveData(imPtr); @@ -1084,16 +1084,16 @@ ItclProcErrorProc, imPtr, imPtr->namePtr, argumentPtr, bodyPtr, &pmPtr); } } if ((imPtr->flags & ITCL_COMMON) == 0) { - imPtr->accessCmd = Tcl_CreateObjCommand(interp, + imPtr->accessCmd = Tcl_CreateObjCommand2(interp, Tcl_GetString(imPtr->fullNamePtr), Itcl_ExecMethod, imPtr, Itcl_ReleaseData); Itcl_PreserveData(imPtr); } else { - imPtr->accessCmd = Tcl_CreateObjCommand(interp, + imPtr->accessCmd = Tcl_CreateObjCommand2(interp, Tcl_GetString(imPtr->fullNamePtr), Itcl_ExecProc, imPtr, Itcl_ReleaseData); Itcl_PreserveData(imPtr); } } @@ -1282,11 +1282,11 @@ */ int Itcl_ClassInheritCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; ItclClass *iclsPtr = (ItclClass*)Itcl_PeekStack(&infoPtr->clsStack); int result; @@ -1565,11 +1565,11 @@ */ int Itcl_ClassProtectionCmd( void *clientData, /* protection level (public/protected/private) */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ProtectionCmdInfo *pInfo = (ProtectionCmdInfo*)clientData; int result; int oldLevel; @@ -1642,11 +1642,11 @@ */ int Itcl_ClassConstructorCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; ItclClass *iclsPtr = (ItclClass*)Itcl_PeekStack(&infoPtr->clsStack); Tcl_Obj *namePtr; @@ -1708,11 +1708,11 @@ */ int Itcl_ClassDestructorCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; ItclClass *iclsPtr = (ItclClass*)Itcl_PeekStack(&infoPtr->clsStack); Tcl_Obj *namePtr; @@ -1762,11 +1762,11 @@ */ int Itcl_ClassMethodCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *namePtr; Tcl_HashEntry *hPtr; ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; @@ -1825,11 +1825,11 @@ */ int Itcl_ClassProcCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *namePtr; ItclObjectInfo *infoPtr; @@ -1896,11 +1896,11 @@ */ static int Itcl_ClassTypeMethodCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { FOREACH_HASH_DECLS; Tcl_Obj *namePtr; ItclObjectInfo *infoPtr; @@ -1972,11 +1972,11 @@ */ int Itcl_ClassVariableCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *namePtr; ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; ItclClass *iclsPtr = (ItclClass*)Itcl_PeekStack(&infoPtr->clsStack); @@ -2196,11 +2196,11 @@ */ static int ItclClassCommonCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[], /* argument objects */ int protection, ItclVariable **ivPtrPtr) { ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; @@ -2301,11 +2301,11 @@ */ static int Itcl_ClassTypeVariableCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclVariable *ivPtr; int result; @@ -2334,11 +2334,11 @@ */ int Itcl_ClassCommonCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclVariable *ivPtr; ItclShowArgs(2, "Itcl_ClassTypeVariableCmd", objc, objv); @@ -2349,13 +2349,13 @@ /* * ------------------------------------------------------------------------ * ItclFreeParserCommandData() * * This callback will free() up memory dynamically allocated - * and passed as the ClientData argument to Tcl_CreateObjCommand. + * and passed as the ClientData argument to Tcl_CreateObjCommand2. * This callback is required because one can not simply pass - * a pointer to the free() or ckfree() to Tcl_CreateObjCommand. + * a pointer to the free() or ckfree() to Tcl_CreateObjCommand2. * ------------------------------------------------------------------------ */ static void ItclFreeParserCommandData( void *cdata) /* client data to be destroyed */ @@ -2417,11 +2417,11 @@ */ static int Itcl_ClassFilterCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj **newObjv; ItclObjectInfo *infoPtr; ItclClass *iclsPtr; @@ -2471,11 +2471,11 @@ */ static int Itcl_ClassMixinCmd( TCL_UNUSED(void *), /* info for all known objects */ TCL_UNUSED(Tcl_Interp *),/* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const *objv) /* argument objects */ { ItclShowArgs(0, "Itcl_ClassMixinCmd", objc, objv); return TCL_OK; } @@ -2492,11 +2492,11 @@ */ static int Itcl_WidgetCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclObjectInfo *infoPtr; int result; @@ -2524,11 +2524,11 @@ */ static int Itcl_WidgetAdaptorCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclObjectInfo *infoPtr; int result; @@ -2558,11 +2558,11 @@ */ int ItclParseOption( TCL_UNUSED(ItclObjectInfo *), /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - size_t objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[], /* argument objects */ ItclClass *iclsPtr, ItclObject *ioPtr, ItclOption **ioptPtrPtr) /* where the otpion info is found */ { @@ -2890,11 +2890,11 @@ */ int Itcl_ClassOptionCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclOption *ioptPtr; const char *tkPackage; const char *tkVersion; @@ -3011,11 +3011,11 @@ */ static int ItclHandleClassComponent( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[], /* argument objects */ ItclComponent **icPtrPtr) { Tcl_Obj **newObjv; ItclObjectInfo *infoPtr; @@ -3187,11 +3187,11 @@ */ static int Itcl_ClassComponentCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclComponent *icPtr; return ItclHandleClassComponent(clientData, interp, objc, objv, &icPtr); @@ -3211,11 +3211,11 @@ */ static int Itcl_ClassTypeComponentCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclComponent *icPtr; int result; @@ -3305,11 +3305,11 @@ ItclObject *ioPtr, /* != NULL for ::itcl::adddelegatedmethod otherwise NULL */ ItclClass *iclsPtr, /* != NULL for delegate method otherwise NULL */ ItclDelegatedFunction **idmPtrPtr, /* where to return idoPtr */ - size_t objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *methodNamePtr; Tcl_Obj *componentPtr; Tcl_Obj *targetPtr; @@ -3322,11 +3322,11 @@ const char *usageStr; const char *methodName; const char *component; const char *token; int result; - size_t i; + ItclSizeT i; int foundOpt; ItclShowArgs(1, "Itcl_HandleDelegateMethodCmd", objc, objv); usageStr = "delegate method to ?as ?\n\ delegate method ?to ? using \n\ @@ -3480,11 +3480,11 @@ */ static int Itcl_ClassDelegateMethodCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; ItclObjectInfo *infoPtr; ItclClass *iclsPtr; @@ -3538,11 +3538,11 @@ ItclObject *ioPtr, /* != NULL for ::itcl::adddelgatedoption otherwise NULL */ ItclClass *iclsPtr, /* != NULL for delegate option otherwise NULL */ ItclDelegatedOption **idoPtrPtr, /* where to return idoPtr */ - size_t objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *allOptionNamePtr; Tcl_Obj *optionNamePtr; @@ -3837,11 +3837,11 @@ */ static int Itcl_ClassDelegateOptionCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_HashEntry *hPtr; ItclObjectInfo *infoPtr; ItclClass *iclsPtr; @@ -3895,11 +3895,11 @@ */ static int Itcl_ClassDelegateTypeMethodCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *typeMethodNamePtr; Tcl_Obj *componentPtr; Tcl_Obj *targetPtr; @@ -4080,11 +4080,11 @@ static int Itcl_ClassForwardCmd( void *clientData, /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *prefixObj; Tcl_Method mPtr; ItclObjectInfo *infoPtr; @@ -4130,11 +4130,11 @@ static int Itcl_ClassMethodVariableCmd( void *clientData, /* unused */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Obj *namePtr; Tcl_Obj *defaultPtr; Tcl_Obj *callbackPtr; @@ -4250,11 +4250,11 @@ */ static int Itcl_ClassTypeConstructorCmd( void *clientData, /* info for all known objects */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { ItclObjectInfo *infoPtr = (ItclObjectInfo*)clientData; ItclClass *iclsPtr = (ItclClass*)Itcl_PeekStack(&infoPtr->clsStack); Tcl_Obj *namePtr; Index: generic/itclStubInit.c ================================================================== --- generic/itclStubInit.c +++ generic/itclStubInit.c @@ -4,10 +4,15 @@ */ #include "itclInt.h" #undef Itcl_GetStackValue + +#if TCL_MAJOR_VERSION < 9 +# define Itcl_RegisterObjC 0 +# define Itcl_FindC 0 +#endif MODULE_SCOPE const ItclStubs itclStubs; /* !BEGIN!: Do not edit below this line. */ static const ItclIntStubs itclIntStubs = { @@ -238,8 +243,10 @@ Itcl_RestoreInterpState, /* 24 */ Itcl_DiscardInterpState, /* 25 */ Itcl_Alloc, /* 26 */ Itcl_Free, /* 27 */ ItclGetStackValue, /* 28 */ + Itcl_RegisterObjC2, /* 29 */ + Itcl_FindC2, /* 30 */ }; /* !END!: Do not edit above this line. */ Index: generic/itclStubs.c ================================================================== --- generic/itclStubs.c +++ generic/itclStubs.c @@ -12,11 +12,11 @@ #include "itclInt.h" static void ItclDeleteStub(void *cdata); static int ItclHandleStubCmd(void *clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]); + ItclSizeT objc, Tcl_Obj *const objv[]); /* * ------------------------------------------------------------------------ * Itcl_IsStub() @@ -62,11 +62,11 @@ */ int Itcl_StubCreateCmd( TCL_UNUSED(void *), /* not used */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Command cmdPtr; char *cmdName; Tcl_CmdInfo cmdInfo; @@ -82,15 +82,20 @@ * Create a stub command with the characteristic ItclDeleteStub * procedure. That way, we can recognize this command later * on as a stub. Save the cmd token as client data, so we can * get the full name of this command later on. */ - cmdPtr = Tcl_CreateObjCommand(interp, cmdName, + cmdPtr = Tcl_CreateObjCommand2(interp, cmdName, ItclHandleStubCmd, NULL, (Tcl_CmdDeleteProc*)ItclDeleteStub); Tcl_GetCommandInfoFromToken(cmdPtr, &cmdInfo); +#if TCL_MAJOR_VERSION > 8 + if (cmdInfo.isNativeObjectProc == 2) { + cmdInfo.objClientData2 = cmdPtr; + } else +#endif cmdInfo.objClientData = cmdPtr; Tcl_SetCommandInfoFromToken(cmdPtr, &cmdInfo); return TCL_OK; } @@ -112,11 +117,11 @@ */ int Itcl_StubExistsCmd( TCL_UNUSED(void *), /* not used */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Command cmdPtr; char *cmdName; @@ -151,11 +156,11 @@ */ static int ItclHandleStubCmd( void *clientData, /* command token for this stub */ Tcl_Interp *interp, /* current interpreter */ - int objc, /* number of arguments */ + ItclSizeT objc, /* number of arguments */ Tcl_Obj *const objv[]) /* argument objects */ { Tcl_Command cmdPtr; Tcl_Obj **cmdlinev; Tcl_Obj *objAutoLoad[2]; Index: generic/itclTclIntStubsFcn.c ================================================================== --- generic/itclTclIntStubsFcn.c +++ generic/itclTclIntStubsFcn.c @@ -36,15 +36,15 @@ bodyPtr, (Proc **)procPtrPtr); (*(Proc **)procPtrPtr)->cmdPtr = NULL; return code; } -Tcl_ObjCmdProc * +Tcl_ObjCmdProc2 * _Tcl_GetObjInterpProc( void) { - return (Tcl_ObjCmdProc *)TclGetObjInterpProc(); + return TclGetObjInterpProc(); } void _Tcl_ProcDeleteProc( void *clientData) Index: generic/itclTclIntStubsFcn.h ================================================================== --- generic/itclTclIntStubsFcn.h +++ generic/itclTclIntStubsFcn.h @@ -23,11 +23,11 @@ MODULE_SCOPE Tcl_Command _Tcl_GetOriginalCommand(Tcl_Command command); MODULE_SCOPE int _Tcl_CreateProc(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *procName, Tcl_Obj *argsPtr, Tcl_Obj *bodyPtr, Tcl_Proc *procPtrPtr); MODULE_SCOPE void _Tcl_ProcDeleteProc(void *clientData); -MODULE_SCOPE Tcl_ObjCmdProc *_Tcl_GetObjInterpProc(void); +MODULE_SCOPE Tcl_ObjCmdProc2 *_Tcl_GetObjInterpProc(void); MODULE_SCOPE int Tcl_RenameCommand(Tcl_Interp *interp, const char *oldName, const char *newName); MODULE_SCOPE Tcl_HashTable *Itcl_GetNamespaceChildTable(Tcl_Namespace *nsPtr); MODULE_SCOPE Tcl_HashTable *Itcl_GetNamespaceCommandTable(Tcl_Namespace *nsPtr); MODULE_SCOPE int Itcl_InitRewriteEnsemble(Tcl_Interp *interp, size_t numRemoved,