diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-07-01 17:55:33 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-07-07 23:58:33 +0200 |
commit | 5ac88aa79fa6445f96e5419d8bf4fce81da63b90 (patch) | |
tree | ae702a8569fda96e8bfe27c6b2655d90bcef7ce4 /python_modules/ptypes.py | |
parent | 26c1a0767f3fdcd0211b6b4c91a63ac9bc7abc6f (diff) | |
download | spice-5ac88aa79fa6445f96e5419d8bf4fce81da63b90.tar.gz spice-5ac88aa79fa6445f96e5419d8bf4fce81da63b90.tar.xz spice-5ac88aa79fa6445f96e5419d8bf4fce81da63b90.zip |
Properly parse QXLImage to the new-world SpiceImage
SpiceImage now replaces RedImage and has all image types in it.
All image data are now chunked (and as such not copied when demarshalling).
Diffstat (limited to 'python_modules/ptypes.py')
-rw-r--r-- | python_modules/ptypes.py | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/python_modules/ptypes.py b/python_modules/ptypes.py index 68cf3dfe..715544fb 100644 --- a/python_modules/ptypes.py +++ b/python_modules/ptypes.py @@ -811,14 +811,31 @@ class ContainerType(Type): return str(fixed) def lookup_member(self, name): + dot = name.find('.') + rest = None + if dot >= 0: + rest = name[dot+1:] + name = name[:dot] + + member = None if self.members_by_name.has_key(name): - return self.members_by_name[name] - for m in self.members: - if m.is_switch(): - member = m.lookup_case_member(name) - if member: - return member - raise Exception, "No member called %s found" % name + member = self.members_by_name[name] + else: + for m in self.members: + if m.is_switch(): + member = m.lookup_case_member(name) + if member != None: + break + if member != None: + break + + if member == None: + raise Exception, "No member called %s found" % name + + if rest != None: + return member.member_type.lookup_member(rest) + + return member class StructType(ContainerType): def __init__(self, name, members, attribute_list): |