ClassMetadata AllClasses[] = { ClassMetadata ( "Metadata", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 10, // instanceSize NULL, // superClass 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/Object", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 10, // instanceSize //0, // alength //0, // aComponentClass NULL, // superClass -- from Reflection, p14 0, // superintfsNum NULL, // supreintfs sizeof(_ObjectMethods)/sizeof(MethodMetadata), // methodsNum //sizeof(ObjectMethods)/sizeof(MethodMetadata*), // methodsNum //ObjectMethods &_ObjectMethods[0] ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/String", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 16, // instanceSize //0, // alength //0, // aComponentClass &AllClasses[JL_OBJECT_CL_ID], // superClass 0, // superintfsNum NULL, // supreintfs sizeof(_StringMethods)/sizeof(MethodMetadata), // methodsNum &_StringMethods[0], 3, // fieldsNum &_StringFields[0], 0, // stringsNum NULL ), ClassMetadata( "java/lang/Cloneable", C_MD_IS_INTF_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 0, // instanceSize //0, // aComponentClass NULL, // superClass -- from Reflection, p14 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "[Ljava/lang/Object;", // note that Arrays do // not have a separate ClassMD instance !! C_MD_IS_ARRAY_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //1, // alength //JL_OBJECT_CL_ID, // aComponentClass NULL, // superClass 1, // superintfsNum //_ArrayInterfaces, // supreintfs NULL, 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "[[Ljava/lang/Object;", C_MD_IS_ARRAY_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //5, // alength //ARRAY_1_OBJECT, // aComponentClass NULL, // superClass 1, // superintfsNum //_ArrayInterfaces, // supreintfs NULL, 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/Boolean", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //0, // alength //0, // aComponentClass &AllClasses[JL_OBJECT_CL_ID], // superClass 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "[Ljava/lang/Boolean;", C_MD_IS_ARRAY_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //JL_BOOLEAN_CL_ID, // aComponentClass NULL, // superClass 1, // superintfsNum //_ArrayInterfaces, // supreintfs NULL, 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/Foo", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //0, // aComponentClass &AllClasses[JL_FOO1_CL_ID], // superClass 1, // superintfsNum _FooInterfaces, // supreintfs //sizeof(FooMethods)/sizeof(MethodMetadata*), // methodsNum sizeof(_FooMethods)/sizeof(MethodMetadata), // methodsNum //FooMethods, // methods &_FooMethods[0], 2, // fieldsNum &_FooFields[0] ,3, // stringsNum FooStrings ), ClassMetadata( "[Ljava/lang/Cloneable;", C_MD_IS_ARRAY_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //JL_CLONEABLE_CL_ID, // aComponentClass NULL, // superClass 1, // superintfsNum //_ArrayInterfaces, // supreintfs NULL, 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "bool", // bool -- a *primitive Type* .. as opposed // to *Object* Boolean 0, // typeFlag -- is empty !!! => Primitive !! 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //0, // aComponentClass NULL, // superClass - from Reflection, p14 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "[Z", // note: this Java Signature Format is used only w/ Arrays // (p.467, JLS) C_MD_IS_ARRAY_MASK, 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //JL_boolean_CL_ID, // aComponentClass NULL, // superClass 1, // superintfsNum //_ArrayInterfaces, // supreintfs NULL, 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/reflect/Method", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers // add on length of 6 int fields to what RTS needs sizeof(JMethod)+6*4, // instanceSize //0, // aComponentClass NULL, // superClass 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,6, // fieldsNum &_MethodFields[0], 0, // stringsNum NULL ), ClassMetadata( "[Ljava/lang/String;", C_MD_IS_ARRAY_MASK, 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //JL_STRING_CL_ID, // aComponentClass NULL, // superClass 1, // superintfsNum //_ArrayInterfaces, // supreintfs NULL, 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "byte", // byte -- a *primitive Type* .. as opposed // to *Object* Boolean 0, // typeFlag -- is empty !!! => Primitive !! 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //0, // aComponentClass NULL, // superClass - from Reflection, p14 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "[B", // note: this Java Signature Format is used only w/ Arrays // (p.467, JLS) C_MD_IS_ARRAY_MASK, 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //JL_byte_CL_ID, // aComponentClass NULL, // superClass 1, // superintfsNum //_ArrayInterfaces, // supreintfs NULL, 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/Interface2", C_MD_IS_INTF_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 0, // instanceSize //0, // aComponentClass NULL, // superClass -- from Reflection, p14 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/Interface1", C_MD_IS_INTF_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 0, // instanceSize //0, // aComponentClass NULL, // superClass -- from Reflection, p14 1, // superintfsNum _Intf1Interfaces, // supreintfs 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/Foo1", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 20, // instanceSize //0, // alength //, // aComponentClass NULL, // superClass 1, // superintfsNum _Foo1Interfaces, // supreintfs 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/Interface3", C_MD_IS_INTF_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers 0, // instanceSize NULL, // superClass -- from Reflection, p14 1, // superintfsNum _Intf1Interfaces, // supreintfs 0, // methodsNum NULL // methods ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/lang/Class", C_MD_IS_CLASS_MASK, // typeFlag sizeof(_ClassVTBL) / sizeof(void *), // classSize _ClassVTBL, // classData 0, // modifiers sizeof(JObjectClass), // instanceSize NULL, // superClass -- from Reflection, p14 0, // superintfsNum NULL, // supreintfs //sizeof(ClassMethods)/sizeof(MethodMetadata*), // methodsNum sizeof(_ClassMethods)/sizeof(MethodMetadata), // methodsNum //ClassMethods &_ClassMethods[0] ,0, // fieldsNum NULL, 0, // stringsNum NULL ), ClassMetadata( "java/io/FileOutputStream", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers sizeof(JObject)+4, // instanceSize &AllClasses[JL_OBJECT_CL_ID], // superClass 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,1, // fieldsNum &_FOSFields[0], 0, // stringsNum NULL ), ClassMetadata( "java/io/FileDescriptor", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers sizeof(JObject)+4, // instanceSize &AllClasses[JL_OBJECT_CL_ID], // superClass 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,1, // fieldsNum _FDFields, // fields 0, // stringsNum NULL ), ClassMetadata( "java/io/File", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers sizeof(JObject)+4, // instanceSize &AllClasses[JL_OBJECT_CL_ID], // superClass 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,1, // fieldsNum &_FileFields[0], 0, // stringsNum NULL ), ClassMetadata( "java/io/FileInputStream", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers sizeof(JObject)+4, // instanceSize &AllClasses[JL_OBJECT_CL_ID], // superClass 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,1, // fieldsNum &_FISFields[0], 0, // stringsNum NULL ), ClassMetadata( "java/lang/reflect/Field", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers // size is sum of JField and the #bytes needed by // a Java Field representation sizeof(JField)+4+4+4+4, // instanceSize &AllClasses[JL_OBJECT_CL_ID], // superClass 0, // superintfsNum NULL, // supreintfs 0, // methodsNum NULL // methods ,4, // fieldsNum &_FieldFields[0], 0, // stringsNum NULL ), ClassMetadata( "java/lang/System", C_MD_IS_CLASS_MASK, // typeFlag 0, // classSize NULL, // classData 0, // modifiers sizeof(JObject) + (4 * sizeof(int)), // instanceSize &AllClasses[JL_OBJECT_CL_ID], // superClass 0, // superintfsNum NULL, // supreintfs sizeof(_SystemMethods)/sizeof (MethodMetadata), // methodsNum _SystemMethods // methods ,4, // fieldsNum _SystemFields, 0, // stringsNum NULL ) } |
|