@@ -110,7 +110,7 @@ class SILModule {
110110public:
111111 using FunctionListType = llvm::ilist<SILFunction>;
112112 using GlobalListType = llvm::ilist<SILGlobalVariable>;
113- using VTableListType = llvm::ilist <SILVTable>;
113+ using VTableListType = llvm::ArrayRef <SILVTable* >;
114114 using PropertyListType = llvm::ilist<SILProperty>;
115115 using WitnessTableListType = llvm::ilist<SILWitnessTable>;
116116 using DefaultWitnessTableListType = llvm::ilist<SILDefaultWitnessTable>;
@@ -178,7 +178,7 @@ class SILModule {
178178 llvm::DenseMap<const ClassDecl *, SILVTable *> VTableMap;
179179
180180 // / The list of SILVTables in the module.
181- VTableListType vtables;
181+ std::vector<SILVTable*> vtables;
182182
183183 // / This is a cache of vtable entries for quick look-up
184184 llvm::DenseMap<std::pair<const SILVTable *, SILDeclRef>, SILVTable::Entry>
@@ -404,20 +404,15 @@ class SILModule {
404404 const_iterator zombies_begin () const { return zombieFunctions.begin (); }
405405 const_iterator zombies_end () const { return zombieFunctions.end (); }
406406
407+ llvm::ArrayRef<SILVTable*> getVTables () const {
408+ return llvm::ArrayRef<SILVTable*>(vtables);
409+ }
407410 using vtable_iterator = VTableListType::iterator;
408411 using vtable_const_iterator = VTableListType::const_iterator;
409- VTableListType &getVTableList () { return vtables; }
410- const VTableListType &getVTableList () const { return vtables; }
411- vtable_iterator vtable_begin () { return vtables.begin (); }
412- vtable_iterator vtable_end () { return vtables.end (); }
413- vtable_const_iterator vtable_begin () const { return vtables.begin (); }
414- vtable_const_iterator vtable_end () const { return vtables.end (); }
415- iterator_range<vtable_iterator> getVTables () {
416- return {vtables.begin (), vtables.end ()};
417- }
418- iterator_range<vtable_const_iterator> getVTables () const {
419- return {vtables.begin (), vtables.end ()};
420- }
412+ vtable_iterator vtable_begin () { return getVTables ().begin (); }
413+ vtable_iterator vtable_end () { return getVTables ().end (); }
414+ vtable_const_iterator vtable_begin () const { return getVTables ().begin (); }
415+ vtable_const_iterator vtable_end () const { return getVTables ().end (); }
421416
422417 using witness_table_iterator = WitnessTableListType::iterator;
423418 using witness_table_const_iterator = WitnessTableListType::const_iterator;
0 commit comments