X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=glib%2Fglib.py;h=f7fe22be8e9933d73e58f8f86a8508c7b07bfe49;hb=49b59e5ac4428a6a99a85d699c3662f96efc4e9d;hp=135f4bc3338abdf5c3a92be4df27f16ba09c0fd2;hpb=63adeda0861a26b38ec0adc76255666554c18951;p=platform%2Fupstream%2Fglib.git diff --git a/glib/glib.py b/glib/glib.py index 135f4bc..f7fe22b 100644 --- a/glib/glib.py +++ b/glib/glib.py @@ -1,4 +1,8 @@ import gdb +import sys + +if sys.version_info[0] >= 3: + long = int # This is not quite right, as local vars may override symname def read_global_var (symname): @@ -10,8 +14,15 @@ def g_quark_to_string (quark): quark = long(quark) if quark == 0: return None - val = read_global_var ("g_quarks") - max_q = long(read_global_var ("g_quark_seq_id")) + try: + val = read_global_var ("quarks") + max_q = long(read_global_var ("quark_seq_id")) + except: + try: + val = read_global_var ("g_quarks") + max_q = long(read_global_var ("g_quark_seq_id")) + except: + return None; if quark < max_q: return val[quark].string() return None @@ -76,7 +87,9 @@ class GHashPrinter: def __init__(self, ht, keys_are_strings): self.ht = ht if ht != 0: - self.array = ht["nodes"] + self.keys = ht["keys"] + self.values = ht["values"] + self.hashes = ht["hashes"] self.size = ht["size"] self.pos = 0 self.keys_are_strings = keys_are_strings @@ -93,11 +106,10 @@ class GHashPrinter: self.value = None return v while long(self.pos) < long(self.size): - node = self.array[self.pos] self.pos = self.pos + 1 - if long (node["key_hash"]) >= 2: - key = node["key"] - val = node["value"] + if long (self.hashes[self.pos]) >= 2: + key = self.keys[self.pos] + val = self.values[self.pos] if self.keys_are_strings: key = key.cast (gdb.lookup_type("char").pointer()) @@ -129,10 +141,6 @@ class GHashPrinter: return "map" def pretty_printer_lookup (val): - if is_g_type_instance (val): - return GTypePrettyPrinter (val) - -def pretty_printer_lookup (val): # None yet, want things like hash table and list type = val.type.unqualified()