diff --git a/gen/classes.cpp b/gen/classes.cpp index 8077f723..d34f57b5 100644 --- a/gen/classes.cpp +++ b/gen/classes.cpp @@ -793,9 +793,7 @@ LLConstant* DtoDefineClassInfo(ClassDeclaration* cd) // xgetMembers VarDeclaration* xgetVar = (VarDeclaration*)cinfo->fields.data[11]; - - // FIXME: fill it out! - b.push_null(xgetVar->type); + b.push_funcptr(cd->findGetMembers(), xgetVar->type); #else diff --git a/gen/typinf.cpp b/gen/typinf.cpp index 977d3116..78be81a1 100644 --- a/gen/typinf.cpp +++ b/gen/typinf.cpp @@ -664,16 +664,13 @@ void TypeInfoStructDeclaration::llvmDefine() assert(tscd->fields.dim == 11); // const(MemberInfo[]) function(in char[]) xgetMembers; - VarDeclaration* xgetMembers = (VarDeclaration*)tscd->fields.data[7]; - b.push_null(xgetMembers->type); + b.push_funcptr(sd->findGetMembers()); //void function(void*) xdtor; - VarDeclaration* xdtor = (VarDeclaration*)tscd->fields.data[8]; - b.push_null(xdtor->type); + b.push_funcptr(sd->dtor); //void function(void*) xpostblit; - VarDeclaration* xpostblit = (VarDeclaration*)tscd->fields.data[9]; - b.push_null(xpostblit->type); + b.push_funcptr(sd->postblit); //uint m_align; b.push_uint(0);