1. 09 Feb, 2017 1 commit
  2. 08 Feb, 2017 5 commits
  3. 01 Feb, 2017 2 commits
  4. 30 Jan, 2017 2 commits
  5. 27 Jan, 2017 4 commits
  6. 25 Jan, 2017 4 commits
  7. 24 Jan, 2017 2 commits
  8. 23 Jan, 2017 1 commit
  9. 22 Jan, 2017 1 commit
  10. 19 Jan, 2017 3 commits
    • Wouter van Oortmerssen's avatar
      More native code gen functionality. · 3f936c56
      Wouter van Oortmerssen authored
      Allow tables to be mapped to native types directly.  For example, a table
      representing a vector3 (eg. table Vec3 { x:float; y:float; z:float; }) can
      be mapped to a "mathfu::vec3" native type in NativeTables.  This requires
      users to provide Pack and UnPack functions that convert between the
      Table and native types.  This is done by adding the "native_type" attribute
      to the table definition.
      
      To support user-defined flatbuffers::Pack and flatbuffers::UnPack functions,
      support a "native_include" markup that will generate a corresponding
      
      Also add an UnPackTo function which allows users to pass in a pointer to
      a NativeTable object into which to UnPack the Table.  The existing UnPack
      function is now simply:
      
        NativeTable* UnPack() {
          NativeTable* obj = new NativeTable();
          Table::UnPackTo(obj);
          return obj;
        }
      
      Finally, allow native types to be given a default value as well which are
      set in the NativeTable constructor.  This is done by providing a
      "native_default" attribute to the member of a table.
      
      Change-Id: Ic45cb48b0e6d7cfa5734b24819e54aa96d847cfd
      3f936c56
    • Wouter van Oortmerssen's avatar
      Add no-op for padding variables to prevent clang compiler warning. · 42a265b4
      Wouter van Oortmerssen authored
      Change-Id: I119ee7109bfa2b0be0f468d2b2be459f45d1bb11
      42a265b4
    • Wouter van Oortmerssen's avatar
      Fix compiler warning on Visual Studio. · 4bc4979a
      Wouter van Oortmerssen authored
      Change-Id: Ifda5f2c32c6484508d5e12a463d6373798f1f523
      4bc4979a
  11. 18 Jan, 2017 3 commits
  12. 14 Jan, 2017 2 commits
    • Wouter van Oortmerssen's avatar
      Fix unused field warning in clang. · 19101826
      Wouter van Oortmerssen authored
      Change-Id: I71d590a1e5b2709f0e2dcf97faaebda5cb918fc7
      Tested: on Linux.
      19101826
    • Wouter van Oortmerssen's avatar
      Add CodeWriter utility class. · 7b94eab2
      Wouter van Oortmerssen authored
      Helps simplify code generation code.  Instead of this:
        code += "inline const " + cpp_qualified_name + " *Get";
        code += name;
        code += "(const void *buf) {\n  return flatbuffers::GetRoot<";
        code += cpp_qualified_name + ">(buf);\n}\n\n";
      
      You do this:
        code.SetValue("NAME", struct_def.name);
        code.SetValue("CPP_NAME", cpp_qualified_name);
        code += "inline const {{CPP_NAME}} *Get{{NAME}}(const void *buf) {";
        code += "  return flatbuffers::GetRoot<{{CPP_NAME}}>(buf);";
        code += "}";
        code += "";
      
      Updated the CPP code generator to use the CodeWriter class.  Most of the
      changes in the generated code are white-space changes, esp. around new
      lines (since the code generator class automatically appends new lines
      when appending a string).  Actual code changes include:
      
      * Renamed "rehasher" to "_rehasher" for consistency with other args in
        Pack function.
      
      * Renamed "union_obj" to "obj: in UnPack function.
      
      * Always do "(void)_o;" to prevent unused variable warning in Create
        function (instead of only doing it if there are no fields) in order
        to avoid two-passes.
      
      * Renamed padding variables from __paddingX to paddingX__.
        "Each name that contains a double underscore (_ _) [...] is reserved
         to the implementation for any use."  C++ standards 17.4.3.1.2.
      
      * Add braces around switch cases.
      
      * Calculate index as a separate statement in EnumName function, eg.
          const size_t index = ...;
          return EnumNamesX()[index];
        vs.
          return EnumNamesX()[...];
      
      * Stored end table offset in variable in Finish() functions, eg.
          const auto end = fbb_.EndTable(start_, ...);
          auto o = flatbuffers::Offset<T>(end);
        vs.
          auto o = flatbuffers::Offset<T>(fbb_.EndTable(start, ...));
      
      * Separate reinterpret_cast calls from function calls in Union
        functions, eg.
          auto ptr = reinterpret_cast<const T *>(obj);
          return ptr->UnPack(resolver);
        vs.
          return reinterpret_cast<const T *>(obj)->UnPack(resolver);
      
      * Removed unecessary (void)(padding__X) no-ops from constructors, eg.
          Test(int16_t a, int8_t b) : ... {
            (void)__padding0;  // <-- Removed this line.
          }
      
      In the idl_gen_cpp.cpp file itself, I refactored some code generation into
      new functions: GenParam, GenNativeTable, GenVerifyCall, GenBuilders,
      GenUnpackFieldStatement, and GenCreateParam.
      
      Change-Id: I727b1bd8719d05b7ce33cbce00eb58fda817b25d
      7b94eab2
  13. 11 Jan, 2017 1 commit
  14. 10 Jan, 2017 1 commit
  15. 09 Jan, 2017 3 commits
  16. 04 Jan, 2017 2 commits
    • Wouter van Oortmerssen's avatar
      Re-applied reverted fix, adding missing codegen files. · 2c4dce5b
      Wouter van Oortmerssen authored
      Change-Id: I301d29835fb0baffd859950eb0fb3056e4f4d66b
      2c4dce5b
    • Wouter van Oortmerssen's avatar
      Misc idl_gen_cpp cleanup · cc842400
      Wouter van Oortmerssen authored
      - Update to be const-correct where possible.
      - Consistently pass |code| as pointer instead of non-const-ref.
      - No newlines (\n) characters in the middle of code strings.
      - Use if-else if-else statements instead of nested ternary operators.
      - Ensure all lines end at 80 chars.
      - Make utility functions static.
      
      From cl/143505731.
      
      Change-Id: If0fab9ee75de5af963367a948dddf53af93f73b4
      cc842400
  17. 03 Jan, 2017 2 commits
  18. 28 Dec, 2016 1 commit