1. 06 May, 2015 1 commit
  2. 30 Apr, 2015 1 commit
  3. 29 Apr, 2015 2 commits
  4. 28 Apr, 2015 13 commits
    • Jeff Davidson's avatar
      Generate a CREATOR for each Parcelable message. · 9d546c85
      Jeff Davidson authored
      This is less ideal from a dex count perspective because it requires a
      new variable for each message, and because most apps have proguard
      rules that will ensure that CREATOR classes are retained.
      
      However, it is required to be able to use nano protos inside of AIDL
      files, as the autogenerated AIDL code fails to compile otherwise. This
      is a substantial benefit as it allows for backwards-compatible
      parameters and return types in AIDL methods along the lines of
      safeparcel.
      
      Bug: 19084705
      Change-Id: I66a2c0424b96cf8ff6b631b186cc4f9407dfc1f4
      9d546c85
    • Charles Munger's avatar
      Throw OutOfSpaceException instead of IllegalArgumentException. · 6732dd7e
      Charles Munger authored
      When a MessageNano containing a String is serialized into a buffer that
      is too small to contain it, and the buffer's boundary happens to be
      where the string field's length delimiting varint is serialized,
      and the string's length and 3*length have the same length when
      encoded as a varint, an IllegalArgumentException is thrown rather than
      an OutOfSpaceException.
      
      Github issue: https://github.com/google/protobuf/issues/292
      
      Change-Id: If478d68cf15bfd0662252d008e42b2bf1ff1c75e
      6732dd7e
    • Brian Duff's avatar
      Inline unknownFieldData{Equals,HashCode} to generated code. · a69b461e
      Brian Duff authored
      It turns out dex (apparently) was inlining these protected final
      methods from ExtendableMessageNano into every message class. Removing
      these methods from the base class and inlining their code reduces
      the method count by 2 methods / message when the store_unknown_fields
      option is on.
      
      Change-Id: I0aa09f2016d39939c4c8b8219601793b8fab301f
      a69b461e
    • Brian Duff's avatar
      Expose generate_clear as an option. · dac7e02d
      Brian Duff authored
      I wasn't able to get the clear() method to inline into the
      constructor when optimizations are on in proguard. As a result,
      every message has an extra superfluous kept method assuming the
      app never uses clear() directly.
      
      There are a couple of instances where setting this option false is
      necessary in order to get code dexing successfully without hitting
      the method limit, e.g. https://goto.google.com/tltzq
      
      In this example, I tried turning on the method/inlining/unique and
      method/inlining/short optimizations before resorting to adding the
      generate_clear option, but the method count did not decrease. The
      clear() methods were contributing over a thousand extra methods.
      
      Change-Id: If6a9651d6a59cdf70b1040d8248779710ac73105
      dac7e02d
    • Jeff Davidson's avatar
      Generate @IntDef annotations for nanoproto enums. · ec19be2f
      Jeff Davidson authored
      @IntDef is a support library annotation which allows build tools to
      determine the valid set of values for a given integer field when that
      field is intended to be restricted like an enum. This avoids the
      overhead of enums while still allowing for compile-time type checking
      in most circumstances.
      
      Change-Id: Iee02e0b49a8e069f6456572f538e0a0d301fdfd5
      ec19be2f
    • Shai Barack's avatar
      Add reset() and position() to CodedOutputByteBufferNano. · 41f0294c
      Shai Barack authored
      Change-Id: Ie2a9e36276ac35e10b3f8d379b5742d50a0374e9
      41f0294c
    • Kweku Adams's avatar
      DO NOT MERGE Overloading createMessageTyped to accept a tag as an integer. · 2712c421
      Kweku Adams authored
      When building, some instances expect createMessageTyped to have the signature
      (int, Class, long), while others expect (int, Class, int). Simply having
      the former signature meant that builds expecting the latter would fail.
      
      This is a cherrypick of change b2a9d4321578139677c146ce37eba5e27e8f5c79
      from master.
      
      Change-Id: Ib02dbf66173510f4edea32c7b43e82c1a7a38aa2
      2712c421
    • Brian Duff's avatar
      Exclude cachedSize when printing fields. · 714dba3a
      Brian Duff authored
      Change-Id: I85563b74237d38c1e447b7286f5f6e62d57e3d63
      714dba3a
    • Brian Duff's avatar
      Add clone() method support for nano. · d099a886
      Brian Duff authored
      Upstreamed from Another Place (cr/57247854).
      
      Change-Id: I2aaf59544c0f5ae21a51891d8a5eeda1dc722c90
      d099a886
    • Brian Duff's avatar
      When no clear() is generated, still initialize fields. · fb96026b
      Brian Duff authored
      https://android-review.googlesource.com/#/c/67890/ removed field
      initialization from the ctor, making it just call clear() instead.
      
      When I added the generate_clear option back (as part of the reftypes
      compat mode) in https://android-review.googlesource.com/#/c/109530/,
      I forgot to ensure that what clear() used to do was inlined in the
      constructor.
      
      This change fixes NPEs that are happening for users of
      reftypes_compat_mode who rely on unset repeated fields being empty
      arrays rather than null.
      
      Change-Id: Idb58746c60f4a4054b7ebb5c3b0e76b16ff88184
      fb96026b
    • Brian Duff's avatar
      Fix comments. · 9ffaa50d
      Brian Duff authored
      Forgot to update these in https://android-review.googlesource.com/#/c/109809/
      
      Change-Id: I53f838e2f134f53964161d9620d5ead00c4a3939
      9ffaa50d
    • Charles Munger's avatar
      Optimize measurement and serialization of nano protos. · 54511f70
      Charles Munger authored
      Measuring the serialized size of nano protos is now a zero-alloc operation, and serializing a proto now allocates no memory (other than the output buffer) instead of O(total length of strings).
      
      Change-Id: Id5e2ac3bdc4ac56c0bf13d725472da3a00c9baec
      Signed-off-by: 's avatarCharles Munger <clm@google.com>
      54511f70
    • Brian Duff's avatar
      Fix bug with large extension field numbers. · ec2f2445
      Brian Duff authored
      Previously, extensions with field numbers greater than 268435455 would
      result in a compile time error in generated code that looks something
      like this:
      
      Foo.java:3178: error: integer number too large: 3346754610
                      3346754610);
      
      This is because we were trying to represent the tag number (an
      unsigned int) using a java int constant, but java int constants are
      signed, and can't exceed Integer.MAX_VALUE.
      
      Fixed by declaring it as a long instead, and casting it down to an
      int in the implementation. This is safe, because the tag value always
      fits in 32 bis.
      
      Change-Id: If2017bacb4e20af667eaeaf9b65ddc2c30a7709f
      ec2f2445
  5. 24 Apr, 2015 1 commit
  6. 21 Apr, 2015 1 commit
  7. 20 Apr, 2015 2 commits
  8. 17 Apr, 2015 1 commit
    • Kun Zhang's avatar
      A few fix-ups. · 90a7ed6f
      Kun Zhang authored
      1. make google/protobuf/stubs/pbconfig.h before making protoc, otherwise it
      won't build a freshly checked-out code.
      2. Document the build environments that have been tested to work.
      3. Add support for MINGW64
      90a7ed6f
  9. 15 Apr, 2015 1 commit
  10. 13 Apr, 2015 3 commits
  11. 11 Apr, 2015 1 commit
  12. 10 Apr, 2015 8 commits
  13. 09 Apr, 2015 2 commits
  14. 08 Apr, 2015 3 commits