Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_VMSystem.c 8321 2007-08-16 11:37:25Z michi $
+ $Id: java_lang_VMSystem.c 8363 2007-08-20 19:10:46Z michi $
*/
#include "mm/gc-common.h"
#include "native/jni.h"
+#include "native/llni.h"
#include "native/native.h"
#include "native/include/java_lang_Object.h"
*/
JNIEXPORT s4 JNICALL Java_java_lang_VMSystem_identityHashCode(JNIEnv *env, jclass clazz, java_lang_Object *o)
{
+ s4 hashcode;
+
+ LLNI_CRITICAL_START;
+
#if defined(ENABLE_GC_CACAO)
- return heap_get_hashcode((java_objectheader *) o);
+ hashcode = heap_get_hashcode(LLNI_UNWRAP((java_handle_t *) o));
#else
- return (s4) ((ptrint) o);
+ hashcode = (s4) ((ptrint) o);
#endif
+
+ LLNI_CRITICAL_END;
+
+ return hashcode;
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_Class.c 8343 2007-08-17 21:39:32Z michi $
+ $Id: java_lang_Class.c 8363 2007-08-20 19:10:46Z michi $
*/
*/
java_lang_ClassLoader *_Jv_java_lang_Class_getClassLoader(java_lang_Class *klass)
{
- classinfo *c;
+ classinfo *c;
+ classloader *cl;
- c = LLNI_classinfo_unwrap(klass);
+ c = LLNI_classinfo_unwrap(klass);
+ cl = c->classloader;
- if (c->classloader == NULL)
+ if (cl == NULL)
return NULL;
else
- return (java_lang_ClassLoader *) c->classloader->object;
+#if defined(ENABLE_HANDLES)
+ /* the classloader entry itself is the handle */
+ return (java_lang_ClassLoader *) cl;
+#else
+ /* get the object out of the classloader entry */
+ return (java_lang_ClassLoader *) cl->object;
+#endif
}
#endif /* defined(ENABLE_JAVASE) */