diff options
author | Kyle Galloway <kgallowa@redhat.com> | 2007-04-09 20:30:20 +0000 |
---|---|---|
committer | Kyle Galloway <kgallowa@gcc.gnu.org> | 2007-04-09 20:30:20 +0000 |
commit | aa2473e4fcc82761d92c32ea7a459b8df8196864 (patch) | |
tree | 62049d983f02fe621abaebc533f5b1e3aafaeca8 /libjava/gnu | |
parent | a607b96e80f5790c88b80a8ac0b0c0dd88fe413b (diff) | |
download | gcc-aa2473e4fcc82761d92c32ea7a459b8df8196864.zip gcc-aa2473e4fcc82761d92c32ea7a459b8df8196864.tar.gz gcc-aa2473e4fcc82761d92c32ea7a459b8df8196864.tar.bz2 |
ArrayValue.java: New file.
2007-04-09 Kyle Galloway <kgallowa@redhat.com>
* classpath/gnu/classpath/jdwp/value/ArrayValue.java: New file.
* classpath/lib/gnu/classpath/jdwp/value/ArrayValue.class: New file.
* gnu/classpath/jdwp/ArrayValue.h: New file.
* gnu/classpath/jdwp/natVMFrame.cc (getValue): Add array case.
(setValue): Ditto.
From-SVN: r123680
Diffstat (limited to 'libjava/gnu')
-rw-r--r-- | libjava/gnu/classpath/jdwp/natVMFrame.cc | 15 | ||||
-rw-r--r-- | libjava/gnu/classpath/jdwp/value/ArrayValue.h | 41 |
2 files changed, 56 insertions, 0 deletions
diff --git a/libjava/gnu/classpath/jdwp/natVMFrame.cc b/libjava/gnu/classpath/jdwp/natVMFrame.cc index e32e733..6f2d523 100644 --- a/libjava/gnu/classpath/jdwp/natVMFrame.cc +++ b/libjava/gnu/classpath/jdwp/natVMFrame.cc @@ -24,6 +24,7 @@ details. */ #include <gnu/classpath/jdwp/exception/JdwpInternalErrorException.h> #include <gnu/classpath/jdwp/exception/TypeMismatchException.h> #include <gnu/classpath/jdwp/util/NullObject.h> +#include <gnu/classpath/jdwp/value/ArrayValue.h> #include <gnu/classpath/jdwp/value/ByteValue.h> #include <gnu/classpath/jdwp/value/BooleanValue.h> #include <gnu/classpath/jdwp/value/CharValue.h> @@ -240,6 +241,14 @@ gnu::classpath::jdwp::VMFrame::getValue (jint slot, jbyte sig) case 'V': value = new VoidValue (); break; + case '[': + { + Object *obj = getObjectJVMTI (env, thread, slot, depth, sig); + if (obj == NULL) + obj = new util::NullObject (); + value = new ArrayValue (obj); + break; + } default: Object *obj = getObjectJVMTI (env, thread, slot, depth, sig); if (obj == NULL) @@ -313,6 +322,12 @@ gnu::classpath::jdwp::VMFrame::setValue (jint slot, Value* value) } case 'V': break; + case '[': + { + ArrayValue *val = reinterpret_cast<ArrayValue *> (value); + setObjectJVMTI (env, thread, slot, depth, sig, val->getObject ()); + break; + } default: { ObjectValue *val = reinterpret_cast<ObjectValue *> (value); diff --git a/libjava/gnu/classpath/jdwp/value/ArrayValue.h b/libjava/gnu/classpath/jdwp/value/ArrayValue.h new file mode 100644 index 0000000..3c6e693 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/value/ArrayValue.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_value_ArrayValue__ +#define __gnu_classpath_jdwp_value_ArrayValue__ + +#pragma interface + +#include <gnu/classpath/jdwp/value/Value.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace value + { + class ArrayValue; + } + } + } + } +} + +class gnu::classpath::jdwp::value::ArrayValue : public ::gnu::classpath::jdwp::value::Value +{ + +public: + ArrayValue(::java::lang::Object *); +public: // actually protected + virtual ::java::lang::Object * getObject(); + virtual void write(::java::io::DataOutputStream *); +public: // actually package-private + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_value_ArrayValue__ |