Fixed assert in flatc converting to text.
authorWouter van Oortmerssen <wvo@google.com>
Thu, 29 Oct 2015 00:40:33 +0000 (17:40 -0700)
committerWouter van Oortmerssen <wvo@google.com>
Thu, 29 Oct 2015 00:50:06 +0000 (17:50 -0700)
Change-Id: Idac375b22aa9beaba162084cc3396f5536a4e721
Tested: on Linux.

include/flatbuffers/flatbuffers.h
src/flatc.cpp

index e7100e3..41b3b26 100644 (file)
@@ -582,6 +582,11 @@ class FlatBufferBuilder FLATBUFFERS_FINAL_CLASS {
     buf_.fill(PaddingBytes(buf_.size(), elem_size));
   }
 
+  void PushFlatBuffer(const uint8_t *bytes, size_t size) {
+    PushBytes(bytes, size);
+    finished = true;
+  }
+
   void PushBytes(const uint8_t *bytes, size_t size) {
     buf_.push(bytes, size);
   }
index e3c74d2..b7bc7d9 100644 (file)
@@ -98,7 +98,7 @@ static void Error(const std::string &err, bool usage, bool show_exe_name) {
       "                  also implies --no-prefix.\n"
       "  --gen-includes  (deprecated), this is the default behavior.\n"
       "                  If the original behavior is required (no include\n"
-         "                  statements) use --no-includes.\n"
+    "                  statements) use --no-includes.\n"
       "  --no-includes   Don\'t generate include statements for included\n"
       "                  schemas the generated file depends on (C++).\n"
       "  --gen-mutable   Generate accessors that can mutate buffers in-place.\n"
@@ -201,13 +201,13 @@ int main(int argc, const char *argv[]) {
           ++file_it) {
       std::string contents;
       if (!flatbuffers::LoadFile(file_it->c_str(), true, &contents))
-        Error("unable to load file" + *file_it);
+        Error("unable to load file" + *file_it);
 
       bool is_binary = static_cast<size_t>(file_it - filenames.begin()) >=
                        binary_files_from;
       if (is_binary) {
         parser.builder_.Clear();
-        parser.builder_.PushBytes(
+        parser.builder_.PushFlatBuffer(
           reinterpret_cast<const uint8_t *>(contents.c_str()),
           contents.length());
         if (!raw_binary) {