Fix typed flatbuffer merge function

Change-Id: I2baeb5ab5a8fc48584466110f8d622838c2f05a0
diff --git a/aos/flatbuffer_merge.h b/aos/flatbuffer_merge.h
index afb4f69..dafba34 100644
--- a/aos/flatbuffer_merge.h
+++ b/aos/flatbuffer_merge.h
@@ -54,9 +54,12 @@
 template <class T>
 inline aos::FlatbufferDetachedBuffer<T> MergeFlatBuffers(const T *fb1,
                                                          const T *fb2) {
-  return aos::FlatbufferDetachedBuffer<T>(MergeFlatBuffers(
-      T::MiniReflectTypeTable(), reinterpret_cast<const uint8_t *>(fb1),
-      reinterpret_cast<const uint8_t *>(fb2)));
+  flatbuffers::FlatBufferBuilder fbb;
+  fbb.ForceDefaults(1);
+  fbb.Finish(MergeFlatBuffers<T>(
+      reinterpret_cast<const flatbuffers::Table *>(fb1),
+      reinterpret_cast<const flatbuffers::Table *>(fb2), &fbb));
+  return aos::FlatbufferDetachedBuffer<T>(fbb.Release());
 }
 
 template <class T>