* Removed all Id tags.
[cacao.git] / src / native / vm / java_lang_Object.c
index e96faf429053feb28535335abbf7381731bc904c..1438afec7b915d87f98f3a8e5ba82e12380c316d 100644 (file)
@@ -22,8 +22,6 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: java_lang_VMObject.c 6213 2006-12-18 17:36:06Z twisti $
-
 */
 
 
  */
 java_lang_Class *_Jv_java_lang_Object_getClass(java_lang_Object *obj)
 {
-       java_objectheader *o;
-       classinfo         *c;
-
-       o = (java_objectheader *) obj;
+       classinfo     *c;
 
-       if (o == NULL) {
+       if (obj == NULL) {
                exceptions_throw_nullpointerexception();
                return NULL;
        }
 
-       c = o->vftbl->class;
+       LLNI_class_get(obj, c);
 
-       return (java_lang_Class *) c;
+       return LLNI_classinfo_wrap(c);
 }
 
 
@@ -123,6 +118,12 @@ void _Jv_java_lang_Object_wait(java_lang_Object *o, s8 ms, s4 ns)
        if (jvmti) jvmti_MonitorWaiting(true, o, ms);
 #endif
 
+    if (ms < 0) {
+/*             exceptions_throw_illegalargumentexception("argument out of range"); */
+               exceptions_throw_illegalargumentexception();
+               return;
+       }
+
 #if defined(ENABLE_THREADS)
        lock_wait_for_object(&LLNI_field_direct(o, header), ms, ns);
 #endif
@@ -144,10 +145,10 @@ void _Jv_java_lang_Object_wait(java_lang_Object *o, s8 ms, s4 ns)
  */
 java_lang_Object *_Jv_java_lang_Object_clone(java_lang_Cloneable *this)
 {
-       java_objectheader *o;
-       java_objectheader *co;
+       java_handle_t *o;
+       java_handle_t *co;
 
-       o = (java_objectheader *) this;
+       o = (java_handle_t *) this;
 
        co = builtin_clone(NULL, o);