mirror of
https://github.com/alfishe/amiga-bootcamp.git
synced 2026-06-13 00:26:28 +00:00
Fixed frame again
Correct vtable layout differences between GCC and StormC++.
This commit is contained in:
parent
05e4c79762
commit
8cbfa43a90
1 changed files with 6 additions and 6 deletions
|
|
@ -92,17 +92,17 @@ StormC++ uses its own ABI:
|
||||||
|
|
||||||
```
|
```
|
||||||
GCC 2.95.x vtable layout: StormC++ vtable layout:
|
GCC 2.95.x vtable layout: StormC++ vtable layout:
|
||||||
┌──────────────────────┐ ┌──────────────────────┐
|
┌──────────────────────┐ ┌──────────────────────┐
|
||||||
│ offset_to_top = 0 │ vtable[-2] │ (no offset_to_top) │
|
│ offset_to_top = 0 │ vtable[-2] │ (no offset_to_top) │
|
||||||
├──────────────────────┤ ├──────────────────────┤
|
├──────────────────────┤ ├──────────────────────┤
|
||||||
│ RTTI pointer │ vtable[-1] │ (RTTI pointer or 0) │
|
│ RTTI pointer │ vtable[-1] │ (RTTI pointer or 0) │
|
||||||
├──────────────────────┤ ← vptr ├──────────────────────┤ ← vptr
|
├──────────────────────┤ ← vptr ├──────────────────────┤ ← vptr
|
||||||
│ virtual destructor │ vtable[0] │ first virtual method │ vtable[0]
|
│ virtual destructor │ vtable[0] │ first virtual method │ vtable[0]
|
||||||
├──────────────────────┤ ├──────────────────────┤
|
├──────────────────────┤ ├──────────────────────┤
|
||||||
│ virtual method 1 │ vtable[1] │ second virtual meth │ vtable[1]
|
│ virtual method 1 │ vtable[1] │ second virtual meth │ vtable[1]
|
||||||
├──────────────────────┤ ├──────────────────────┤
|
├──────────────────────┤ ├──────────────────────┤
|
||||||
│ ... │ │ ... │
|
│ ... │ │ ... │
|
||||||
└──────────────────────┘ └──────────────────────┘
|
└──────────────────────┘ └──────────────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue