diff options
Diffstat (limited to '')
-rw-r--r-- | includes/compiler/CDecl.h | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/includes/compiler/CDecl.h b/includes/compiler/CDecl.h index eda8669..a4c28e2 100644 --- a/includes/compiler/CDecl.h +++ b/includes/compiler/CDecl.h @@ -10,13 +10,19 @@ #endif // named because it's 0xE bytes big (hurr) -typedef struct DeclE { +struct DeclE { ObjBase **objlist; void *x4; - unsigned short x8; + unsigned short x8; // lex_order_count? unsigned short xA; Boolean xC; -} DeclE; +}; + +// what the fuck am I? +struct DeclFucker { + NameSpace *nspace; + void *mystery4; +}; struct DeclInfo { Type *thetype; @@ -31,10 +37,10 @@ struct DeclInfo { ENode *x24; TemplClass *x28; TemplArg *expltargs; - void *x30; - void *x34; - void *x38; - Boolean x3C; + TemplParam *x30; + DeclFucker *fucker34; + TemplateFunction *x38; + UInt8 x3C; // related to template nindex Boolean x3D; short x3E; short storageclass; @@ -46,7 +52,7 @@ struct DeclInfo { Boolean x47; Boolean x48; Boolean x49; - Boolean x4A; + Boolean x4A; // objc related Boolean x4B; Boolean x4C; Boolean x4D; @@ -60,7 +66,11 @@ struct DeclInfo { Boolean x55; Boolean x56; Boolean x57; - FileOffsetInfo fileoffsetinfo; + //FileOffsetInfo fileoffsetinfo; + CPrepFileInfo *file; + CPrepFileInfo *file2; + SInt32 x60; // file offset? + short x64; }; typedef struct BigDeclInfo { @@ -113,7 +123,7 @@ extern void CDecl_UnpackDeclInfo(DeclInfo *declinfo, PackedDeclInfo *packed); extern void CDecl_AddFriend(TypeClass *tclass, Object *friendfunc, TypeClass *friendclass); extern void CDecl_CheckCtorIntegrity(FuncArg *args, TypeClass *tclass); extern void CDecl_MakeVBaseList(TypeClass *tclass); -extern Boolean CDecl_CheckNewBase(TypeClass *a, TypeClass *b, Boolean flag); +extern Boolean CDecl_CheckNewBase(TypeClass *tclass, TypeClass *baseclass, Boolean is_virtual); extern TypeMethod *CDecl_MakeDefaultDtorType(TypeClass *tclass, Boolean is_virtual); extern void CDecl_CompleteClass(DeclE *decle, TypeClass *tclass); extern TypeClass *CDecl_DefineClass(NameSpace *nspace, HashNameNode *name, TypeClass *tclass, short mode, Boolean flag2, Boolean flag3); |