35 #if defined(ENABLE_JNI_HEADERS)
36 # include "native/vm/include/java_lang_VMClass.h"
47 #if defined(ENABLE_ANNOTATIONS)
351 for (
const char *it = uname.
begin(), *end = uname.
end(); it != end; ++it) {
410 #if defined(ENABLE_ANNOTATIONS)
418 static methodinfo* m_parseAnnotationsIntoArray = NULL;
439 if (m_parseAnnotationsIntoArray == NULL) {
442 "[Ljava/lang/annotation/Annotation;");
444 if (utf_parseAnnotationsIntoArray == NULL || utf_desc == NULL) {
451 utf_parseAnnotationsIntoArray,
456 if (m_parseAnnotationsIntoArray == NULL) {
592 { (
char*)
"forName", (
char*)
"(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;", (
void*) (uintptr_t) &
Java_java_lang_VMClass_forName },
595 #if defined(ENABLE_ANNOTATIONS)
java_handle_objectarray_t * class_get_declaredfields(classinfo *c, bool publicOnly)
JNIEXPORT jclass JNICALL Java_java_lang_VMClass_getDeclaringClass(JNIEnv *env, jclass clazz, jclass klass)
methodinfo * class_resolveclassmethod(classinfo *c, Utf8String name, Utf8String desc, classinfo *referer, bool throwexception)
virtual java_handle_t * get_handle() const
Table containing all native methods registered with the VM.
NativeMethods & get_nativemethods()
void register_methods(Utf8String classname, const JNINativeMethod *methods, size_t count)
Register native methods with the VM.
java_handle_t * class_get_enclosingconstructor(classinfo *c)
Return the enclosing constructor as java.lang.reflect.Constructor object for the given class...
Utf8String to_utf8() const
JNIEXPORT jobjectArray JNICALL Java_java_lang_VMClass_getDeclaredMethods(JNIEnv *env, jclass clazz, jclass klass, jboolean publicOnly)
void exceptions_throw_classnotfoundexception(Utf8String name)
JNIEXPORT jclass JNICALL Java_java_lang_VMClass_forName(JNIEnv *env, jclass clazz, jstring name, jboolean initialize, jobject loader)
void set_constantPoolOop(classinfo *value)
static classinfo * class_get_superclass(classinfo *c)
#define NATIVE_METHODS_COUNT
static JavaString from_utf8(Utf8String)
byte_iterator end() const
classinfo * class_sun_reflect_annotation_AnnotationParser
JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isPrimitive(JNIEnv *env, jclass clazz, jclass klass)
int32_t class_get_modifiers(classinfo *c, bool ignoreInnerClassesAttrib)
Utf8String class_get_signature(classinfo *c)
OpenJDK sun/reflect/ConstantPool.
classinfo * class_get_declaringclass(classinfo *c)
JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isAnonymousClass(JNIEnv *env, jclass clazz, jclass klass)
JNIEnv jthread jclass klass
JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isLocalClass(JNIEnv *env, jclass clazz, jclass klass)
JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getEnclosingMethod(JNIEnv *env, jclass clazz, jclass klass)
bool class_is_instance(classinfo *c, java_handle_t *h)
java_handle_t * vm_call_method(methodinfo *m, java_handle_t *o,...)
classinfo * class_get_enclosingclass(classinfo *c)
static bool class_is_array(classinfo *c)
JNIEnv jclass jobject const char * name
JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isArray(JNIEnv *env, jclass clazz, jclass klass)
JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isAssignableFrom(JNIEnv *env, jclass clazz, jclass klass, jclass c)
static classloader_t * class_get_classloader(classinfo *c)
classloader_t * loader_hashtable_classloader_add(java_handle_t *cl)
classinfo * class_sun_reflect_ConstantPool
java_handle_objectarray_t * class_get_declaredconstructors(classinfo *c, bool publicOnly)
Return an array of declared constructors of the given class.
java_handle_t * class_get_classname(classinfo *c)
Returns the classname of the class, where slashes ('/') are replaced by dots ('.
#define LLNI_classinfo_wrap(classinfo)
java_handle_objectarray_t * class_get_declaredclasses(classinfo *c, bool publicOnly)
JNIEXPORT jobjectArray JNICALL Java_java_lang_VMClass_getDeclaredFields(JNIEnv *env, jclass clazz, jclass klass, jboolean publicOnly)
void _Jv_java_lang_VMClass_init(void)
static JNINativeMethod methods[]
void exceptions_set_exception(java_handle_t *e)
java_handle_objectarray_t * class_get_interfaces(classinfo *c)
JNIEXPORT jobjectArray JNICALL Java_java_lang_VMClass_getDeclaredConstructors(JNIEnv *env, jclass clazz, jclass klass, jboolean publicOnly)
java_handle_bytearray_t * class_get_annotations(classinfo *c)
java_handle_t * class_get_enclosingmethod(classinfo *c)
Return the enclosing method as java.lang.reflect.Method object for the given class.
java_handle_objectarray_t * class_get_declaredmethods(classinfo *c, bool publicOnly)
JNIEXPORT jint JNICALL Java_java_lang_VMClass_getModifiers(JNIEnv *env, jclass clazz, jclass klass, jboolean ignoreInnerClassesAttrib)
void exceptions_throw_nullpointerexception(void)
classinfo * class_java_lang_Class
JNIEXPORT jobjectArray JNICALL Java_java_lang_VMClass_getDeclaredClasses(JNIEnv *env, jclass clazz, jclass klass, jboolean publicOnly)
static bool class_is_interface(classinfo *c)
JNIEXPORT void JNICALL Java_java_lang_VMClass_throwException(JNIEnv *env, jclass clazz, jobject t)
JNIEXPORT jobjectArray JNICALL Java_java_lang_VMClass_getInterfaces(JNIEnv *env, jclass clazz, jclass klass)
JNIEXPORT jclass JNICALL Java_java_lang_VMClass_getSuperclass(JNIEnv *env, jclass clazz, jclass klass)
static Utf8String from_utf8(const char *, size_t)
static bool class_is_memberclass(classinfo *c)
JNIEnv jclass jobject loader
static bool class_is_anonymousclass(classinfo *c)
bool initialize_class(classinfo *c)
JNIEXPORT jclass JNICALL Java_java_lang_VMClass_getEnclosingClass(JNIEnv *env, jclass clazz, jclass klass)
JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getClassLoader(JNIEnv *env, jclass clazz, jclass klass)
JNIEXPORT jstring JNICALL Java_java_lang_VMClass_getClassSignature(JNIEnv *env, jclass clazz, jclass klass)
java_handle_t * native_new_and_init(classinfo *c)
Registers a new native agent by specified by it's library name and with an optional options string...
byte_iterator begin() const
JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getEnclosingConstructor(JNIEnv *env, jclass clazz, jclass klass)
JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isMemberClass(JNIEnv *env, jclass clazz, jclass klass)
static bool class_is_localclass(classinfo *c)
classinfo * link_class(classinfo *c)
JNIEXPORT jclass JNICALL Java_java_lang_VMClass_getComponentType(JNIEnv *env, jclass clazz, jclass klass)
bool class_is_assignable_from(classinfo *to, classinfo *from)
classinfo * load_class_from_classloader(Utf8String name, classloader_t *cl)
#define LLNI_classinfo_unwrap(clazz)
static bool class_is_primitive(classinfo *c)
JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isInstance(JNIEnv *env, jclass clazz, jclass klass, jobject o)
JNIEXPORT jobjectArray JNICALL Java_java_lang_VMClass_getDeclaredAnnotations(JNIEnv *env, jclass clazz, jclass klass)
classinfo * class_get_componenttype(classinfo *c)
JNIEXPORT jstring JNICALL Java_java_lang_VMClass_getName(JNIEnv *env, jclass clazz, jclass klass)
static VM * get_current()
Utf8String to_utf8_dot_to_slash() const
JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isInterface(JNIEnv *env, jclass clazz, jclass klass)