From dcff630527292e8d64ccaedbd5b92bee57a19091 Mon Sep 17 00:00:00 2001 From: kgallowa Date: Mon, 9 Apr 2007 20:30:20 +0000 Subject: 2007-04-09 Kyle Galloway * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123680 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/gnu/classpath/jdwp/natVMFrame.cc | 15 ++++++++++ libjava/gnu/classpath/jdwp/value/ArrayValue.h | 41 +++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 libjava/gnu/classpath/jdwp/value/ArrayValue.h (limited to 'libjava/gnu') 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 #include #include +#include #include #include #include @@ -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 (value); + setObjectJVMTI (env, thread, slot, depth, sig, val->getObject ()); + break; + } default: { ObjectValue *val = reinterpret_cast (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 +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__ -- cgit v1.2.3