fix accidental invocation of _unsafe_load_tuple (#124)

* fix accidental invocation of _unsafe_load_tuple

* bump Project.toml
diff --git a/Project.toml b/Project.toml
index 716b596..650650f 100644
--- a/Project.toml
+++ b/Project.toml
@@ -1,7 +1,7 @@
 name = "Arrow"
 uuid = "69666777-d1a9-59fb-9406-91d4454c9d45"
 authors = ["quinnj <quinn.jacobd@gmail.com>"]
-version = "1.2.3"
+version = "1.2.4"
 
 [deps]
 BitIntegers = "c3b6d118-76ef-56ca-8cc7-ebb389d030a1"
diff --git a/src/arraytypes/fixedsizelist.jl b/src/arraytypes/fixedsizelist.jl
index d032299..86e35d8 100644
--- a/src/arraytypes/fixedsizelist.jl
+++ b/src/arraytypes/fixedsizelist.jl
@@ -38,7 +38,7 @@
         return missing
     else
         off = (i - 1) * N
-        if X === T && isbitstype(Y)
+        if X === T && isbitstype(Y) && l.data isa Vector{UInt8}
             tup = _unsafe_load_tuple(NTuple{N,Y}, l.data, off + 1)
         else
             tup = ntuple(j->l.data[off + j], N)
diff --git a/test/runtests.jl b/test/runtests.jl
index 512c767..8edc57c 100644
--- a/test/runtests.jl
+++ b/test/runtests.jl
@@ -236,12 +236,19 @@
 @test eltype(av) == String
 
 # 121
-
 a = PooledArray(repeat(string.('S', 1:130), inner=5), compress=true)
 @test eltype(a.refs) == UInt8
 av = Arrow.toarrowvector(a)
 @test eltype(av.indices) == Int16
 
+# 123
+t = (x = collect(zip(rand(10), rand(10))),)
+io = IOBuffer()
+Arrow.write(io, t)
+seekstart(io)
+t2 = Arrow.Table(io)
+@test t2.x == t.x
+
 end # @testset "misc"
 
 end