/// <summary> /// Read an untagged value. /// </summary> private static object ReadUntaggedValue(JdwpPacket.DataReaderWriter readerWriter, Jdwp.Tag tag) { switch (tag) { case Jdwp.Tag.Array: case Jdwp.Tag.Object: case Jdwp.Tag.String: case Jdwp.Tag.Thread: case Jdwp.Tag.ThreadGroup: case Jdwp.Tag.ClassLoader: case Jdwp.Tag.ClassObject: return new ObjectId(readerWriter); case Jdwp.Tag.Byte: return readerWriter.GetByte(); case Jdwp.Tag.Char: return (char)readerWriter.GetInt16(); case Jdwp.Tag.Float: return readerWriter.GetFloat(); case Jdwp.Tag.Double: return readerWriter.GetDouble(); case Jdwp.Tag.Int: return readerWriter.GetInt(); case Jdwp.Tag.Long: return readerWriter.GetLong(); case Jdwp.Tag.Short: return readerWriter.GetInt16(); case Jdwp.Tag.Void: return null; case Jdwp.Tag.Boolean: return readerWriter.GetBoolean(); default: throw new ArgumentException("Unknown tag " + (int)tag); } }