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) {
throw new Error();
/* return WireHelpers.getWritableStructListPointer(this,
return WireHelpers.getWritableStructListPointer(this,
builder.pointer,
builder.segment,
FieldSize.POINTER,
factory.structSize(),
defaultSegment,
defaultOffset,0); */
defaultOffset);
}
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
static Text.Builder initTextPointer(int refOffset,
SegmentBuilder segment,
@ -435,9 +444,11 @@ final class WireHelpers {
long ref = WirePointer.get(segment.buffer, refOffset);
if (WirePointer.isNull(ref)) {
if (defaultSegment == null) {
throw new Error();//return new StructReader();
return factory.fromStructReader(SegmentReader.EMPTY, 0, 0, 0, (short) 0, (byte) 0, 0x7fffffff);
} else {
return (new PointerReader(defaultSegment, defaultOffset, 0x7fffffff)).getStruct(factory);
segment = defaultSegment;
refOffset = defaultOffset;
ref = WirePointer.get(segment.buffer, refOffset);
}
}