diff --git a/compiler/src/main/cpp/capnpc-java.c++ b/compiler/src/main/cpp/capnpc-java.c++ index 35d6f09..8a23a7a 100644 --- a/compiler/src/main/cpp/capnpc-java.c++ +++ b/compiler/src/main/cpp/capnpc-java.c++ @@ -1081,7 +1081,8 @@ private: spaces(indent), " public final ", builderClass, " get", titleCase, "() {\n", - spaces(indent), " return (", listFactory, ").fromPointerBuilder(_builder.getPointerField(", offset, "));\n", + spaces(indent), " return (", listFactory, ").fromPointerBuilder(_builder.getPointerField(", offset, "),", + defaultParams, ");\n", spaces(indent), " }\n", spaces(indent), " public final void set", titleCase, "(", readerClass, " value) {\n", diff --git a/runtime/src/main/java/org/capnproto/DataList.java b/runtime/src/main/java/org/capnproto/DataList.java index de1623b..d8ee63f 100644 --- a/runtime/src/main/java/org/capnproto/DataList.java +++ b/runtime/src/main/java/org/capnproto/DataList.java @@ -6,8 +6,8 @@ public final class DataList { return new Reader(reader.getList(FieldSize.POINTER, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.POINTER)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.POINTER, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { diff --git a/runtime/src/main/java/org/capnproto/EnumList.java b/runtime/src/main/java/org/capnproto/EnumList.java index 28b0382..edd7e70 100644 --- a/runtime/src/main/java/org/capnproto/EnumList.java +++ b/runtime/src/main/java/org/capnproto/EnumList.java @@ -20,8 +20,8 @@ public class EnumList { return new Reader(values, reader.getList(FieldSize.TWO_BYTES, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(values, builder.getList(FieldSize.TWO_BYTES)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(values, builder.getList(FieldSize.TWO_BYTES, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { diff --git a/runtime/src/main/java/org/capnproto/FromPointerBuilder.java b/runtime/src/main/java/org/capnproto/FromPointerBuilder.java index 72b640c..37f19e5 100644 --- a/runtime/src/main/java/org/capnproto/FromPointerBuilder.java +++ b/runtime/src/main/java/org/capnproto/FromPointerBuilder.java @@ -1,6 +1,6 @@ package org.capnproto; public interface FromPointerBuilder { - T fromPointerBuilder(PointerBuilder builder); + T fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset); T initFromPointerBuilder(PointerBuilder value, int size); } diff --git a/runtime/src/main/java/org/capnproto/ListList.java b/runtime/src/main/java/org/capnproto/ListList.java index b63c4f2..d65a864 100644 --- a/runtime/src/main/java/org/capnproto/ListList.java +++ b/runtime/src/main/java/org/capnproto/ListList.java @@ -14,8 +14,8 @@ public final class ListList { return new Reader(factory, reader.getList(FieldSize.POINTER, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(factory, builder.getList(FieldSize.POINTER)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(factory, builder.getList(FieldSize.POINTER, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { @@ -61,7 +61,7 @@ public final class ListList { } public final T get(int index) { - return this.factory.fromPointerBuilder(this.builder.getPointerElement(index)); + return this.factory.fromPointerBuilder(this.builder.getPointerElement(index), null, 0); } } } diff --git a/runtime/src/main/java/org/capnproto/PointerBuilder.java b/runtime/src/main/java/org/capnproto/PointerBuilder.java index 8e040ca..086c4d7 100644 --- a/runtime/src/main/java/org/capnproto/PointerBuilder.java +++ b/runtime/src/main/java/org/capnproto/PointerBuilder.java @@ -25,11 +25,11 @@ public final class PointerBuilder { return WireHelpers.getWritableStructPointer(this.pointer, this.segment, size, defaultBuffer, defaultOffset); } - public final ListBuilder getList(byte elementSize) { + public final ListBuilder getList(byte elementSize, SegmentReader defaultBuffer, int defaultOffset) { return WireHelpers.getWritableListPointer(this.pointer, this.segment, elementSize); } - public final ListBuilder getStructList(StructSize elementSize) { + public final ListBuilder getStructList(StructSize elementSize, SegmentReader defaultSegment, int defaultOffset) { throw new Error("unimplemented"); } diff --git a/runtime/src/main/java/org/capnproto/PrimitiveList.java b/runtime/src/main/java/org/capnproto/PrimitiveList.java index 2b639e8..30bc723 100644 --- a/runtime/src/main/java/org/capnproto/PrimitiveList.java +++ b/runtime/src/main/java/org/capnproto/PrimitiveList.java @@ -7,8 +7,8 @@ public class PrimitiveList { return new Reader(reader.getList(FieldSize.VOID, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.VOID)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.VOID, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { @@ -54,8 +54,8 @@ public class PrimitiveList { return new Reader(reader.getList(FieldSize.BIT, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.BIT)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.BIT, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { @@ -107,8 +107,8 @@ public class PrimitiveList { return new Reader(reader.getList(FieldSize.BYTE, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.BYTE)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.BYTE, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { @@ -161,8 +161,8 @@ public class PrimitiveList { return new Reader(reader.getList(FieldSize.TWO_BYTES, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.TWO_BYTES)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.TWO_BYTES, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { @@ -215,8 +215,8 @@ public class PrimitiveList { return new Reader(reader.getList(FieldSize.FOUR_BYTES, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.FOUR_BYTES)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.FOUR_BYTES, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { @@ -268,8 +268,8 @@ public class PrimitiveList { return new Reader(reader.getList(FieldSize.FOUR_BYTES, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.FOUR_BYTES)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.FOUR_BYTES, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { @@ -319,11 +319,11 @@ public class PrimitiveList { public static class Long { public static final class Factory implements ListFactory { public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) { - return new Reader(reader.getList(FieldSize.EIGHT_BYTES)); + return new Reader(reader.getList(FieldSize.EIGHT_BYTES, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.EIGHT_BYTES)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.EIGHT_BYTES, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { @@ -375,8 +375,8 @@ public class PrimitiveList { return new Reader(reader.getList(FieldSize.EIGHT_BYTES, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.EIGHT_BYTES)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.EIGHT_BYTES, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { diff --git a/runtime/src/main/java/org/capnproto/StructList.java b/runtime/src/main/java/org/capnproto/StructList.java index c6cd9d9..36825de 100644 --- a/runtime/src/main/java/org/capnproto/StructList.java +++ b/runtime/src/main/java/org/capnproto/StructList.java @@ -14,8 +14,8 @@ public final class StructList { return new Reader(factory, reader.getList(FieldSize.INLINE_COMPOSITE, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(factory, builder.getStructList(this.factory.structSize())); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(factory, builder.getStructList(this.factory.structSize(), defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) { diff --git a/runtime/src/main/java/org/capnproto/TextList.java b/runtime/src/main/java/org/capnproto/TextList.java index 84e4e1e..811d7e9 100644 --- a/runtime/src/main/java/org/capnproto/TextList.java +++ b/runtime/src/main/java/org/capnproto/TextList.java @@ -6,8 +6,8 @@ public final class TextList { return new Reader(reader.getList(FieldSize.POINTER, defaultSegment, defaultOffset)); } - public final Builder fromPointerBuilder(PointerBuilder builder) { - return new Builder(builder.getList(FieldSize.POINTER)); + public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { + return new Builder(builder.getList(FieldSize.POINTER, defaultSegment, defaultOffset)); } public final Builder initFromPointerBuilder(PointerBuilder builder, int size) {