Changeset 50710 in vbox
- Timestamp:
- Mar 6, 2014 1:08:28 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 92674
- Location:
- trunk/src/libs/xpcom18a4/python
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/xpcom18a4/python/server/loader.py
r11746 r50710 58 58 comps = [] 59 59 for name, object in py_module.__dict__.items(): 60 if type(object)==types.ClassType and \ 61 _has_good_attr(object, "_com_interfaces_") and \ 62 _has_good_attr(object, "_reg_clsid_") and \ 63 _has_good_attr(object, "_reg_contractid_"): 64 comps.append(object) 60 try: 61 if (type(object) == types.ClassType or issubclass(object, object)) and \ 62 _has_good_attr(object, "_com_interfaces_") and \ 63 _has_good_attr(object, "_reg_clsid_") and \ 64 _has_good_attr(object, "_reg_contractid_"): 65 comps.append(object) 66 except TypeError: 67 # The issubclass call raises TypeError when the obj is not a class. 68 pass; 65 69 return comps 66 70 -
trunk/src/libs/xpcom18a4/python/src/PyGBase.cpp
r21178 r50710 196 196 { 197 197 NS_PRECONDITION(ppret!=NULL, "null pointer when wrapping a Python instance!"); 198 NS_PRECONDITION(ob && PyInstance_Check(ob), "AutoWrapPythonInstance is expecting an non-NULL instance!"); 198 NS_PRECONDITION(ob && PyObject_HasAttrString(ob, "__class__"), 199 "AutoWrapPythonInstance is expecting an non-NULL instance!"); 199 200 PRBool ok = PR_FALSE; 200 201 // XXX - todo - this static object leaks! (but Python on Windows leaks 2000+ objects as it is ;-) -
trunk/src/libs/xpcom18a4/python/src/PyIID.cpp
r39535 r50710 115 115 } else if (ob->ob_type == &type) { 116 116 iid = ((Py_nsIID *)ob)->m_iid; 117 } else if (Py Instance_Check(ob)) {117 } else if (PyObject_HasAttrString(ob, "__class__")) { 118 118 // Get the _iidobj_ attribute 119 119 PyObject *use_ob = PyObject_GetAttrString(ob, "_iidobj_"); -
trunk/src/libs/xpcom18a4/python/src/PyISupports.cpp
r50362 r50710 322 322 if (iid.Equals(NS_GET_IID(nsIVariant)) || iid.Equals(NS_GET_IID(nsIWritableVariant))) { 323 323 // Check it is not already nsIVariant 324 if (Py Instance_Check(ob)) {324 if (PyObject_HasAttrString(ob, "__class__")) { 325 325 PyObject *sub_ob = PyObject_GetAttrString(ob, "_comobj_"); 326 326 if (sub_ob==NULL) { … … 345 345 // end of variant support. 346 346 347 if (Py Instance_Check(ob)) {347 if (PyObject_HasAttrString(ob, "__class__")) { 348 348 // Get the _comobj_ attribute 349 349 PyObject *use_ob = PyObject_GetAttrString(ob, "_comobj_");
Note:
See TracChangeset
for help on using the changeset viewer.