59 }
60
61 static jboolean
62 getValues(PacketInputStream *in, PacketOutputStream *out)
63 {
64 sharedGetFieldValues(in, out, JNI_FALSE);
65 return JNI_TRUE;
66 }
67
68
69 static jvmtiError
70 readFieldValue(JNIEnv *env, PacketInputStream *in, jclass clazz,
71 jobject object, jfieldID field, char *signature)
72 {
73 jvalue value;
74 jvmtiError error;
75
76 switch (signature[0]) {
77 case JDWP_TAG(ARRAY):
78 case JDWP_TAG(OBJECT):
79 value.l = inStream_readObjectRef(env, in);
80 JNI_FUNC_PTR(env,SetObjectField)(env, object, field, value.l);
81 break;
82
83 case JDWP_TAG(BYTE):
84 value.b = inStream_readByte(in);
85 JNI_FUNC_PTR(env,SetByteField)(env, object, field, value.b);
86 break;
87
88 case JDWP_TAG(CHAR):
89 value.c = inStream_readChar(in);
90 JNI_FUNC_PTR(env,SetCharField)(env, object, field, value.c);
91 break;
92
93 case JDWP_TAG(FLOAT):
94 value.f = inStream_readFloat(in);
95 JNI_FUNC_PTR(env,SetFloatField)(env, object, field, value.f);
96 break;
97
98 case JDWP_TAG(DOUBLE):
|
59 }
60
61 static jboolean
62 getValues(PacketInputStream *in, PacketOutputStream *out)
63 {
64 sharedGetFieldValues(in, out, JNI_FALSE);
65 return JNI_TRUE;
66 }
67
68
69 static jvmtiError
70 readFieldValue(JNIEnv *env, PacketInputStream *in, jclass clazz,
71 jobject object, jfieldID field, char *signature)
72 {
73 jvalue value;
74 jvmtiError error;
75
76 switch (signature[0]) {
77 case JDWP_TAG(ARRAY):
78 case JDWP_TAG(OBJECT):
79 case JDWP_TAG(INLINE_OBJECT):
80 value.l = inStream_readObjectRef(env, in);
81 JNI_FUNC_PTR(env,SetObjectField)(env, object, field, value.l);
82 break;
83
84 case JDWP_TAG(BYTE):
85 value.b = inStream_readByte(in);
86 JNI_FUNC_PTR(env,SetByteField)(env, object, field, value.b);
87 break;
88
89 case JDWP_TAG(CHAR):
90 value.c = inStream_readChar(in);
91 JNI_FUNC_PTR(env,SetCharField)(env, object, field, value.c);
92 break;
93
94 case JDWP_TAG(FLOAT):
95 value.f = inStream_readFloat(in);
96 JNI_FUNC_PTR(env,SetFloatField)(env, object, field, value.f);
97 break;
98
99 case JDWP_TAG(DOUBLE):
|