From a680a9fc6475c079d45283580329cff39ef5ba9c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gerd=20M=C3=B6llmann?= Date: Mon, 22 Aug 2022 11:18:30 +0200 Subject: [PATCH] LLDB support: handle unsorted enum member lists * etc/emacs_lldb.py (enumerator_name): Handle the case that enum member list is not sorted by value. --- etc/emacs_lldb.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/etc/emacs_lldb.py b/etc/emacs_lldb.py index 880a8353417..a2329e6ea4f 100644 --- a/etc/emacs_lldb.py +++ b/etc/emacs_lldb.py @@ -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 -- 2.39.5