Lines Matching refs:stream

27 #include "stream.h"
41 inStream_init(PacketInputStream *stream, jdwpPacket packet)
43 stream->packet = packet;
44 stream->error = JDWP_ERROR(NONE);
45 stream->left = packet.type.cmd.len;
46 stream->current = packet.type.cmd.data;
47 stream->refs = bagCreateBag(sizeof(jobject), INITIAL_REF_ALLOC);
48 if (stream->refs == NULL) {
49 stream->error = JDWP_ERROR(OUT_OF_MEMORY);
54 inStream_id(PacketInputStream *stream)
56 return stream->packet.type.cmd.id;
60 inStream_command(PacketInputStream *stream)
62 return stream->packet.type.cmd.cmd;
66 readBytes(PacketInputStream *stream, void *dest, int size)
68 if (stream->error) {
69 return stream->error;
72 if (size > stream->left) {
73 stream->error = JDWP_ERROR(INTERNAL);
74 return stream->error;
78 (void)memcpy(dest, stream->current, size);
80 stream->current += size;
81 stream->left -= size;
83 return stream->error;
87 inStream_skipBytes(PacketInputStream *stream, jint size) {
88 return readBytes(stream, NULL, size);
92 inStream_readBoolean(PacketInputStream *stream)
95 (void)readBytes(stream, &flag, sizeof(flag));
96 if (stream->error) {
104 inStream_readByte(PacketInputStream *stream)
107 (void)readBytes(stream, &val, sizeof(val));
112 inStream_readBytes(PacketInputStream *stream, int length, jbyte *buf)
114 (void)readBytes(stream, buf, length);
119 inStream_readChar(PacketInputStream *stream)
122 (void)readBytes(stream, &val, sizeof(val));
127 inStream_readShort(PacketInputStream *stream)
130 (void)readBytes(stream, &val, sizeof(val));
135 inStream_readInt(PacketInputStream *stream)
138 (void)readBytes(stream, &val, sizeof(val));
143 inStream_readLong(PacketInputStream *stream)
146 (void)readBytes(stream, &val, sizeof(val));
151 inStream_readFloat(PacketInputStream *stream)
154 (void)readBytes(stream, &val, sizeof(val));
159 inStream_readDouble(PacketInputStream *stream)
162 (void)readBytes(stream, &val, sizeof(val));
167 * Read an object from the stream. The ID used in the wire protocol
170 * since it is freed when this stream is destroyed.
173 inStream_readObjectRef(JNIEnv *env, PacketInputStream *stream)
177 jlong id = inStream_readLong(stream);
178 if (stream->error) {
187 stream->error = JDWP_ERROR(INVALID_OBJECT);
191 refPtr = bagAdd(stream->refs);
202 * Read a raw object id from the stream. This should be used rarely.
208 inStream_readObjectID(PacketInputStream *stream)
210 return inStream_readLong(stream);
214 inStream_readClassRef(JNIEnv *env, PacketInputStream *stream)
216 jobject object = inStream_readObjectRef(env, stream);
225 stream->error = JDWP_ERROR(INVALID_CLASS);
232 inStream_readThreadRef(JNIEnv *env, PacketInputStream *stream)
234 jobject object = inStream_readObjectRef(env, stream);
243 stream->error = JDWP_ERROR(INVALID_THREAD);
250 inStream_readThreadGroupRef(JNIEnv *env, PacketInputStream *stream)
252 jobject object = inStream_readObjectRef(env, stream);
261 stream->error = JDWP_ERROR(INVALID_THREAD_GROUP);
268 inStream_readStringRef(JNIEnv *env, PacketInputStream *stream)
270 jobject object = inStream_readObjectRef(env, stream);
279 stream->error = JDWP_ERROR(INVALID_STRING);
286 inStream_readClassLoaderRef(JNIEnv *env, PacketInputStream *stream)
288 jobject object = inStream_readObjectRef(env, stream);
297 stream->error = JDWP_ERROR(INVALID_CLASS_LOADER);
304 inStream_readArrayRef(JNIEnv *env, PacketInputStream *stream)
306 jobject object = inStream_readObjectRef(env, stream);
315 stream->error = JDWP_ERROR(INVALID_ARRAY);
326 inStream_readFrameID(PacketInputStream *stream)
330 return (FrameID)inStream_readLong(stream);
333 return (FrameID)inStream_readInt(stream);
338 inStream_readMethodID(PacketInputStream *stream)
342 return (jmethodID)(intptr_t)inStream_readLong(stream);
345 return (jmethodID)(intptr_t)inStream_readInt(stream);
350 inStream_readFieldID(PacketInputStream *stream)
354 return (jfieldID)(intptr_t)inStream_readLong(stream);
357 return (jfieldID)(intptr_t)inStream_readInt(stream);
362 inStream_readLocation(PacketInputStream *stream)
364 return (jlocation)inStream_readLong(stream);
368 inStream_readString(PacketInputStream *stream)
373 length = inStream_readInt(stream);
378 (void)readBytes(stream, string, length);
399 inStream_endOfInput(PacketInputStream *stream)
401 return (stream->left > 0);
405 inStream_error(PacketInputStream *stream)
407 return stream->error;
411 inStream_clearError(PacketInputStream *stream) {
412 stream->error = JDWP_ERROR(NONE);
416 inStream_readValue(PacketInputStream *stream, jbyte *typeKeyPtr)
419 jbyte typeKey = inStream_readByte(stream);
420 if (stream->error) {
426 value.l = inStream_readObjectRef(getEnv(), stream);
430 value.b = inStream_readByte(stream);
434 value.c = inStream_readChar(stream);
438 value.f = inStream_readFloat(stream);
442 value.d = inStream_readDouble(stream);
446 value.i = inStream_readInt(stream);
450 value.j = inStream_readLong(stream);
454 value.s = inStream_readShort(stream);
458 value.z = inStream_readBoolean(stream);
461 stream->error = JDWP_ERROR(INVALID_TAG);
481 inStream_destroy(PacketInputStream *stream)
483 if (stream->packet.type.cmd.data != NULL) {
484 jvmtiDeallocate(stream->packet.type.cmd.data);
487 (void)bagEnumerateOver(stream->refs, deleteRef, (void *)getEnv());
488 bagDestroyBag(stream->refs);