1. 23 Jun, 2015 3 commits
    • Kenton Varda's avatar
      Fix bug where calling a list setter using a list obtained from a similarly-typed… · 949f7353
      Kenton Varda authored
      Fix bug where calling a list setter using a list obtained from a similarly-typed getter, but where the underlying pointer was null, would write an incorrectly-typed pointer in the destination (specifically, an empty List(Void)). Now it sets an empty list of the correct type.
      949f7353
    • Kenton Varda's avatar
      2ed4b4e7
    • Kenton Varda's avatar
      Fixes #219, with POSSIBLE (but obscure) WIRE FORMAT BREAKAGE. · db7ca960
      Kenton Varda authored
      Unfortunately, the layout algorithm had a bug which caused incorrect layout when declaring a union whose lowest-ordinal field was of type Void and nested in an inner union. That is:
      
          union {
            a :union {
              b @0 :Void
              ...
            }
            ...
          }
      
      In this case, all the fields in the struct after the Void field -- including both unions' discriminants -- would end up misplaced. Although they did not end up overlapping (and therefore the incorrect layout "worked"), the result broke schema evolution rules around "retroactive unionization".
      
      Unfortunately, we must break compatibility with any protocol that happened to contain the above pattern. Luckily, it's a fairly obscure case. Unluckily, Cap'n Proto's own schema format contains such a pattern. Luckily, the use of this pattern was introduced in v0.6.x and therefore has not been in any release build so far.
      db7ca960
  2. 12 Jun, 2015 1 commit
  3. 11 Jun, 2015 3 commits
  4. 10 Jun, 2015 1 commit
  5. 09 Jun, 2015 1 commit
  6. 29 May, 2015 1 commit
  7. 20 May, 2015 2 commits
  8. 16 May, 2015 1 commit
  9. 10 May, 2015 1 commit
  10. 09 May, 2015 2 commits
  11. 07 May, 2015 2 commits
  12. 06 May, 2015 3 commits
  13. 05 May, 2015 2 commits
  14. 04 May, 2015 1 commit
  15. 03 May, 2015 2 commits
  16. 29 Apr, 2015 1 commit
  17. 28 Apr, 2015 1 commit
  18. 26 Apr, 2015 1 commit
  19. 25 Apr, 2015 2 commits
  20. 21 Apr, 2015 1 commit
    • Kenton Varda's avatar
      Work around Clang bug 22354. · b0599220
      Kenton Varda authored
      https://llvm.org/bugs/show_bug.cgi?id=22354
      
      At the time DisallowConstCopy was introduced, GCC 4.7 and Clang 3.2 refused to allow the non-const copy constructors to be defaulted inline. This must have been concluded to be a compiler bug, as GCC 4.8 and Clang 3.4 seem fine with it. So, we can clean this up.
      
      Meanwhile, the above-linked Clang bug triggered when a DisallowConstCopy derivative is captured by value in a C++14 generic lambda. capnp::CallContext in particular tended to be hit by this a lot. The bug only affects non-default (or out-of-line default) copy constructors, and thus is conveniently sidestepped by this change.
      b0599220
  21. 20 Apr, 2015 2 commits
  22. 17 Apr, 2015 1 commit
  23. 15 Apr, 2015 3 commits
  24. 12 Apr, 2015 2 commits