]> git.eshelyaron.com Git - emacs.git/commitdiff
LLDB support: handle unsorted enum member lists
authorGerd Möllmann <gerd@gnu.org>
Mon, 22 Aug 2022 09:18:30 +0000 (11:18 +0200)
committerGerd Möllmann <gerd@gnu.org>
Mon, 22 Aug 2022 09:18:30 +0000 (11:18 +0200)
* etc/emacs_lldb.py (enumerator_name): Handle the case that enum
member list is not sorted by value.

etc/emacs_lldb.py

index 880a8353417e983889e105151b062eb8d238b7e2..a2329e6ea4f772b83bf5d8edf5a8897115e5d507 100644 (file)
@@ -33,7 +33,10 @@ import lldb
 # Return the name of enumerator ENUM as a string.
 def enumerator_name(enum):
     enumerators = enum.GetType().GetEnumMembers()
-    return enumerators[enum.GetValueAsUnsigned()].GetName()
+    for enum_member in enumerators:
+        if enum.GetValueAsUnsigned() == enum_member.GetValueAsUnsigned():
+            return enum_member.GetName()
+    return None
 
 # A class wrapping an SBValue for a Lisp_Object, providing convenience
 # functions.
@@ -91,7 +94,6 @@ class Lisp_Object:
             self.unsigned = lisp_word.GetValueAsUnsigned()
         else:
             self.unsigned = self.lisp_obj.GetValueAsUnsigned()
-        pass
 
     # Initialize self.lisp_type to the C Lisp_Type enumerator of the
     # Lisp_Object, as a string.  Initialize self.pvec_type likewise to