1 /* class: java/lang/Class */
11 #include "java_lang_Class.h"
12 #include "java_lang_reflect_Constructor.h"
13 #include "java_lang_reflect_Field.h"
14 #include "java_lang_reflect_Method.h"
15 #include "java_lang_Throwable.h" /* needed for java_lang_VMClass.h */
16 #include "java_lang_VMClass.h"
19 /* for selecting public members */
20 #define MEMBER_PUBLIC 0
24 * Class: java_lang_VMClass
26 * Signature: (Ljava/lang/String;)Ljava/lang/Class;
28 JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_forName(JNIEnv *env, jclass clazz, struct java_lang_String* s)
34 log_text("Java_java_lang_VMClass_forName called");
35 log_text(javastring_tochar((java_objectheader*)s));
38 /* illegal argument */
41 /* create utf string in which '.' is replaced by '/' */
42 u = javastring_toutf(s, true);
46 /* class was not loaded. raise exception */
49 log_text("Setting class not found exception");
51 native_new_and_init_string(class_java_lang_ClassNotFoundException, s);
56 /*log_text("Returning class");*/
57 use_class_as_object (c);
58 return (java_lang_Class*) c;
62 * Class: java_lang_VMClass
63 * Method: getClassLoader
64 * Signature: ()Ljava/lang/ClassLoader;
66 JNIEXPORT struct java_lang_ClassLoader* JNICALL Java_java_lang_VMClass_getClassLoader (JNIEnv *env , struct java_lang_VMClass* this )
68 init_systemclassloader();
69 return SystemClassLoader;
73 * Class: java_lang_VMClass
74 * Method: getModifiers
77 JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_getComponentType (JNIEnv *env , struct java_lang_VMClass* this )
79 classinfo *thisclass = (classinfo*) (this->vmData);
81 arraydescriptor *desc;
83 if ((desc = thisclass->vftbl->arraydesc) != NULL) {
84 if (desc->arraytype == ARRAYTYPE_OBJECT)
85 c = desc->componentvftbl->class;
87 c = primitivetype_table[desc->arraytype].class_primitive;
90 use_class_as_object (c);
93 return (java_lang_Class*) c;
98 * Class: java_lang_VMClass
99 * Method: getDeclaredConstructors
100 * Signature: (Z)[Ljava/lang/reflect/Constructor;
102 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredConstructors (JNIEnv *env , struct java_lang_VMClass* this , s4 public_only)
105 classinfo *c = (classinfo *) (this->vmData);
106 java_objectheader *o;
107 classinfo *class_constructor;
108 java_objectarray *array_constructor; /* result: array of Method-objects */
109 java_objectarray *exceptiontypes; /* the exceptions thrown by the method */
110 methodinfo *m; /* the current method to be represented */
111 int public_methods = 0; /* number of public methods of the class */
114 utf *utf_constr=utf_new_char("<init>");
118 log_text("Java_java_lang_VMClass_getDeclaredConstructors");
119 utf_display(c->name);
121 /* class_showmethods(c);
122 class_showmethods(loader_load(utf_new_char("java/lang/Class")));*/
125 /* determine number of constructors */
126 for (i = 0; i < c->methodscount; i++)
127 if ((((c->methods[i].flags & ACC_PUBLIC)) || (!public_only)) &&
128 (c->methods[i].name==utf_constr)) public_methods++;
130 class_constructor = (classinfo*) loader_load(utf_new_char ("java/lang/reflect/Constructor"));
131 if (!class_constructor)
135 array_constructor = builtin_anewarray(public_methods, class_constructor);
137 if (!array_constructor)
140 for (i = 0; i < c->methodscount; i++)
141 if ((c->methods[i].flags & ACC_PUBLIC) || (!public_only)){
144 if (m->name!=utf_constr) continue;
145 o = native_new_and_init(class_constructor);
146 array_constructor->data[pos++] = o;
148 /* array of exceptions declared to be thrown, information not available !! */
149 exceptiontypes = builtin_anewarray (0, class_java_lang_Class);
151 /* class_showconstantpool(class_constructor);*/
152 /* initialize instance fields */
153 /* ((java_lang_reflect_Constructor*)o)->flag=(m->flags & (ACC_PRIVATE | ACC_PUBLIC | ACC_PROTECTED));*/
154 setfield_critical(class_constructor,o,"clazz", "Ljava/lang/Class;", jobject, (jobject) c /*this*/);
155 setfield_critical(class_constructor,o,"slot", "I", jint, i);
156 /* setfield_critical(class_constructor,o,"flag", "I", jint, (m->flags & (ACC_PRIVATE |
157 ACC_PUBLIC | ACC_PROTECTED))); */
158 setfield_critical(class_constructor,o,"exceptionTypes", "[Ljava/lang/Class;", jobject, (jobject) exceptiontypes);
159 setfield_critical(class_constructor,o,"parameterTypes", "[Ljava/lang/Class;", jobject, (jobject) get_parametertypes(m));
162 log_text("leaving Java_java_lang_VMClass_getDeclaredConstructors");
163 return array_constructor;
168 /* panic("Java_java_lang_Class_getConstructors0 called");
174 * Class: java_lang_VMClass
175 * Method: getDeclaredClasses
176 * Signature: (Z)[Ljava/lang/Class;
178 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredClasses (JNIEnv *env , struct java_lang_VMClass* this , s4 publicOnly)
180 #warning fix the public only case
181 classinfo *c = (classinfo *) (this->vmData);
182 int pos = 0; /* current declared class */
183 int declaredclasscount = 0; /* number of declared classes */
184 java_objectarray *result; /* array of declared classes */
185 int notPublicOnly=!publicOnly;
194 /*printf("PublicOnly: %d\n",publicOnly);*/
195 if (!Java_java_lang_VMClass_isPrimitive(env, c) && (c->name->text[0]!='[')) {
196 /* determine number of declared classes */
197 for (i = 0; i < c->innerclasscount; i++) {
198 if ( (c->innerclass[i].outer_class == c) && (notPublicOnly || (c->innerclass[i].flags & ACC_PUBLIC)))
199 /* outer class is this class */
200 declaredclasscount++;
204 /*class_showmethods(c); */
206 result = builtin_anewarray(declaredclasscount, class_java_lang_Class);
208 for (i = 0; i < c->innerclasscount; i++) {
210 classinfo *inner = c->innerclass[i].inner_class;
211 classinfo *outer = c->innerclass[i].outer_class;
214 if ( (outer == c) && (notPublicOnly || (inner->flags & ACC_PUBLIC))) {
215 /* outer class is this class, store innerclass in array */
216 use_class_as_object (inner);
217 result->data[pos++] = (java_objectheader *) inner;
225 * Class: java/lang/Class
226 * Method: getDeclaringClass
227 * Signature: ()Ljava/lang/Class;
229 JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_getDeclaringClass ( JNIEnv *env , struct java_lang_VMClass* this)
232 classinfo *c = (classinfo *) (this->vmData);
233 log_text("Java_java_lang_VMClass_getDeclaringClass");
235 if (this && this->vmData && !Java_java_lang_VMClass_isPrimitive(env, this) && (c->name->text[0]!='[')) {
238 if (c->innerclasscount == 0) /* no innerclasses exist */
241 for (i = 0; i < c->innerclasscount; i++) {
243 classinfo *inner = c->innerclass[i].inner_class;
244 classinfo *outer = c->innerclass[i].outer_class;
247 /* innerclass is this class */
248 use_class_as_object (outer);
249 return (java_lang_Class*) outer;
254 /* return NULL for arrayclasses and primitive classes */
259 * Class: java/lang/Class
261 * Signature: (Ljava/lang/String;I)Ljava/lang/reflect/Field;
263 JNIEXPORT struct java_lang_reflect_Field* JNICALL Java_java_lang_VMClass_getField0 ( JNIEnv *env , struct java_lang_VMClass* this, struct java_lang_String* name, s4 public_only)
265 classinfo *c, *fieldtype;
266 fieldinfo *f; /* the field to be represented */
267 java_lang_reflect_Field *o; /* result: field-object */
268 utf *desc; /* the fielddescriptor */
271 /* create Field object */
272 c = (classinfo*) loader_load(utf_new_char ("java/lang/reflect/Field"));
273 o = (java_lang_reflect_Field*) native_new_and_init(c);
275 /* get fieldinfo entry */
276 idx = class_findfield_index_approx((classinfo*) (this->vmData), javastring_toutf(name, false));
278 exceptionptr = native_new_and_init(class_java_lang_NoSuchFieldException);
281 f= &(((struct classinfo*)(this->vmData))->fields[idx]);
284 if ( public_only && !(f->flags & ACC_PUBLIC))
286 /* field is not public and public only had been requested*/
287 exceptionptr = native_new_and_init(class_java_lang_NoSuchFieldException);
291 desc = f->descriptor;
292 fieldtype = class_from_descriptor(desc->text,utf_end(desc),NULL,true);
293 if (!fieldtype) return NULL;
295 /* initialize instance fields */
296 setfield_critical(c,o,"declaringClass", "Ljava/lang/Class;", jobject, (jobject) (this->vmData) /*this*/);
297 /* ((java_lang_reflect_Field*)(o))->flag=f->flags;*/
298 /* save type in slot-field for faster processing */
299 /* setfield_critical(c,o,"flag", "I", jint, (jint) f->flags); */
300 setfield_critical(c,o,"slot", "I", jint, (jint) idx);
301 setfield_critical(c,o,"name", "Ljava/lang/String;", jstring, (jstring) name);
302 /*setfield_critical(c,o,"type", "Ljava/lang/Class;", jclass, fieldtype);*/
312 * Class: java_lang_VMClass
313 * Method: getDeclaredFields
314 * Signature: (Z)[Ljava/lang/reflect/Field;
316 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredFields (JNIEnv *env , struct java_lang_VMClass* this , s4 public_only)
318 classinfo *c = (classinfo *) (this->vmData);
319 classinfo *class_field;
320 java_objectarray *array_field; /* result: array of field-objects */
321 int public_fields = 0; /* number of elements in field-array */
325 /* determine number of fields */
326 for (i = 0; i < c->fieldscount; i++)
327 if ((c->fields[i].flags & ACC_PUBLIC) || (!public_only)) public_fields++;
329 class_field = loader_load(utf_new_char("java/lang/reflect/Field"));
334 /* create array of fields */
335 array_field = builtin_anewarray(public_fields, class_field);
337 /* creation of array failed */
341 /* get the fields and store in the array */
342 for (i = 0; i < c->fieldscount; i++)
343 if ( (c->fields[i].flags & ACC_PUBLIC) || (!public_only))
344 array_field->data[pos++] = (java_objectheader*) Java_java_lang_VMClass_getField0
347 (java_lang_String*) javastring_new(c->fields[i].name),
353 * Class: java/lang/Class
354 * Method: getInterfaces
355 * Signature: ()[Ljava/lang/Class;
357 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getInterfaces ( JNIEnv *env , struct java_lang_VMClass* this)
359 classinfo *c = (classinfo*) (this->vmData);
361 java_objectarray *a = builtin_anewarray (c->interfacescount, class_java_lang_Class);
363 for (i=0; i<c->interfacescount; i++) {
364 use_class_as_object (c->interfaces[i]);
366 a->data[i] = (java_objectheader*) c->interfaces[i];
373 * Class: java/lang/Class
375 * Signature: (Ljava/lang/String;[Ljava/lang/Class;I)Ljava/lang/reflect/Method;
377 JNIEXPORT struct java_lang_reflect_Method* JNICALL Java_java_lang_VMClass_getMethod0 ( JNIEnv *env , struct java_lang_Class*
378 this, struct java_lang_String* name, java_objectarray* types, s4 which)
381 classinfo *clazz = (classinfo *) this;
382 java_lang_reflect_Method* o; /* result: Method-object */
383 java_objectarray *exceptiontypes; /* the exceptions thrown by the method */
384 methodinfo *m; /* the method to be represented */
386 c = (classinfo*) loader_load(utf_new_char ("java/lang/reflect/Method"));
387 o = (java_lang_reflect_Method*) native_new_and_init(c);
389 /* find the method */
390 m = class_resolvemethod_approx (
392 javastring_toutf(name, false),
393 create_methodsig(types,0)
396 if (!m || (which==MEMBER_PUBLIC && !(m->flags & ACC_PUBLIC)))
398 /* no apropriate method was found */
399 exceptionptr = native_new_and_init (class_java_lang_NoSuchMethodException);
403 /* array of exceptions declared to be thrown, information not available !! */
404 exceptiontypes = builtin_anewarray (0, class_java_lang_Class);
406 /* initialize instance fields */
407 setfield_critical(c,o,"clazz", "Ljava/lang/Class;", jobject, (jobject) clazz /*this*/);
408 setfield_critical(c,o,"parameterTypes", "[Ljava/lang/Class;", jobject, (jobject) types);
409 setfield_critical(c,o,"exceptionTypes", "[Ljava/lang/Class;", jobject, (jobject) exceptiontypes);
410 setfield_critical(c,o,"name", "Ljava/lang/String;", jstring, javastring_new(m->name));
411 setfield_critical(c,o,"modifiers", "I", jint, m->flags);
412 setfield_critical(c,o,"slot", "I", jint, 0);
413 setfield_critical(c,o,"returnType", "Ljava/lang/Class;", jclass, get_returntype(m));
419 * Class: java_lang_VMClass
420 * Method: getDeclaredMethods
421 * Signature: (Z)[Ljava/lang/reflect/Method;
423 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredMethods (JNIEnv *env , struct java_lang_VMClass* this , s4 public_only)
425 classinfo *c = (classinfo *) this->vmData;
426 java_objectheader *o;
427 classinfo *class_method;
428 java_objectarray *array_method; /* result: array of Method-objects */
429 java_objectarray *exceptiontypes; /* the exceptions thrown by the method */
430 methodinfo *m; /* the current method to be represented */
431 int public_methods = 0; /* number of public methods of the class */
434 utf *utf_constr=utf_new_char("<init>");
435 utf *utf_clinit=utf_new_char("<clinit>");
438 class_method = (classinfo*) loader_load(utf_new_char ("java/lang/reflect/Method"));
442 /* JOWENN: array classes do not declare methods according to mauve test. It should be considered, if
443 we should return to my old clone method overriding instead of declaring it as a member function */
444 if (Java_java_lang_VMClass_isArray(env,this)) {
445 return builtin_anewarray(0, class_method);
449 /* determine number of methods */
450 for (i = 0; i < c->methodscount; i++)
451 if ((((c->methods[i].flags & ACC_PUBLIC)) || (!public_only)) &&
453 ((c->methods[i].name==utf_constr) ||
454 (c->methods[i].name==utf_clinit) )
458 class_showmethods(class_method);
463 array_method = builtin_anewarray(public_methods, class_method);
468 for (i = 0; i < c->methodscount; i++)
469 if (((c->methods[i].flags & ACC_PUBLIC) || (!public_only)) &&
471 ((c->methods[i].name==utf_constr) ||
472 (c->methods[i].name==utf_clinit) )
476 o = native_new_and_init(class_method);
477 array_method->data[pos++] = o;
479 /* array of exceptions declared to be thrown, information not available !! */
480 exceptiontypes = builtin_anewarray (0, class_java_lang_Class);
483 /* initialize instance fields */
484 /* ((java_lang_reflect_Method*)o)->flag=(m->flags &
485 (ACC_PUBLIC | ACC_PRIVATE | ACC_PROTECTED | ACC_ABSTRACT | ACC_STATIC | ACC_FINAL |
486 ACC_SYNCHRONIZED | ACC_NATIVE | ACC_STRICT)
488 setfield_critical(class_method,o,"declaringClass", "Ljava/lang/Class;", jobject, (jobject) c /*this*/);
489 setfield_critical(class_method,o,"name", "Ljava/lang/String;", jstring, javastring_new(m->name));
490 /* setfield_critical(class_method,o,"flag", "I", jint, (m->flags &
491 (ACC_PUBLIC | ACC_PRIVATE | ACC_PROTECTED | ACC_ABSTRACT | ACC_STATIC | ACC_FINAL |
492 ACC_SYNCHRONIZED | ACC_NATIVE | ACC_STRICT)));*/
493 setfield_critical(class_method,o,"slot", "I", jint, i);
494 /* setfield_critical(class_method,o,"returnType", "Ljava/lang/Class;", jclass, get_returntype(m));
495 setfield_critical(class_method,o,"exceptionTypes", "[Ljava/lang/Class;", jobject, (jobject) exceptiontypes);
496 setfield_critical(class_method,o,"parameterTypes", "[Ljava/lang/Class;", jobject, (jobject) get_parametertypes(m));*/
503 * Class: java/lang/Class
504 * Method: getModifiers
507 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_getModifiers ( JNIEnv *env , struct java_lang_VMClass* this)
509 classinfo *c = (classinfo *) (this->vmData);
514 * Class: java/lang/Class
516 * Signature: ()Ljava/lang/String;
518 JNIEXPORT struct java_lang_String* JNICALL Java_java_lang_VMClass_getName ( JNIEnv *env , struct java_lang_VMClass* this)
521 classinfo *c = (classinfo*) (this->vmData);
523 char *utf__ptr = c->name->text; /* current position in utf-text */
524 char **utf_ptr = &utf__ptr;
525 char *desc_end = utf_end(c->name); /* points behind utf string */
530 if (runverbose) log_text("Java_java_lang_VMClass_getName");
533 while ( *utf_ptr != desc_end ) {
534 if (utf_nextu2(utf_ptr)=='[') dimCnt++;
537 utf__ptr=(*utf_ptr)-1;
540 if (((*utf_ptr)+1)==desc_end) {
541 for (i=0;i<PRIMITIVETYPE_COUNT;i++) {
542 if (primitivetype_table[i].typesig==(*utf__ptr)) {
543 len=dimCnt*2+strlen(primitivetype_table[i].name);
544 str=MNEW(char,len+1);
545 strcpy(str,primitivetype_table[i].name);
551 len=dimCnt+strlen(c->name->text);
552 str=MNEW(char,len+1);
553 strcpy(str,utf__ptr);
558 for (i=len-1;i>=dimCnt;i=i-2) {
562 s=(java_lang_String*)javastring_new(utf_new_char(str));
563 MFREE(str,char,len+1);
567 /* return string where '/' is replaced by '.' */
568 for (i=0; i<s->value->header.size; i++) {
569 if (s->value->data[i] == '/') s->value->data[i] = '.';
578 * Class: java/lang/Class
579 * Method: getProtectionDomain0
580 * Signature: ()Ljava/security/ProtectionDomain;
582 JNIEXPORT struct java_security_ProtectionDomain* JNICALL Java_java_lang_VMClass_getProtectionDomain0 ( JNIEnv *env , struct java_lang_Class* this)
584 log_text("Java_java_lang_VMClass_getProtectionDomain0 called");
589 * Class: java/lang/Class
591 * Signature: ()[Ljava/lang/Object;
593 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getSigners ( JNIEnv *env , struct java_lang_Class* this)
595 log_text("Java_java_lang_VMClass_getSigners called");
600 * Class: java/lang/Class
601 * Method: getSuperclass
602 * Signature: ()Ljava/lang/Class;
604 JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_getSuperclass ( JNIEnv *env , struct java_lang_VMClass* this)
606 classinfo *cl= ((classinfo*)this->vmData);
607 classinfo *c=cl -> super;
611 use_class_as_object (c);
612 return (java_lang_Class*) c;
616 * Class: java/lang/Class
620 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isArray ( JNIEnv *env , struct java_lang_VMClass* this)
622 classinfo *c = (classinfo*) (this->vmData);
623 return c->vftbl->arraydesc != NULL;
627 * Class: java/lang/Class
628 * Method: isAssignableFrom
629 * Signature: (Ljava/lang/Class;)Z
631 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isAssignableFrom ( JNIEnv *env , struct java_lang_VMClass* this, struct java_lang_Class* sup)
634 log_text("Java_java_lang_VMClass_isAssignableFrom");
638 panic("sup->vmClass is NULL in VMClass.isAssignableFrom");
641 return (*env)->IsAssignableForm(env, (jclass) sup, (jclass) (this->vmData));
645 * Class: java/lang/Class
647 * Signature: (Ljava/lang/Object;)Z
649 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isInstance ( JNIEnv *env , struct java_lang_VMClass* this, struct java_lang_Object* obj)
651 classinfo *clazz = (classinfo*) (this->vmData);
652 return (*env)->IsInstanceOf(env,(jobject) obj,clazz);
656 * Class: java/lang/Class
657 * Method: isInterface
660 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isInterface ( JNIEnv *env , struct java_lang_VMClass* this)
662 classinfo *c = (classinfo*) this->vmData;
663 if (c->flags & ACC_INTERFACE) return true;
668 * Class: java/lang/Class
669 * Method: isPrimitive
672 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isPrimitive ( JNIEnv *env , struct java_lang_VMClass* this)
675 classinfo *c = (classinfo *) this->vmData;
677 /* search table of primitive classes */
678 for (i=0;i<PRIMITIVETYPE_COUNT;i++)
679 if (primitivetype_table[i].class_primitive == c) return true;
686 * Class: java/lang/Class
687 * Method: registerNatives
690 JNIEXPORT void JNICALL Java_java_lang_VMClass_registerNatives ( JNIEnv *env )
696 * Class: java/lang/Class
697 * Method: setProtectionDomain0
698 * Signature: (Ljava/security/ProtectionDomain;)V
700 JNIEXPORT void JNICALL Java_java_lang_VMClass_setProtectionDomain0 ( JNIEnv *env , struct java_lang_Class* this, struct java_security_ProtectionDomain* par1)
703 log_text("Java_java_lang_VMClass_setProtectionDomain0 called");
707 * Class: java/lang/Class
709 * Signature: ([Ljava/lang/Object;)V
711 JNIEXPORT void JNICALL Java_java_lang_VMClass_setSigners ( JNIEnv *env , struct java_lang_Class* this, java_objectarray* par1)
714 log_text("Java_java_lang_VMClass_setSigners called");
723 * Class: java_lang_VMClass
727 JNIEXPORT void JNICALL Java_java_lang_VMClass_initialize (JNIEnv *env , struct java_lang_VMClass* this ){
728 log_text("Java_java_lang_VMClass_initialize");
731 * Class: java_lang_VMClass
732 * Method: loadArrayClass
733 * Signature: (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
735 JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_loadArrayClass (JNIEnv *env , jclass clazz, struct java_lang_String* par1, struct
736 java_lang_ClassLoader* par2) {
737 log_text("Java_java_lang_VMClass_loadArrayClass");
741 * Class: java_lang_VMClass
742 * Method: throwException
743 * Signature: (Ljava/lang/Throwable;)V
745 JNIEXPORT void JNICALL Java_java_lang_VMClass_throwException (JNIEnv *env , jclass clazz, struct java_lang_Throwable* par1) {
746 log_text("Java_java_lang_VMClass_throwException");
750 * Class: java_lang_VMClass
754 JNIEXPORT void JNICALL Java_java_lang_VMClass_step7 (JNIEnv *env , struct java_lang_VMClass* this ) {
755 log_text("Java_java_lang_VMClass_step7");
758 * Class: java_lang_VMClass
762 JNIEXPORT void JNICALL Java_java_lang_VMClass_step8 (JNIEnv *env , struct java_lang_VMClass* this ) {
763 log_text("Java_java_lang_VMClass_step8");
769 * Class: java_lang_VMClass
770 * Method: isInitialized
773 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isInitialized (JNIEnv *env , struct java_lang_VMClass* this ) {
774 log_text("Java_java_lang_VMClass_isInitialized");
778 * Class: java_lang_VMClass
779 * Method: setInitialized
782 JNIEXPORT void JNICALL Java_java_lang_VMClass_setInitialized (JNIEnv *env , struct java_lang_VMClass* this ) {
783 log_text("Java_java_lang_VMClass_setInitialized");