summaryrefslogtreecommitdiff
path: root/src/libs/xpcom18a4/python/server/loader.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/xpcom18a4/python/server/loader.py')
-rw-r--r--src/libs/xpcom18a4/python/server/loader.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/libs/xpcom18a4/python/server/loader.py b/src/libs/xpcom18a4/python/server/loader.py
index b58755461..e59155a51 100644
--- a/src/libs/xpcom18a4/python/server/loader.py
+++ b/src/libs/xpcom18a4/python/server/loader.py
@@ -57,11 +57,15 @@ def FindCOMComponents(py_module):
# For now, just run over all classes looking for likely candidates.
comps = []
for name, object in py_module.__dict__.items():
- if type(object)==types.ClassType and \
- _has_good_attr(object, "_com_interfaces_") and \
- _has_good_attr(object, "_reg_clsid_") and \
- _has_good_attr(object, "_reg_contractid_"):
- comps.append(object)
+ try:
+ if (type(object) == types.ClassType or issubclass(object, object)) and \
+ _has_good_attr(object, "_com_interfaces_") and \
+ _has_good_attr(object, "_reg_clsid_") and \
+ _has_good_attr(object, "_reg_contractid_"):
+ comps.append(object)
+ except TypeError:
+ # The issubclass call raises TypeError when the obj is not a class.
+ pass;
return comps
def register_self(klass, compMgr, location, registryLocation, componentType):