fix one bug, find another
This commit is contained in:
parent
1f1a5bfd9a
commit
fbb23f625e
5 changed files with 10 additions and 8 deletions
|
@ -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() + ": ");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in a new issue