public static List <VTableComponent> GatherVTableMethodEntries(VTableLayout layout) { var entries = new List <VTableComponent>(); foreach (var component in layout.Components) { if (component.Kind == VTableComponentKind.CompleteDtorPointer) { continue; } if (component.Kind == VTableComponentKind.RTTI) { continue; } if (component.Kind == VTableComponentKind.UnusedFunctionPointer) { continue; } if (component.Method != null) { entries.Add(component); } } return(entries); }
AST.VTableLayout VisitVTableLayout(VTableLayout layout) { var _layout = new AST.VTableLayout(); for (uint i = 0; i < layout.ComponentsCount; ++i) { var component = layout.getComponents(i); var _component = VisitVTableComponent(component); _layout.Components.Add(_component); } return(_layout); }
private static List<VTableComponent> GatherVTableMethodEntries(VTableLayout layout) { var entries = new List<VTableComponent>(); if (layout == null) return entries; entries.AddRange(from component in layout.Components where component.Kind != VTableComponentKind.CompleteDtorPointer && component.Kind != VTableComponentKind.RTTI && component.Kind != VTableComponentKind.UnusedFunctionPointer && component.Method != null select component); return entries; }
private static List <VTableComponent> GatherVTableMethodEntries(VTableLayout layout) { var entries = new List <VTableComponent>(); if (layout == null) { return(entries); } entries.AddRange(from component in layout.Components where component.Kind != VTableComponentKind.CompleteDtorPointer && component.Kind != VTableComponentKind.RTTI && component.Kind != VTableComponentKind.UnusedFunctionPointer && component.Method != null select component); return(entries); }
public ClassLayout(ClassLayout classLayout) : this() { ABI = classLayout.ABI; HasOwnVFPtr = classLayout.HasOwnVFPtr; VBPtrOffset = classLayout.VBPtrOffset; PrimaryBase = classLayout.PrimaryBase; HasVirtualBases = classLayout.HasVirtualBases; Alignment = classLayout.Alignment; Size = classLayout.Size; DataSize = classLayout.DataSize; VFTables.AddRange(classLayout.VFTables); if (classLayout.Layout != null) { Layout = new VTableLayout(); Layout.Components.AddRange(classLayout.Layout.Components); } }
public static int GetVTableComponentIndex(VTableLayout layout, VTableComponent entry) { return(layout.Components.IndexOf(entry)); }
public static int GetVTableComponentIndex(VTableLayout layout, VTableComponent entry) { return layout.Components.IndexOf(entry); }