* src/threads/thread.cpp: Break a reference cycle.
[cacao.git] / src / vm / javaobjects.cpp
index 4f63d89a5117b0828c9e7599acf699a83458eb50..cb862ee2c5d3dc91dc477d86a84820b8b6127911 100644 (file)
@@ -1,6 +1,6 @@
 /* src/vm/javaobjects.cpp - functions to create and access Java objects
 
-   Copyright (C) 2010, 2011
+   Copyright (C) 1996-2011
    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
    Copyright (C) 2008, 2009 Theobroma Systems Ltd.
 
@@ -227,9 +227,49 @@ bool jobjects_run_dynoffsets_hook(classinfo *c)
        return true;
 }
 
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
+
+off_t java_lang_Thread::offset_vmThread;
+off_t java_lang_Thread::offset_group;
+off_t java_lang_Thread::offset_name;
+off_t java_lang_Thread::offset_daemon;
+off_t java_lang_Thread::offset_priority;
+off_t java_lang_Thread::offset_exceptionHandler;
+
+static DynOffsetEntry dyn_entries_java_lang_Thread[] = {
+       { &java_lang_Thread::set_vmThread_offset,         "vmThread" },
+       { &java_lang_Thread::set_group_offset,            "group" },
+       { &java_lang_Thread::set_name_offset,             "name" },
+       { &java_lang_Thread::set_daemon_offset,           "daemon" },
+       { &java_lang_Thread::set_priority_offset,         "priority" },
+       { &java_lang_Thread::set_exceptionHandler_offset, "exceptionHandler" },
+       { 0, 0 }
+};
+
+#elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
+
+off_t java_lang_Thread::offset_priority;
+off_t java_lang_Thread::offset_daemon;
+off_t java_lang_Thread::offset_group;
+off_t java_lang_Thread::offset_uncaughtExceptionHandler;
+off_t java_lang_Thread::offset_threadStatus;
+off_t java_lang_Thread::offset_me;
+
+static DynOffsetEntry dyn_entries_java_lang_Thread[] = {
+       { &java_lang_Thread::set_priority_offset,                 "priority" },
+       { &java_lang_Thread::set_daemon_offset,                   "daemon" },
+       { &java_lang_Thread::set_group_offset,                    "group" },
+       { &java_lang_Thread::set_uncaughtExceptionHandler_offset, "uncaughtExceptionHandler" },
+       { &java_lang_Thread::set_threadStatus_offset,             "threadStatus" },
+       { &java_lang_Thread::set_me_offset,                       "me" },
+       { 0, 0 }
+};
+
+#endif
 
 void jobjects_register_dyn_offsets()
 {
+       register_dyn_entry_table(class_java_lang_Thread, dyn_entries_java_lang_Thread);
 }
 
 #endif // ENABLE_JAVASE