* src/vm/jit/trap.cpp (trap_handle): Activated new stack unwinding for i386.
[cacao.git] / src / vm / vftbl.hpp
index 80f45a89316e15286bc65a7026921bbabb7c74a7..0d47ad10f948e79c65fde6a0841761a7b7256b08 100644 (file)
@@ -91,9 +91,13 @@ typedef struct _vftbl vftbl_t;
 *******************************************************************************/
 
 // Includes.
-#include "vm/class.h"
+#include "vm/class.hpp"
 #include "vm/references.h"
 
+#if USES_NEW_SUBTYPE
+#define DISPLAY_SIZE 4
+#endif
+
 struct _vftbl {
        methodptr   *interfacetable[1];    /* interface table (access via macro)  */
        classinfo   *clazz;                /* class, the vtbl belongs to          */
@@ -103,6 +107,14 @@ struct _vftbl {
        s4           baseval;              /* base for runtime type check         */
                                           /* (-index for interfaces)             */
        s4           diffval;              /* high - base for runtime type check  */
+
+#if USES_NEW_SUBTYPE
+       s4 subtype_depth;
+       s4 subtype_offset;
+       struct _vftbl *subtype_display[DISPLAY_SIZE+1];  /* the last one is cache */
+       struct _vftbl **subtype_overflow;
+#endif
+
        s4          *interfacevftbllength; /* length of interface vftbls          */
        methodptr    table[1];             /* class vftbl                         */
 };