diff options
Diffstat (limited to 'libjava/java/io/natVMObjectStreamClass.cc')
-rw-r--r-- | libjava/java/io/natVMObjectStreamClass.cc | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/libjava/java/io/natVMObjectStreamClass.cc b/libjava/java/io/natVMObjectStreamClass.cc new file mode 100644 index 000000000..847b540f0 --- /dev/null +++ b/libjava/java/io/natVMObjectStreamClass.cc @@ -0,0 +1,87 @@ +// natVMObjectStreamClass.cc - Native part of VMObjectStreamClass class. + +/* Copyright (C) 2003 Free Software Foundation + + This VMObjectStreamClass is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the ObjectInputStream "LIBGCJ_LICENSE" for +details. */ + +#include <gcj/cni.h> +#include <jvm.h> + +#include <java/io/VMObjectStreamClass.h> +#include <java/lang/Class.h> +#include <java/lang/reflect/Field.h> + +using namespace java::lang::reflect; + +jboolean +java::io::VMObjectStreamClass::hasClassInitializer (jclass klass) +{ + if (klass->isPrimitive()) + return false; + _Jv_Method *meth = _Jv_GetMethodLocal(klass, gcj::clinit_name, + gcj::void_signature); + return (meth != NULL); +} + +void +java::io::VMObjectStreamClass::setDoubleNative (Field *f, jobject obj, + jdouble val) +{ + f->setDouble (NULL, obj, val, false); +} + +void +java::io::VMObjectStreamClass::setFloatNative (Field *f, jobject obj, + jfloat val) +{ + f->setFloat (NULL, obj, val, false); +} + +void +java::io::VMObjectStreamClass::setLongNative (Field *f, jobject obj, jlong val) +{ + f->setLong (NULL, obj, val, false); +} + +void +java::io::VMObjectStreamClass::setIntNative (Field *f, jobject obj, jint val) +{ + f->setInt (NULL, obj, val, false); +} + +void +java::io::VMObjectStreamClass::setShortNative (Field *f, jobject obj, + jshort val) +{ + f->setShort (NULL, obj, val, false); +} + +void +java::io::VMObjectStreamClass::setCharNative (Field *f, jobject obj, jchar val) +{ + f->setChar (NULL, obj, val, false); +} + +void +java::io::VMObjectStreamClass::setByteNative (Field *f, jobject obj, jbyte val) +{ + f->setByte (NULL, obj, val, false); +} + +void +java::io::VMObjectStreamClass::setBooleanNative (Field *f, jobject obj, + jboolean val) +{ + f->setBoolean (NULL, obj, val, false); +} + +void +java::io::VMObjectStreamClass::setObjectNative (Field *f, jobject obj, + jobject val) +{ + f->set (NULL, obj, val, f->getType(), false); +} |