package reflect; import vm.Address; import vm.Address32Bit; import icecaptools.IcecapCVar; import icecaptools.IcecapCompileMe; public class ClassInfoX86_32 extends ClassInfo { @IcecapCVar(expression = "classes", requiredIncludes = "#include \"types.h\"\n#include \"classes.h\"\nextern const ClassInfo *classes;\n") protected static int classes; public int interfaces; public int name; public int references; @IcecapCompileMe protected ClassInfoX86_32(short index) { super(null); address = new Address32Bit(memory_size() * index + classes); } @Override @IcecapCompileMe protected short getIndex() { return (short) ((((Address32Bit)address).address - classes) / memory_size()); } protected byte memory_size() { if (gCSupported()) { return 20; } else { return 16; } } @Override protected Address getNameRef() { return new Address32Bit(name); } @Override protected Address getReferencesRef() { return new Address32Bit(references); } @Override public Address getInterfacesRef() { return new Address32Bit(interfaces); } }