diff options
Diffstat (limited to 'libjava/gnu/classpath/jdwp')
| -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 e32e7334136..6f2d5233233 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 00000000000..3c6e6935e30 --- /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__ |

