Commit Graph

392 Commits

Author SHA1 Message Date
Max Cai
9c2d63c8d3 am daf63839: Merge "Keep pointers to extension values."
* commit 'daf638399bd42122306786e8062f392ddace4363':
  Keep pointers to extension values.
2014-07-15 13:34:16 +00:00
Max Cai
30b1454d8b Merge "Keep pointers to extension values." 2014-07-14 21:03:45 +00:00
Juan Silveira
79f19eb9f1 Keep pointers to extension values.
The current implementation of getExtension deserialises the field from bytes
and returns a new object every time. This means that changes to those objects
are reflected when the messages is serialised unless setExtension is called. It
also means that every call to getExtension and setExtension is expensive.

This change introduces a FieldData class that contains everything that's known
about the field at the time. This can be all the tag/byte[] pairs associated
with a given field or an Extension and a value object. This is so that two
messages with a repeated extension can be compared even if the extension
has been deserialised in one of them but not the other.

This change also adds FieldArray class based on SparseArray from the Android
compatibility library. This is used in ExtendableMessageNano to make lookup
of FieldDatas by their field number faster.

Implications:
* calling getExtension multiple times deserialises the field only once and
  returns the same object.
* calling setExtension doesn't cause the object to be serialised immediately,
  that only happens when the container message is serialised.
* getExtension is no longer a read-only thread-safe operation. README.txt has
  been updated to relfect that.
* comparison using equals and hashCode continues to work.

Bug: 10863158

Change-Id: I81c7cb0c73cc0611a1f7c1eabf5eed259738e8bc
2014-07-14 16:54:28 +01:00
Ying Wang
30cd2a4a98 am 403cc927: am 8eed3705: You CANNOT change the global WITH_DEXPREOPT
* commit '403cc9277c5540cf14b6e53a4fedf3ae5499f4cf':
  You CANNOT change the global WITH_DEXPREOPT
2014-05-21 18:10:40 +00:00
Baligh Uddin
c7213e1c39 am 39467629: am 6c915d3a: keep history after reset to 1fd235cbb5975e117909c73e5e3a579ae4c28dce
* commit '39467629a7fb35da9fdfab4dd7603b9bfd7d9095':
2014-05-21 18:10:40 +00:00
Ying Wang
b18d5c1d43 am 8eed3705: You CANNOT change the global WITH_DEXPREOPT
* commit '8eed37054e8f7dd18aa3ec3070d638e3a1c03eaf':
  You CANNOT change the global WITH_DEXPREOPT
2014-05-21 18:04:18 +00:00
Baligh Uddin
f5759da88c am 6c915d3a: keep history after reset to 1fd235cbb5975e117909c73e5e3a579ae4c28dce
* commit '6c915d3a1e820702dca08d02a40fb86aa2de0bdd':
2014-05-21 18:04:18 +00:00
Ying Wang
82461de508 You CANNOT change the global WITH_DEXPREOPT
Bug: 14380196
Change-Id: I2b9e6db081558687afd5c20c7084824dfe1bb26e
2014-05-21 10:59:26 -07:00
Baligh Uddin
709cb7348e keep history after reset to 1fd235cbb5975e117909c73e5e3a579ae4c28dce 2014-05-21 10:59:17 -07:00
Qiwen Zhao
1d50c6b47c reset with history at sha1 d5219df3ce036d4f43262bbda1016097a59a0c81 2014-05-13 12:20:14 -07:00
Wink Saville
9db6d437df am 2b549b79: Merge "Revert "Merge commit \'e887563a\' into fix-merge-conclict"" into klp-modular-dev-plus-aosp
* commit '2b549b793713eb10b0212f1c5d6c90d9fdeead85':
  Revert "Merge commit 'e887563a' into fix-merge-conclict"
2014-05-08 18:31:09 +00:00
Wink Saville
3b0952fb80 Revert "Merge commit 'e887563a' into fix-merge-conclict"
This reverts commit f65ee55561e2a5f53be6db2ce03e518e249c9e80.

Change-Id: Ia6fed4d96fb4c076b2b51e1d758f3e15d37bffc0
2014-05-07 16:59:46 -07:00
Wink Saville
d9b892d45b Merge "Revert "Merge commit 'e887563a' into fix-merge-conclict"" into klp-modular-dev-plus-aosp 2014-05-07 23:44:20 +00:00
Wink Saville
fadc11055e Revert "Merge commit 'e887563a' into fix-merge-conclict"
This reverts commit f65ee55561e2a5f53be6db2ce03e518e249c9e80.

Change-Id: Ia6fed4d96fb4c076b2b51e1d758f3e15d37bffc0
2014-05-07 23:41:28 +00:00
Jan-Willem Maarse
9a58c6f56c am 399cf8d6: am 1fd235cb: am 70eec2ca: am 58eb8e98: am d20f0a42: Merge "Fix NPE when clearing an extension in nano protos"
* commit '399cf8d641c0bad4cff016f3b1a02c63fb353a21':
2014-05-07 22:57:41 +00:00
Bill Yi
ef5fd0e053 am 8b5d62a4: am f4af48ae: am 9dde6a6d: am ddeaf256: Merge commit \'ba89934bdae7f4256c94a0a24992903a114e764f\' into HEAD
* commit '8b5d62a4e819cb5114b294fc6754de63d50792b1':
2014-05-07 22:57:41 +00:00
Jeff Davidson
be8aadfd3b am 7b4e8c78: am 8113c186: resolved conflicts for merge of 592b6078 to master
* commit '7b4e8c78004c479ffc99ec7c677e206cfdf8b73c':
2014-05-07 22:57:40 +00:00
Max Cai
8b6445a019 am e69eaa22: am 99c98018: am 43365182: am 829f6c01: Merge "Adds --ignore_service nano proto compiler flag"
* commit 'e69eaa2230952424fd410f3378445e78fcf58242':
2014-05-07 22:57:40 +00:00
Max Cai
8624f47bab am 888cafe4: am dd38a37e: am 0391f00b: am ea68d73c: Merge "Don\'t reset cachedSize to 0 in getSerializedSize"
* commit '888cafe432fd2da8ae1b36429b5e8f822db11ce0':
2014-05-07 22:57:39 +00:00
Wink Saville
b67c3fa484 am 13fb32b1: am 3f1679bb: am 8a9fc09c: am ce2f5991: Merge "Revert "Don\'t reset cachedSize to 0 in getSerializedSize""
* commit '13fb32b15d428e4633674b9bb8bb7d4750e7e909':
2014-05-07 22:57:39 +00:00
Wink Saville
642f7003a7 Merge commit 'f65ee555' into fix-merge-conflict
* commit 'f65ee555':

Change-Id: Ic1216c50b608f1609fd8a1a1a50209c4486f30a4
2014-05-07 15:50:12 -07:00
Jan-Willem Maarse
9ad944e2d6 am 1fd235cb: am 70eec2ca: am 58eb8e98: am d20f0a42: Merge "Fix NPE when clearing an extension in nano protos"
* commit '1fd235cbb5975e117909c73e5e3a579ae4c28dce':
2014-05-07 21:46:19 +00:00
Bill Yi
e76c2cefee am f4af48ae: am 9dde6a6d: am ddeaf256: Merge commit \'ba89934bdae7f4256c94a0a24992903a114e764f\' into HEAD
* commit 'f4af48aeb5293a6c8583749e1a6f7a20508324f3':
2014-05-07 21:46:18 +00:00
Jeff Davidson
a3d1a03fc1 am 8113c186: resolved conflicts for merge of 592b6078 to master
* commit '8113c1862afb4ff3b7ab4ba0044c5cb191c1e454':
2014-05-07 21:46:18 +00:00
Max Cai
ba0ea9552f am 99c98018: am 43365182: am 829f6c01: Merge "Adds --ignore_service nano proto compiler flag"
* commit '99c9801813fdc2eccd5db391c00d0250c327e344':
2014-05-07 21:46:17 +00:00
Max Cai
78e5e83012 am dd38a37e: am 0391f00b: am ea68d73c: Merge "Don\'t reset cachedSize to 0 in getSerializedSize"
* commit 'dd38a37eae035fe0f724438624694f1cf77a0ade':
2014-05-07 21:46:17 +00:00
Wink Saville
b05e2ffe0c am 3f1679bb: am 8a9fc09c: am ce2f5991: Merge "Revert "Don\'t reset cachedSize to 0 in getSerializedSize""
* commit '3f1679bb03e1d08f08e7b4ca2d024345201d7f01':
2014-05-07 21:46:16 +00:00
Wink Saville
2666d4df51 Merge commit 'e887563a' into fix-merge-conclict
* commit 'e887563a':
  Revert "am 5b931dc7: am ec0b12c3: Merge "Don\'t reset cachedSize to 0 in getSerializedSize""

Change-Id: I1222ae20e6caef67c5a00ac481e10fe7b7d2a91c
2014-05-07 14:37:31 -07:00
Wink Saville
f812e7f2ca am d89b3060: am f213b0c6: am 5b931dc7: am ec0b12c3: Merge "Don\'t reset cachedSize to 0 in getSerializedSize"
* commit 'd89b3060b40d8485d02e48d11056750495ecb577':
2014-05-07 20:55:48 +00:00
Wink Saville
bf2bb67903 am 27243737: am 1a4b1d52: am 00310299: am 51ef8f39: Merge "Fix compile error on mac 10.9"
* commit '27243737cc739c25c8905cbe9b3040f500af127d':
2014-05-07 20:55:48 +00:00
Max Cai
42c481a7f5 am e8f7a71c: am 9141054b: am 214997ce: am afc1553a: Merge "Extension overhaul."
* commit 'e8f7a71c113c692102115cf56071e7c24cf09c88':
2014-05-07 20:55:47 +00:00
Max Cai
83ed21fcb0 am 286f5705: am 5c3544dd: am 5d33d23d: am 447f664a: Merge changes I9fecff3c,I2c1eb07f
* commit '286f57055b99aa2c3c107f4cd8f49eeace8db5b5':
2014-05-07 20:55:47 +00:00
Jie Dai
1e6f98066a am c7a7b2ac: resolved conflicts for merge of 6965d891 to klp-modular-dev-plus-aosp
* commit 'c7a7b2acc57bea137e4f8066802d4b9264ea3275':
2014-05-07 20:55:47 +00:00
Wink Saville
63bb1894f7 am f213b0c6: am 5b931dc7: am ec0b12c3: Merge "Don\'t reset cachedSize to 0 in getSerializedSize"
* commit 'f213b0c6a86503ad752139f04f343578df45db07':
2014-05-07 18:10:10 +00:00
Wink Saville
e4f1a3457f am 1a4b1d52: am 00310299: am 51ef8f39: Merge "Fix compile error on mac 10.9"
* commit '1a4b1d52e44104f2e10d0cdc585dde88602843d2':
2014-05-07 18:10:09 +00:00
Max Cai
915cddaa8a am 9141054b: am 214997ce: am afc1553a: Merge "Extension overhaul."
* commit '9141054bc24597968ddb94fb466c07cd2a933706':
2014-05-07 18:10:08 +00:00
Max Cai
4def4b4501 am 5c3544dd: am 5d33d23d: am 447f664a: Merge changes I9fecff3c,I2c1eb07f
* commit '5c3544dd69160dc00a7786977da220265a7c43c4':
2014-05-07 18:10:08 +00:00
Jie Dai
9f4dda6d11 resolved conflicts for merge of 6965d891 to klp-modular-dev-plus-aosp
Change-Id: Ifa90d0c9bf3119607ce19c942fbfb0e4cffe6b38
2014-05-07 10:18:10 -07:00
Max Cai
89197d0fdc am fa7bf363: am 6a1f70ab: am d5219df3: am a8af729b: Merge "Allow whitespace in nano codegen options."
* commit 'fa7bf363b9b46a933c3c3c81ff7f75684760fba8':
2014-05-07 16:55:17 +00:00
Max Cai
1f0c9cdba5 am 2c210bb9: am 6adb3df8: am 1be96c57: am 4b5874fa: Merge "Correctness: floating point equality using bits instead of ==."
* commit '2c210bb92ce2001e943b107710ba098295a55761':
2014-05-07 16:55:16 +00:00
Max Cai
6a64e5f6d6 am 0ea68954: am a5273888: am 538abc5b: am d6aeae14: Merge "Don\'t serialize required fields whose \'has\' flags are unset."
* commit '0ea6895484185194b405af7bacfd1c6a0590d17c':
2014-05-07 16:55:16 +00:00
Andrew Flynn
ec730f99d2 am db4556ed: am 81d0f437: am a896c1d8: am e7741c06: Merge "Fix MessageNanoPrinter for accessors"
* commit 'db4556edf20010913f977322d1544bec77c9c181':
2014-05-07 16:55:15 +00:00
Max Cai
3966be95cb am 649efad8: am 55c3d6d9: am 6b9d96b2: am 3f9bd998: Merge "Avoid class initializers to help ProGuard."
* commit '649efad8ca2fd4a4770fddca4537b8a3d27be47c':
2014-05-07 16:55:14 +00:00
Max Cai
4d5b68587a am aa721735: am 7c0eadd4: am 6a6b3b38: am cea499ac: Merge "Nano: don\'t generate accessor methods for nested methods"
* commit 'aa721735628bd0affc98f3204729b39cceeb60d8':
2014-05-07 16:55:14 +00:00
The Android Open Source Project
65403dd030 am 2f879713: am da929e3e: am 98c9208a: am b6089cca: Merge commit \'0afd5a4d782037ea641d75d595cf5d38ed6978ac\' into HEAD
* commit '2f8797132c9bca0235d4e937768625f432647d00':
2014-05-07 16:55:13 +00:00
The Android Open Source Project
f87af7538f am dee682fd: am 6597e4f2: am 485b7645: am c4c4a562: Merge commit \'7cb6b37f3799affce9e1be39977d4419283df795\' into HEAD
* commit 'dee682fd34a78eb0335df215b72a7c5de6520170':
2014-05-07 16:55:11 +00:00
Max Cai
16890a2e3e am 5645677f: am b3ad7eae: am 0143d32d: am f5271c9c: Merge "Align with main: two ways of parsing repeated packable fields."
* commit '5645677fddfd957ca8460f81b634a7108e50bd36':
2014-05-07 16:55:11 +00:00
Max Cai
07777ed7b1 am f2d09988: am 4115d56f: am 0afd5a4d: am 3e0d99fa: Merge "Update MessageNano#toString() to return mostly valid TextFormat."
* commit 'f2d09988508c1aa6a2da63944036d21126ca82f8':
2014-05-07 16:55:10 +00:00
Max Cai
44fb048cbd am 5e0c3d21: am 139bd6ac: am 382a066a: am 332076f0: Merge "Fix warnings warnings in header files, hide others."
* commit '5e0c3d21a0bd7065044b0b01b828940f5e1cb2a9':
2014-05-07 16:55:10 +00:00
Max Cai
f0b0553b43 am 4ba333e8: am b88c1729: am 77e9fbd3: am ac8e2e15: Merge "Minimize method count for nanoproto."
* commit '4ba333e8f251f9c8b27892452101ac31ffa38cae':
2014-05-07 16:55:09 +00:00