1 // natVMObjectStreamClass.cc - Native part of VMObjectStreamClass class.
3 /* Copyright (C) 2003 Free Software Foundation
5 This VMObjectStreamClass is part of libgcj.
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License. Please consult the ObjectInputStream "LIBGCJ_LICENSE" for
14 #include <java/io/VMObjectStreamClass.h>
15 #include <java/lang/Class.h>
16 #include <java/lang/reflect/Field.h>
18 using namespace java::lang::reflect
;
21 java::io::VMObjectStreamClass::hasClassInitializer (jclass klass
)
23 if (klass
->isPrimitive())
25 _Jv_Method
*meth
= _Jv_GetMethodLocal(klass
, gcj::clinit_name
,
27 return (meth
!= NULL
);
31 java::io::VMObjectStreamClass::setDoubleNative (Field
*f
, jobject obj
,
34 f
->setDouble (NULL
, obj
, val
, false);
38 java::io::VMObjectStreamClass::setFloatNative (Field
*f
, jobject obj
,
41 f
->setFloat (NULL
, obj
, val
, false);
45 java::io::VMObjectStreamClass::setLongNative (Field
*f
, jobject obj
, jlong val
)
47 f
->setLong (NULL
, obj
, val
, false);
51 java::io::VMObjectStreamClass::setIntNative (Field
*f
, jobject obj
, jint val
)
53 f
->setInt (NULL
, obj
, val
, false);
57 java::io::VMObjectStreamClass::setShortNative (Field
*f
, jobject obj
,
60 f
->setShort (NULL
, obj
, val
, false);
64 java::io::VMObjectStreamClass::setCharNative (Field
*f
, jobject obj
, jchar val
)
66 f
->setChar (NULL
, obj
, val
, false);
70 java::io::VMObjectStreamClass::setByteNative (Field
*f
, jobject obj
, jbyte val
)
72 f
->setByte (NULL
, obj
, val
, false);
76 java::io::VMObjectStreamClass::setBooleanNative (Field
*f
, jobject obj
,
79 f
->setBoolean (NULL
, obj
, val
, false);
83 java::io::VMObjectStreamClass::setObjectNative (Field
*f
, jobject obj
,
86 f
->set (NULL
, obj
, val
, f
->getType(), false);