Index: generic/xotcl.c =================================================================== diff -u -r75bdefce85cff349831dbca1900153fca956574c -rf1cd1537386ab1fdfabccaadae215990e376ae9d --- generic/xotcl.c (.../xotcl.c) (revision 75bdefce85cff349831dbca1900153fca956574c) +++ generic/xotcl.c (.../xotcl.c) (revision f1cd1537386ab1fdfabccaadae215990e376ae9d) @@ -201,8 +201,9 @@ static void GuardDel(XOTclCmdList *filterCL); static int IsMetaClass(Tcl_Interp *interp, XOTclClass *cl, int withMixins); +static int IsSubType(XOTclClass *subcl, XOTclClass *cl); static int HasMixin(Tcl_Interp *interp, XOTclObject *object, XOTclClass *cl); -static int isSubType(XOTclClass *subcl, XOTclClass *cl); + static XOTclClass *DefaultSuperClass(Tcl_Interp *interp, XOTclClass *cl, XOTclClass *mcl, int isMeta); XOTCLINLINE static void CscInit(XOTclCallStackContent *cscPtr, XOTclObject *object, XOTclClass *cl, @@ -6462,7 +6463,7 @@ return TCL_OK; if ((GetClassFromObj(interp, pPtr->converterArg, &cl, NULL) == TCL_OK) - && isSubType(object->cl, cl)) { + && IsSubType(object->cl, cl)) { return TCL_OK; } @@ -8609,7 +8610,7 @@ } static int -isSubType(XOTclClass *subcl, XOTclClass *cl) { +IsSubType(XOTclClass *subcl, XOTclClass *cl) { XOTclClasses *t; int success = 1; assert(cl && subcl); @@ -11548,7 +11549,7 @@ if (arg== NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, "type "); success = (GetObjectFromObj(interp, valueObj, &object) == TCL_OK) && (GetClassFromObj(interp, arg, &typeClass, NULL) == TCL_OK) - && isSubType(object->cl, typeClass); + && IsSubType(object->cl, typeClass); Tcl_SetIntObj(Tcl_GetObjResult(interp), success); @@ -11563,7 +11564,7 @@ } if (success && withType) { success = (GetClassFromObj(interp, withType, &typeClass, NULL) == TCL_OK) - && isSubType(object->cl, typeClass); + && IsSubType(object->cl, typeClass); } Tcl_SetIntObj(Tcl_GetObjResult(interp), success); @@ -12085,48 +12086,32 @@ /* xotclCmd objectproperty XOTclObjectpropertyCmd { {-argName "object" -required 1 -type tclobj} - {-argName "objectkind" -type "type|object|class|baseclass|metaclass"} - {-argName "value" -required 0 -type tclobj} + {-argName "objectkind" -type "object|class|baseclass|metaclass"} } */ -static int XOTclObjectpropertyCmd(Tcl_Interp *interp, Tcl_Obj *obj, int objectkind, Tcl_Obj *valueObj) { +static int XOTclObjectpropertyCmd(Tcl_Interp *interp, Tcl_Obj *obj, int objectkind) { int success = TCL_ERROR; XOTclObject *object; XOTclClass *cl; /* fprintf(stderr, "XOTclObjectpropertyCmd\n");*/ switch (objectkind) { - case ObjectkindTypeIdx: - if (valueObj == NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " type "); - if (GetObjectFromObj(interp, obj, &object) != TCL_OK) { - return XOTclObjErrType(interp, obj, "object", "object"); - } - if (GetClassFromObj(interp, valueObj, &cl, NULL) != TCL_OK) { - return XOTclObjErrType(interp, valueObj, "class", "type"); - } - success = isSubType(object->cl, cl); - break; - case ObjectkindObjectIdx: - if (valueObj != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " object"); success = (GetObjectFromObj(interp, obj, &object) == TCL_OK); break; case ObjectkindClassIdx: - if (valueObj != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " class"); success = (GetObjectFromObj(interp, obj, &object) == TCL_OK) && XOTclObjectIsClass(object); break; case ObjectkindMetaclassIdx: - if (valueObj != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " metaclass"); success = (GetObjectFromObj(interp, obj, &object) == TCL_OK) && XOTclObjectIsClass(object) && IsMetaClass(interp, (XOTclClass*)object, 1); break; case ObjectkindBaseclassIdx: - if (valueObj != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " baseclass"); success = (GetObjectFromObj(interp, obj, &object) == TCL_OK) && XOTclObjectIsClass(object) && IsBaseClass((XOTclClass*)object); @@ -14109,7 +14094,7 @@ */ static int XOTclObjInfoHasTypeMethod(Tcl_Interp *interp, XOTclObject *object, XOTclClass *typeClass) { - Tcl_SetBooleanObj(Tcl_GetObjResult(interp), isSubType(object->cl, typeClass)); + Tcl_SetBooleanObj(Tcl_GetObjResult(interp), IsSubType(object->cl, typeClass)); return TCL_OK; } @@ -14221,7 +14206,7 @@ slotObjects = computeSlotObjects(interp, object, pattern /* not used */, 1); for (pl=slotObjects; pl; pl = pl->nextPtr) { - /*if (slotClass && !isSubType(pl->obj->cl, slotClass)) continue;*/ + /*if (slotClass && !IsSubType(pl->obj->cl, slotClass)) continue;*/ Tcl_ListObjAppendElement(interp, list, pl->obj->cmdName); }