diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2003-03-21 12:04:19 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2003-03-21 12:04:19 (GMT) |
commit | 7e0bc112b8bc1174449f5573c03e51e00805218b (patch) | |
tree | 5b7bfcbe29cb015a763cdf6b4ea682fe8031d78e | |
parent | 82ad32ec394ef9e20a5073e0dad13436972b10fa (diff) | |
download | cpython-7e0bc112b8bc1174449f5573c03e51e00805218b.zip cpython-7e0bc112b8bc1174449f5573c03e51e00805218b.tar.gz cpython-7e0bc112b8bc1174449f5573c03e51e00805218b.tar.bz2 |
Patch 702620 by Donovan Preston: Fix AE inheritance.
-rw-r--r-- | Lib/plat-mac/aetypes.py | 6 | ||||
-rw-r--r-- | Mac/scripts/gensuitemodule.py | 13 |
2 files changed, 10 insertions, 9 deletions
diff --git a/Lib/plat-mac/aetypes.py b/Lib/plat-mac/aetypes.py index b091a28..e62e866 100644 --- a/Lib/plat-mac/aetypes.py +++ b/Lib/plat-mac/aetypes.py @@ -502,11 +502,11 @@ class ComponentItem(SelectableItem): # Derived classes *must* set the *class attribute* 'want' to some constant # Also, dictionaries _propdict and _elemdict must be set to map property # and element names to the correct classes - + + _propdict = {} + _elemdict = {} def __init__(self, which, fr = None): SelectableItem.__init__(self, self.want, which, fr) - self._propdict = {} - self._elemdict = {} def __repr__(self): if not self.fr: diff --git a/Mac/scripts/gensuitemodule.py b/Mac/scripts/gensuitemodule.py index 1cd2ef6..cd725d4 100644 --- a/Mac/scripts/gensuitemodule.py +++ b/Mac/scripts/gensuitemodule.py @@ -321,14 +321,15 @@ def compileaete(aete, resinfo, fname): fp.write("from %s import *\n"%modname) # Generate property dicts and element dicts for all types declared in this module - fp.write("def getbaseclasses(v):\n") - fp.write("\tif hasattr(v, '_superclassnames') and not hasattr(v, '_propdict'):\n") + fp.write("\ndef getbaseclasses(v):\n") + fp.write("\tif not v._propdict:\n") fp.write("\t\tv._propdict = {}\n") fp.write("\t\tv._elemdict = {}\n") - fp.write("\t\tfor superclass in v._superclassnames:\n") -## fp.write("\t\t\tgetbaseclasses(superclass)\n") - fp.write("\t\t\tv._propdict.update(getattr(eval(superclass), '_privpropdict', {}))\n") - fp.write("\t\t\tv._elemdict.update(getattr(eval(superclass), '_privelemdict', {}))\n") + fp.write("\t\tfor superclassname in getattr(v, '_superclassnames', []):\n") + fp.write("\t\t\tsuperclass = eval(superclassname)\n") + fp.write("\t\t\tgetbaseclasses(superclass)\n") + fp.write("\t\t\tv._propdict.update(getattr(superclass, '_propdict', {}))\n") + fp.write("\t\t\tv._elemdict.update(getattr(superclass, '_elemdict', {}))\n") fp.write("\t\tv._propdict.update(v._privpropdict)\n") fp.write("\t\tv._elemdict.update(v._privelemdict)\n") fp.write("\n") |