summaryrefslogtreecommitdiff
path: root/includes/compiler/CABI.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/compiler/CABI.h')
-rw-r--r--includes/compiler/CABI.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/includes/compiler/CABI.h b/includes/compiler/CABI.h
index 735eeea..6e190d5 100644
--- a/includes/compiler/CABI.h
+++ b/includes/compiler/CABI.h
@@ -8,6 +8,13 @@
#pragma options align=mac68k
#endif
+typedef enum CABIDestroyMode {
+ CABIDestroy0 = 0,
+ CABIDestroy1 = 1,
+ CABIDestroy2 = 2,
+ CABIDestroy3 = 3
+} CABIDestroyMode;
+
extern short CABI_GetStructResultArgumentIndex(TypeFunc *tfunc);
extern Type *CABI_GetSizeTType(void);
extern Type *CABI_GetPtrDiffTType(void);
@@ -16,21 +23,21 @@ extern void CABI_ReverseBitField(TypeBitfield *tbitfield);
extern void CABI_AddVTable(TypeClass *tclass);
extern SInt32 CABI_GetVTableOffset(TypeClass *tclass);
extern void CABI_LayoutClass(DeclE *decle, TypeClass *tclass);
-extern void CABI_MakeDefaultArgConstructor(TypeClass *tclass, Object *obj);
+extern void CABI_MakeDefaultArgConstructor(TypeClass *tclass, Object *func);
extern ENode *CABI_MakeThisExpr(TypeClass *tclass, SInt32 offset);
extern SInt32 CABI_GetCtorOffsetOffset(TypeClass *tclass, TypeClass *base);
extern Object *CABI_ConstructorCallsNew(TypeClass *tclass);
typedef Statement *(*TransConstructorCallback)(Statement *stmt, TypeClass *tclass, TypeClass *base, SInt32 offset, Boolean flag);
-extern void CABI_TransConstructor(Object *obj, Statement *stmt, TypeClass *tclass, TransConstructorCallback callback, Boolean flag);
-extern void CABI_MakeDefaultConstructor(TypeClass *tclass, Object *obj);
-extern void CABI_MakeDefaultCopyConstructor(TypeClass *tclass, Object *obj);
-extern void CABI_MakeDefaultAssignmentOperator(TypeClass *tclass, Object *obj);
-extern void CABI_TransDestructor(Object *obj1, Object *obj2, Statement *stmt, TypeClass *tclass);
-extern void CABI_MakeDefaultDestructor(TypeClass *tclass, Object *obj);
-extern void CABI_MakeLayeredDestructor(TypeClass *tclass, Object *obj);
-extern Object *CABI_GetDestructorObject(Object *obj, int what);
+extern void CABI_TransConstructor(Object *obj, Statement *stmt, TypeClass *tclass, TransConstructorCallback callback, Boolean has_try);
+extern void CABI_MakeDefaultConstructor(TypeClass *tclass, Object *func);
+extern void CABI_MakeDefaultCopyConstructor(TypeClass *tclass, Object *func);
+extern void CABI_MakeDefaultAssignmentOperator(TypeClass *tclass, Object *func);
+extern void CABI_TransDestructor(Object *obj1, Object *obj2, Statement *stmt, TypeClass *tclass, CABIDestroyMode mode);
+extern void CABI_MakeDefaultDestructor(TypeClass *tclass, Object *func);
+extern void CABI_MakeLayeredDestructor(TypeClass *tclass, Object *func);
+extern Object *CABI_GetDestructorObject(Object *obj, CABIDestroyMode mode);
extern void CABI_AddLayeredDestructors(TypeClass *tclass);
-extern ENode *CABI_DestroyObject(Object *dtor, ENode *objexpr, UInt8 mode, Boolean flag1, Boolean flag2);
+extern ENode *CABI_DestroyObject(Object *dtor, ENode *objexpr, CABIDestroyMode mode, Boolean flag1, Boolean flag2);
#ifdef __MWERKS__
#pragma options align=reset