/* src/vm/globals.cpp - global variables
- Copyright (C) 2008
+ Copyright (C) 1996-2011
CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
#if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
classinfo *class_sun_misc_Signal;
classinfo *class_sun_reflect_MagicAccessorImpl;
+classinfo *class_sun_reflect_MethodAccessorImpl;
+classinfo *class_sun_reflect_ConstructorAccessorImpl;
#endif
#if defined(ENABLE_JAVASE)
/* src/vm/globals.hpp - global variables
- Copyright (C) 2008
+ Copyright (C) 1996-2011
CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
#if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
extern classinfo *class_sun_misc_Signal;
extern classinfo *class_sun_reflect_MagicAccessorImpl;
+extern classinfo *class_sun_reflect_MethodAccessorImpl;
+extern classinfo *class_sun_reflect_ConstructorAccessorImpl;
#endif
#if defined(ENABLE_JAVASE)
m = tmpsfi.code->m;
cl = class_get_classloader(m->clazz);
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
+ /* NOTE: See hotspot/src/share/vm/runtime/vframe.cpp
+ (vframeStreamCommon::skip_reflection_related_frames). */
+ if (class_issubclass(m->clazz, class_sun_reflect_MethodAccessorImpl) ||
+ class_issubclass(m->clazz, class_sun_reflect_ConstructorAccessorImpl))
+ continue;
+#endif
+
if (cl != NULL)
return cl;
}
if (!link_class(class_sun_reflect_MagicAccessorImpl))
vm_abort("linker_init: linking failed");
+
+ if (!link_class(class_sun_reflect_MethodAccessorImpl))
+ vm_abort("linker_init: linking failed");
+
+ if (!link_class(class_sun_reflect_ConstructorAccessorImpl))
+ vm_abort("linker_init: linking failed");
# endif
if (!link_class(arrayclass_java_lang_Object))
/* src/vm/loader.cpp - class loader functions
- Copyright (C) 1996-2005, 2006, 2007, 2008
+ Copyright (C) 1996-2011
CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
Copyright (C) 2009 Theobroma Systems Ltd.
class_java_util_Vector = load_class_bootstrap(utf_java_util_Vector);
# if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
- class_sun_misc_Signal = load_class_bootstrap(utf_new_char("sun/misc/Signal"));
- class_sun_reflect_MagicAccessorImpl = load_class_bootstrap(utf_new_char("sun/reflect/MagicAccessorImpl"));
+ class_sun_misc_Signal = load_class_bootstrap(utf_new_char("sun/misc/Signal"));
+ class_sun_reflect_MagicAccessorImpl = load_class_bootstrap(utf_new_char("sun/reflect/MagicAccessorImpl"));
+ class_sun_reflect_MethodAccessorImpl = load_class_bootstrap(utf_new_char("sun/reflect/MethodAccessorImpl"));
+ class_sun_reflect_ConstructorAccessorImpl = load_class_bootstrap(utf_new_char("sun/reflect/ConstructorAccessorImpl"));
# endif
arrayclass_java_lang_Object =