summaryrefslogtreecommitdiff
path: root/includes/compiler/CDecl.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--includes/compiler/CDecl.h30
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);