From 406e9abc87b3ca1565278333d0d89057dbf79e01 Mon Sep 17 00:00:00 2001 From: rowan Date: Fri, 14 Dec 2018 06:49:57 +1100 Subject: [PATCH] fix Feather tests --- src/FlatBuffers.jl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/FlatBuffers.jl b/src/FlatBuffers.jl index 10e88f4..1c9804b 100644 --- a/src/FlatBuffers.jl +++ b/src/FlatBuffers.jl @@ -17,6 +17,8 @@ function deserialize(stream::IO, ::Type{T}) where {T} read(T, read(stream)) end +struct UndefinedType end +const Undefined = UndefinedType() getfieldvalue(obj::T, i) where {T} = isdefined(obj, i) ? getfield(obj, i) : Undefined getprevfieldvalue(obj::T, i) where {T} = i == 1 ? missing : getfieldvalue(obj, i - 1) @@ -544,6 +546,11 @@ function buildbuffer!(b::Builder{T1}, arg::T, prev=nothing) where {T1<:Any, T<:A # build a table type # check for string/array/table types numfields = length(T.types) + # early exit for empty objects + if numfields == 0 + startobject(b, 0) + return endobject(b) + end os = Int[] isdefault = falses(numfields) for i = 1:numfields