fix one bug, find another

This commit is contained in:
David Renshaw 2014-05-11 09:48:34 -04:00
parent 1f1a5bfd9a
commit fbb23f625e
5 changed files with 10 additions and 8 deletions

View file

@ -9,10 +9,11 @@ public class AddressbookMain {
System.out.println("printing addressbook ...");
capnp.MessageReader message = capnp.InputStreamMessageReader.create(System.in);
Addressbook.AddressBook.Reader addressbook = message.getRoot(Addressbook.AddressBook.Reader.factory);
capnp.StructList.Reader<Addressbook.Person> people = addressbook.getPeople();
capnp.StructList.Reader<Addressbook.Person.Reader> people = addressbook.getPeople();
int size = people.size();
for(int ii = 0; ii < size; ++ii) {
people.get(ii);
Addressbook.Person.Reader person = people.get(ii);
System.out.println(person.getName().toString() + ": ");
}
}

View file

@ -46,6 +46,7 @@ public class InputStreamMessageReader {
throw new IOException("too many segments");
}
// in words
Vector<Integer> moreSizes = new Vector<Integer>();
if (segmentCount > 1) {
@ -63,13 +64,13 @@ public class InputStreamMessageReader {
ByteBuffer[] segmentSlices = new ByteBuffer[segmentCount];
segmentSlices[0] = ByteBuffer.wrap(allSegments, 0, segment0Size);
segmentSlices[0] = ByteBuffer.wrap(allSegments, 0, segment0Size * 8);
segmentSlices[0].order(ByteOrder.LITTLE_ENDIAN);
int offset = segment0Size;
for (int ii = 1; ii < segmentCount; ++ii) {
segmentSlices[ii] = ByteBuffer.wrap(allSegments, offset, moreSizes.get(ii - 1));
segmentSlices[ii] = ByteBuffer.wrap(allSegments, offset * 8, moreSizes.get(ii - 1) * 8);
segmentSlices[ii].order(ByteOrder.LITTLE_ENDIAN);
offset += moreSizes.get(ii - 1);
}

View file

@ -4,7 +4,7 @@ public class ListReader {
SegmentReader segment;
int ptr; // byte offset to front of list
int elementCount;
int step;
int step; // in bits
int structDataSize; // in bits
short structPointerCount;
int nestingLimit;
@ -46,7 +46,7 @@ public class ListReader {
int structData = this.ptr + (indexBit / 8);
int structPointers = structData + (this.structDataSize / 8);
return new StructReader(this.segment, structData, structPointers, this.structDataSize,
return new StructReader(this.segment, structData, structPointers / 8, this.structDataSize,
this.structPointerCount, (byte)(indexBit % 8), this.nestingLimit - 1);
}
}

View file

@ -70,7 +70,7 @@ class WireHelpers {
public static Text.Reader readTextPointer(SegmentReader segment,
WirePointer ref) {
ref.target();
WordPointer ptr = ref.target();
ListPointer listPtr = new ListPointer(ref);
return new Text.Reader(listPtr);
}

View file

@ -22,7 +22,7 @@ class WirePointer {
}
public int offset_and_kind() {
return this.buffer.getInt(buffer_offset * 8);
return this.buffer.getInt(this.buffer_offset * 8);
}
public byte kind() {