aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Generate pbconfig.h in generate_descriptor_proto.shBo Yang2015-04-301-0/+1
|
* Merge pull request #315 from brianduff/sync_from_aospJisi Liu2015-04-2926-90/+703
|\ | | | | Sync nanoproto from AOSP
| * Generate a CREATOR for each Parcelable message.Jeff Davidson2015-04-281-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Throw OutOfSpaceException instead of IllegalArgumentException.Charles Munger2015-04-282-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Inline unknownFieldData{Equals,HashCode} to generated code.Brian Duff2015-04-283-35/+19
| | | | | | | | | | | | | | | | | | | | 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
| * Expose generate_clear as an option.Brian Duff2015-04-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Generate @IntDef annotations for nanoproto enums.Jeff Davidson2015-04-285-9/+91
| | | | | | | | | | | | | | | | | | | | @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
| * Add reset() and position() to CodedOutputByteBufferNano.Shai Barack2015-04-281-0/+17
| | | | | | | | Change-Id: Ie2a9e36276ac35e10b3f8d379b5742d50a0374e9
| * DO NOT MERGE Overloading createMessageTyped to accept a tag as an integer.Kweku Adams2015-04-282-13/+13
| | | | | | | | | | | | | | | | | | | | | | 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
| * Exclude cachedSize when printing fields.Brian Duff2015-04-281-0/+4
| | | | | | | | Change-Id: I85563b74237d38c1e447b7286f5f6e62d57e3d63
| * Add clone() method support for nano.Brian Duff2015-04-2820-10/+222
| | | | | | | | | | | | Upstreamed from Another Place (cr/57247854). Change-Id: I2aaf59544c0f5ae21a51891d8a5eeda1dc722c90
| * When no clear() is generated, still initialize fields.Brian Duff2015-04-284-12/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Fix comments.Brian Duff2015-04-281-2/+2
| | | | | | | | | | | | Forgot to update these in https://android-review.googlesource.com/#/c/109809/ Change-Id: I53f838e2f134f53964161d9620d5ead00c4a3939
| * Optimize measurement and serialization of nano protos.Charles Munger2015-04-282-23/+251
| | | | | | | | | | | | | | 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: Charles Munger <clm@google.com>
| * Fix bug with large extension field numbers.Brian Duff2015-04-284-9/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge pull request #303 from xfxyjwf/wktFeng Xiao2015-04-291-1/+11
|\ \ | |/ |/| Include well-known type protos in "make install".
| * Include well-known type protos in "make install".Feng Xiao2015-04-231-1/+11
|/
* Merge pull request #287 from zhangkun83/protoc-artifacts-fixupJisi Liu2015-04-212-4/+11
|\ | | | | A few fix-ups for protoc-artifacts
| * A few fix-ups.Kun Zhang2015-04-162-4/+11
| | | | | | | | | | | | | | 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
* | Merge pull request #290 from xfxyjwf/wktFeng Xiao2015-04-208-21/+425
|\ \ | |/ |/| Include all well-known type protos.
| * Include all well-known type protos.Feng Xiao2015-04-208-21/+425
|/ | | | Change-Id: I122f1cee71a8a739ea603e52582cb0fa9698f0ed
* Factored conformance tests so they can run in-process.Josh Haberman2015-04-155-199/+415
| | | | | | This is necessary for testing on iOS. Change-Id: I54ec1e3aa2e9fbfff9a6cd6580920a6a62069b63
* Merge pull request #284 from cfallin/issue-283Joshua Haberman2015-04-133-2/+26
|\ | | | | Fix for issue 283: JSON handler cleanup typo causing segfault.
| * Bump gem version to release bugfix.Chris Fallin2015-04-131-1/+1
| |
| * Fixed issue #283: crash in JSON handler cleanup.Chris Fallin2015-04-132-1/+25
|/ | | | Includes repro test case from @wfarr.
* Merge pull request #276 from tamird/drop-apputils-dependencyJoshua Haberman2015-04-1124-278/+132
|\ | | | | Migrate Python tests to stdlib unittest, drop apputils dependency.
| * [PYTHON] Drop dependency on 'google.apputils'.Tamir Duberstein2015-04-1019-102/+103
| | | | | | | | Use stdlib's 'unittest' instead.
| * [PYTHON] Remove awkward duplicate testsTamir Duberstein2015-04-104-165/+0
| | | | | | | | We already run all tests with and without `--cpp_implementation`
| * [PYTHON] README: explain homebrew shenanigansTamir Duberstein2015-04-101-8/+26
| |
| * [PYTHON] Remove unnecessary `include_dir`Tamir Duberstein2015-04-101-1/+1
| |
| * [PYTHON] Clarify API version commentTamir Duberstein2015-04-101-2/+2
|/
* Merge pull request #278 from haberman/python-travisJoshua Haberman2015-04-092-10/+19
|\ | | | | Added Python to Travis build and clarified setup instructions.
| * Export LD_LIBRARY_PATH.Josh Haberman2015-04-091-1/+2
| |
| * Fix for current directory in Travis tests.Josh Haberman2015-04-091-2/+2
| |
| * Added Python to Travis build and clarified setup instructions.Josh Haberman2015-04-092-10/+18
|/
* Merge pull request #271 from zhangkun83/protoc-artifact-mavenJisi Liu2015-04-093-12/+162
|\ | | | | Process to deploy artifacts for multiple platforms into a single release.
| * Strip Mac artifactsKun Zhang2015-04-081-2/+9
| |
| * Make the osx binary compatible with 10.7 and laterKun Zhang2015-04-081-1/+3
| |
| * Fix osx dependency check. otool prints the file name in the first line. ↵Kun Zhang2015-04-071-2/+2
| | | | | | | | Should skip it
| * Add cross-compilation for Windows on Linux using MinGW. Check library ↵Kun Zhang2015-04-071-12/+70
| | | | | | | | dependencies of artifact
| * List the platforms that we currently support. Document staging.repository.Kun Zhang2015-04-072-1/+11
| |
| * Process to deploy artifacts for multiple platforms into a singleKun Zhang2015-04-063-2/+75
| | | | | | | | | | | | | | | | | | release. - Do not close the staging repository automatically - Added staging.repository property - Updated README with instructions for deployment - Fix building 32-bit Mac artifact
* | Merge pull request #275 from tamird/remove-useless-fileJoshua Haberman2015-04-083-665/+0
|\ \ | | | | | | Remove useless file that doesn't load
| * | Remove useless file that doesn't loadTamir Duberstein2015-04-083-665/+0
|/ / | | | | | | This file was broken in ada6556.
* | Merge gerrit/master and github/master.Feng Xiao2015-04-087-2/+871
|\ \ | |/ |/|
| * Added first version of conformance tests.Josh Haberman2015-04-087-2/+871
| | | | | | | | Change-Id: Ib75664194491643f8e4f1503a2ed942a2d1e1655
* | Merge pull request #264 from tamird/getbytesFeng Xiao2015-04-0225-263/+305
|\ \ | | | | | | perf: String#getBytes(Charset) vs getBytes(String)
| * | Clean up importsTamir Duberstein2015-04-0210-30/+17
| | |
| * | Move `UTF_8` to `Internal`Tamir Duberstein2015-04-0214-34/+33
| | |
| * | Skip 3-byte test in CITamir Duberstein2015-04-021-2/+5
| | |