Improved handling of virtual inheritance. (#7)

* new system for handling vtables

* commented out non-matching JKRDisposer::~JKDisposer()

* removed artificial vtables and matched simple virtual-call functions

* better text on nonmatching functions

* reverted asmdiff.sh

* attempt 2

* Spelling

* banner and .gitignore for vtable artifacts

* move virtual function to the correct class

* remove unnecessary casts
This commit is contained in:
Jonathan Wase
2020-12-01 15:18:01 -05:00
committed by GitHub
parent 937da3c59b
commit ac6b191dc1
16 changed files with 910 additions and 221 deletions
+16 -5
View File
@@ -6,11 +6,11 @@
class JSUPtrList;
class JSUPtrLink {
public:
JSUPtrLink(void*);
JSUPtrLink(void* owner);
~JSUPtrLink();
public:
void* unk0;
void* owner;
JSUPtrList* list;
JSUPtrLink* prev;
JSUPtrLink* next;
@@ -35,13 +35,24 @@ class JSUPtrList {
u32 length;
};
template <typename T>
class JSUList : JSUPtrList {
public:
JSUList() : JSUPtrList(true) {}
~JSUList() {};
JSUList() : JSUPtrList(true) {
}
~JSUList(){};
void append(T* value) {
list.append(&value->ptr_link);
}
void prepend(T* value) {
list.prepend(&value->ptr_link);
}
void remove(T* value) {
list.remove(&value->ptr_link);
}
};
#endif