@@ -108,6 +108,8 @@ def get_buffer_endcap(parent, buffer, begin, has_compressed_pair_layout, is_size
108108 map_endcap = buffer .GetChildMemberWithName ("__cap_" )
109109 if not map_endcap .IsValid ():
110110 map_endcap = buffer .GetChildMemberWithName ("__end_cap_" )
111+ if not map_endcap .IsValid ():
112+ map_endcap = buffer .GetChildMemberWithName ("__back_cap_" )
111113 map_endcap = map_endcap .GetValueAsUnsigned (0 )
112114
113115 if is_size_based :
@@ -804,30 +806,34 @@ def update(self):
804806 first = map_ .GetChildMemberWithName ("__first_" )
805807 map_first = first .GetValueAsUnsigned (0 )
806808 self .map_begin = map_ .GetChildMemberWithName ("__begin_" )
809+ # LLVM 22 renames __map_.__begin_ to __map_.__front_cap_
810+ if not self .map_begin :
811+ self .map_begin = map_ .GetChildMemberWithName ("__front_cap_" )
807812 map_begin = self .map_begin .GetValueAsUnsigned (0 )
808813 map_end = get_buffer_end (map_ , map_begin )
809814 map_endcap = get_buffer_endcap (
810815 self , map_ , map_begin , has_compressed_pair_layout , is_size_based
811816 )
812817
813818 # check consistency
819+ print ("aaaaaaaaaaaaaaaaaah" )
814820 if not map_first <= map_begin <= map_end <= map_endcap :
815- logger . write ("map pointers are not monotonic" )
821+ print ("map pointers are not monotonic" )
816822 return
817823 total_rows , junk = divmod (map_endcap - map_first , self .pointer_size )
818824 if junk :
819- logger . write ("endcap-first doesnt align correctly" )
825+ print ("endcap-first doesnt align correctly" )
820826 return
821827 active_rows , junk = divmod (map_end - map_begin , self .pointer_size )
822828 if junk :
823- logger . write ("end-begin doesnt align correctly" )
829+ print ("end-begin doesnt align correctly" )
824830 return
825831 start_row , junk = divmod (map_begin - map_first , self .pointer_size )
826832 if junk :
827- logger . write ("begin-first doesnt align correctly" )
833+ print ("begin-first doesnt align correctly" )
828834 return
829835
830- logger . write (
836+ print (
831837 "update success: count=%r, start=%r, first=%r" % (count , start , first )
832838 )
833839 # if consistent, save all we really need:
0 commit comments