fill in a bit

This commit is contained in:
David Renshaw 2014-10-07 17:05:37 -04:00
parent 89ea97a401
commit 3aefbb76e0
2 changed files with 19 additions and 9 deletions

View file

@ -37,13 +37,12 @@ public final class StructList {
} }
public final Builder<ElementBuilder> fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) { public final Builder<ElementBuilder> fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
throw new Error(); return WireHelpers.getWritableStructListPointer(this,
/* return WireHelpers.getWritableStructListPointer(this,
builder.pointer, builder.pointer,
builder.segment, builder.segment,
FieldSize.POINTER, factory.structSize(),
defaultSegment, defaultSegment,
defaultOffset,0); */ defaultOffset);
} }
public final Builder<ElementBuilder> initFromPointerBuilder(PointerBuilder builder, public final Builder<ElementBuilder> initFromPointerBuilder(PointerBuilder builder,

View file

@ -296,6 +296,15 @@ final class WireHelpers {
} }
} }
static <T> T getWritableStructListPointer(FromPointerBuilder<T> factory,
int origRefOffset,
SegmentBuilder origSegment,
StructSize elementSize,
SegmentReader defaultSegment,
int defaultOffset) {
throw new Error("getWritableStructListPointer is unimplemented");
}
// size is in bytes // size is in bytes
static Text.Builder initTextPointer(int refOffset, static Text.Builder initTextPointer(int refOffset,
SegmentBuilder segment, SegmentBuilder segment,
@ -435,9 +444,11 @@ final class WireHelpers {
long ref = WirePointer.get(segment.buffer, refOffset); long ref = WirePointer.get(segment.buffer, refOffset);
if (WirePointer.isNull(ref)) { if (WirePointer.isNull(ref)) {
if (defaultSegment == null) { if (defaultSegment == null) {
throw new Error();//return new StructReader(); return factory.fromStructReader(SegmentReader.EMPTY, 0, 0, 0, (short) 0, (byte) 0, 0x7fffffff);
} else { } else {
return (new PointerReader(defaultSegment, defaultOffset, 0x7fffffff)).getStruct(factory); segment = defaultSegment;
refOffset = defaultOffset;
ref = WirePointer.get(segment.buffer, refOffset);
} }
} }