1. 23 Apr, 2016 1 commit
  2. 22 Apr, 2016 5 commits
    • Wouter van Oortmerssen's avatar
      Merge pull request #3850 from pjulien/3849 · a0d1161f
      Wouter van Oortmerssen authored
      Fix for #3849
      a0d1161f
    • Wouter van Oortmerssen's avatar
    • Wouter van Oortmerssen's avatar
      Fixed a verifier check that didn't return from its parent. · c17cf022
      Wouter van Oortmerssen authored
      Change-Id: I1aef5fdba72de0c3bb8276c9f50fffa494f26e29
      Tested: on Linux.
      c17cf022
    • Wouter van Oortmerssen's avatar
      Fixed SkipByteOrderMark advancing cursor_ too early. · f6330ab8
      Wouter van Oortmerssen authored
      Change-Id: Ie60f01d935ca6b4aa6ce0eab7598602ac0758342
      Tested: on Linux.
      f6330ab8
    • pjulien's avatar
      Fix for #3849 · 6908826f
      pjulien authored
      This avoids the following allocations over repeated use:
      
      - A ``CharsetEncoder``
      - A byte array to contain the contents of the string
      - A wrapper, via ``ByteBuffer#wrap``, for the previously mentioned byte
        array
      
      This also removes a copy of the temporary byte array.  This extra copy
      is needed because ``String#getBytes`` returns a byte array and its
      length must match the exact size of the contents.
      
      This implementation requires that the builder retain a ``ByteBuffer``
      and ``CharEncoder``.  This is considered slower only for users that
      will only allocate a single string in their buffers or none at all.
      
      The improvement is especially potent if the builder is constantly reused
      by its caller.  This also eliminates the penalty for users that do not
      use strings at all since the cost of allocating these fields is
      now amortized.
      
      The only allocation left in this code is a ``CharBuffer`` wrapper.  It's
      possible to eliminate this allocation using an additional copy but need
      further profiling to see which is the bigger problem.
      6908826f
  3. 20 Apr, 2016 1 commit
  4. 18 Apr, 2016 2 commits
  5. 17 Apr, 2016 1 commit
    • pjulien's avatar
      3847 · fdfaf233
      pjulien authored
      fdfaf233
  6. 14 Apr, 2016 2 commits
  7. 13 Apr, 2016 3 commits
    • Wouter van Oortmerssen's avatar
      Merge pull request #3844 from Nnamdi/CreateUninitializedVector_fix · 8d8b7c19
      Wouter van Oortmerssen authored
      Stop CreateUninitializedVector returning a pointer to invalid memory.
      8d8b7c19
    • Nnamdi's avatar
      Stop CreateUninitializedVector returning a pointer to invalid memory. · 039ab48b
      Nnamdi authored
      CreateUninitializedVector was performing the following actions:
          1. call StartVector.
          2. call make_space, and set buf to point to the reserved space.
          3. call EndVector.
      
      The problem is that a call to EndVector can ultimately call make_space, which
      if the buffer is full, will cause a reallocation, invalidating the value stored
      in buf.  So setting buf needs to be delayed until after EndVector.
      
      The following code, when run under valgrind shows a write to free'd memory before
      the change, but no such error after:
      
      int main()
      {
          flatbuffers::FlatBufferBuilder fbb(128);
          char *buf = nullptr;
          fbb.CreateUninitializedVector(128, &buf);
          *buf = 0;
      }
      039ab48b
    • Wouter van Oortmerssen's avatar
      Fixed struct -> class pre-declaration error. · 4a04bac2
      Wouter van Oortmerssen authored
      Change-Id: I3730a6823d603982c4250d514e827e3f93d1f81e
      Tested: on Linux.
      4a04bac2
  8. 12 Apr, 2016 1 commit
  9. 11 Apr, 2016 3 commits
  10. 08 Apr, 2016 4 commits
  11. 07 Apr, 2016 1 commit
  12. 05 Apr, 2016 2 commits
  13. 04 Apr, 2016 8 commits
  14. 03 Apr, 2016 1 commit
  15. 02 Apr, 2016 1 commit
  16. 30 Mar, 2016 2 commits
  17. 29 Mar, 2016 2 commits
    • Nnamdi's avatar
      Added --gen-name-strings command line option. · 35f6bb50
      Nnamdi authored
      To support the use case described in issue google/flatbuffers#3826, a new command line option --gen-name-strings
      has been added, which will cause a static GetFullyQualifiedName function to be added
      to the C++ output for tables/structs.
      35f6bb50
    • Armen Baghumian's avatar
      Implement __vector_as_bytes and methods to get [ubyte] efficiently · 28a3c939
      Armen Baghumian authored
      Currently in order to get a value type of [ubyte] in PHP, iteration is
      necessary which is not efficient. Helper __vector_as_bytes has been
      implemented in order to return the byte arrays in PHP efficiently.
      
      Appropriate methods also been added to use aforementioned method to return
      the byte array. (e.g. get*Bytes()).
      
      The reason the methods are named get*Bytes() and not for instance
      get*ByteArray() is the fact that PHP doesn't support byte arrays and the
      binary safe string implementation in PHP is used to simulate byte arrays
      and since there is chance for PHP users to confuse this with PHP arrays
      the name get*Bytes() has been chosen.
      
      In the future __vector_as_bytebuffer() method can also be implemented to
      return PHP implementation of ByteBuffer.
      28a3c939