[kdbus] KDBUS_ITEM_PAYLOAD_OFF items are (once again) relative to msg header
[platform/upstream/glib.git] / glib / glib.py
index 135f4bc..f7fe22b 100644 (file)
@@ -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()