History log of /frameworks/native/include/binder/Parcel.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
65a8f07e57a492289798ca709a311650b5bd5af1 27-Oct-2016 Casey Dahlin <sadmac@google.com> Fix integer overflow in unsafeReadTypedVector

Passing a size to std::vector that is too big causes it to silently
under-allocate when exceptions are disabled, leaving us open to an OOB
write. We check the bounds and the resulting size now to verify
allocation succeeds.

Test: Verified reproducer attached to bug no longer crashes Camera
service.
Bug: 31677614

Change-Id: I064b1442838032d93658f8bf63b7aa6d021c99b7
/frameworks/native/include/binder/Parcel.h
f26a3ab7758bdbc1c87940216e542b2cc58c4377 20-May-2016 Janis Danisevskis <jdanis@google.com> Fix Parcelable::readParcelableVector<T>

Parcelable::readParcelableVector<T> was apparently never
used. It now is and needed some adjustments to actually
work.

Bug: 22914603
Change-Id: I58ead3b3956299d549cff245588f56f3220563d3
/frameworks/native/include/binder/Parcel.h
e4e0ae8abc7f612960fc381a792d0bef4c3eb6f9 25-Mar-2016 Christopher Tate <ctate@google.com> Guard against failed array allocation

Also sanity check the fd count of incoming Parcels. Anything
exceeding our actual rlimit is inherently not legit.

Bug 26696080

Change-Id: Ib983dce8e8977d7e33195a4ee471115cdaf1c56b
/frameworks/native/include/binder/Parcel.h
0b1cf331d281d28eb67b3aa2be01026c2ceda4d9 09-Feb-2016 Casey Dahlin <sadmac@google.com> libbinder: Allow readByteVector to take uint8_t

Change-Id: I2f0d1f3b4c04f04e7a866e9a4cf76c899b4b4980
Test: AIDL integration tests pass
Bug: 27078230
/frameworks/native/include/binder/Parcel.h
9a5e32f141fdb43edc1bb31ceacec781b35281b3 29-Jan-2016 Christopher Wiley <wiley@google.com> Add support for decoding UTF16 to UTF8

This is helpful because many native service developers use std::string
internally, and String16 doesn't work very well with many C++
primitives.

Bug: 26729450
Test: Integration test appears to show this is correct.

Change-Id: Ib75068881da28fd8515685bcbcbe864ba3b7ec23
/frameworks/native/include/binder/Parcel.h
b9872623ca0f2366c348d6d40a8ba45ee0e87710 26-Nov-2015 Casey Dahlin <sadmac@google.com> Allow null values for Parcel readers and writers

Test: AIDL integration tests pass
Bug: 25969194
Change-Id: Ib7023c8e02af49e08c9921f1d097e5967c1d378e
Signed-off-by: Casey Dahlin <sadmac@google.com>
/frameworks/native/include/binder/Parcel.h
0ebbd1ef19a4a4f6b0dfcc8d8d7c625ab5211f9d 23-Nov-2015 Casey Dahlin <sadmac@google.com> Merge "Add support for file descriptors and vectors thereof"
am: 8f237272e0

* commit '8f237272e0630b8f279db7f90aebfff73a1a9c00':
Add support for file descriptors and vectors thereof
06673e38983baad380e818c5493b7faccf3b2393 23-Nov-2015 Casey Dahlin <sadmac@google.com> Add support for file descriptors and vectors thereof

We use ScopedFd from nativehelper to manage the lifetime.

Test: Passes AIDL unit and integration tests. Full build completes and
runs.
Bug: 25242023
Signed-off-by: Casey Dahlin <sadmac@google.com>

Change-Id: I22c87ed1cb3bd4bf667b372ea4a2e9fcd4dd986a
/frameworks/native/include/binder/Parcel.h
6c31acd969ffc754e514885fa7f4d0c25403f580 23-Nov-2015 Christopher Wiley <wiley@google.com> Merge "libbinder: Add support for C++ Parcelable"
am: 49b5443a49

* commit '49b5443a49d737d13c8d05dfd9b827b2c4198edc':
libbinder: Add support for C++ Parcelable
709ae9a0a5775c75b81d011ae9624f28787e5b15 20-Nov-2015 Christopher Wiley <wiley@google.com> Merge "libbinder: Move vector writing templates to header"
am: e1aa1c7e13

* commit 'e1aa1c7e136e7372c17b8db7a6d8b307ba4cd571':
libbinder: Move vector writing templates to header
97f048d19e51da4ea6ff98d8a9daf38f2577f182 19-Nov-2015 Christopher Wiley <wiley@google.com> libbinder: Add support for C++ Parcelable

Bug: 23600712
Test: compiles, integration tests for Java/C++ compatibility pass

Change-Id: I0919571919a3633350169ed5668bbb000da9691c
/frameworks/native/include/binder/Parcel.h
03d1eb6bf90bcd0a04b176988478d2e939d3fba0 19-Nov-2015 Christopher Wiley <wiley@google.com> libbinder: Move vector writing templates to header

This allows us to reuse them to read and write vectors of parcelables.

Bug: 23600712
Test: Compiles, aidl integration tests pass

Change-Id: Ibbfc2f158b6b3000b13f35f3c09a0cd3741e8128
/frameworks/native/include/binder/Parcel.h
fb92cfcd3e8977a6cac0147de80bf2a0fb6a2d87 18-Nov-2015 Casey Dahlin <sadmac@google.com> Merge "Revert "Add support for unique_fds and vectors of file descriptors""
am: 5cd09786eb

* commit '5cd09786eb4ff6e99351e8a317205a5efd12ac74':
Revert "Add support for unique_fds and vectors of file descriptors"
25a365623c4d703872d8faa4f0674d9514910c45 18-Nov-2015 Casey Dahlin <sadmac@google.com> Revert "Add support for unique_fds and vectors of file descriptors"

This reverts commit 9626d88882972d45576dcceedc037d2e9843196b.

Change-Id: I6121f388d17c6f2d0cf6f31bc42f0804dd72aba2
/frameworks/native/include/binder/Parcel.h
0dd1a5d2f4e69c5df233fa9468191c03dc9b639f 18-Nov-2015 Casey Dahlin <sadmac@google.com> Merge "Add support for unique_fds and vectors of file descriptors"
am: b1819fc295

* commit 'b1819fc295811ca3a005042a80149c8d0655211f':
Add support for unique_fds and vectors of file descriptors
9626d88882972d45576dcceedc037d2e9843196b 05-Nov-2015 Casey Dahlin <sadmac@google.com> Add support for unique_fds and vectors of file descriptors

Change-Id: Ic61e69d9db438b4686032459c896aed2a482c9a5
Test: Unit tests pass
Bug: 25242023
Signed-off-by: Casey Dahlin <sadmac@google.com>
/frameworks/native/include/binder/Parcel.h
4ed5d8c98ea74c953b767a84ebfedf9d038dba3b 05-Nov-2015 Casey Dahlin <sadmac@google.com> Merge "Add support for reading/writing a vector of binders"
am: fd6843236f

* commit 'fd6843236fe9094fc8868f1a58e6ba4364a485a7':
Add support for reading/writing a vector of binders
eb8e15f9bb29f8794f8be819530631c358fd6a15 03-Nov-2015 Casey Dahlin <sadmac@google.com> Add support for reading/writing a vector of binders

Change-Id: Iaa8da704b2ae3c1ca5456177441a335991b40e8a
Test: unit tests pass
Bug: 24470786
Signed-off-by: Casey Dahlin <sadmac@google.com>
/frameworks/native/include/binder/Parcel.h
75c5de42b759bdcfa7c0e6103fb959c28d686116 29-Oct-2015 Casey Dahlin <sadmac@google.com> Merge "Add readStrongBinder that takes an interface" am: 71b70a244c
am: 6319281c24

* commit '6319281c24284a83f8bab090c6048d864635f0dd':
Add readStrongBinder that takes an interface
f0c13772d95486d98f034361883b2415bb26a614 28-Oct-2015 Casey Dahlin <sadmac@google.com> Add readStrongBinder that takes an interface

We use a template function to let us pass arbitrary interfaces, all of which
can be cast to IBinder.

Change-Id: Iadf21c495cde43e8a5adb85a49e6592196f401ff
Test: unit tests
Bug: 23600713
Signed-off-by: Casey Dahlin <sadmac@google.com>
/frameworks/native/include/binder/Parcel.h
0d2a22ece851b5ee358ac18214ccbfa28c3eb121 23-Oct-2015 Adrian Roos <roosa@google.com> Merge changes from topic \'parcel-v2\' into mnc-dr-dev am: cf33d50d25 am: 0c11f9918c
am: bcc709b94d

* commit 'bcc709b94d72e7f2d03d952dbf8a21b6980fd3a9':
Maintain Parcel ABI
Revert "Revert "Track ashmem memory usage in Parcel""
6bb3114246f6f6aa406e65452dbaa12b135029ea 23-Oct-2015 Adrian Roos <roosa@google.com> Maintain Parcel ABI

Makes sure we don't change the memory layout of the Parcel class
to maintain binary compatibility with prebuilts linking against
libbinder.

Bug: 25004154
Change-Id: I656687497f08bb85cefda796aafa2341e601e30a
/frameworks/native/include/binder/Parcel.h
cbf3726357966539c2a685f46e61c3fc8937f19e 23-Oct-2015 Adrian Roos <roosa@google.com> Revert "Revert "Track ashmem memory usage in Parcel""

This reverts commit 6880307e8e35a6c484942443fb4ddd6173126152.

Bug: 25004154
Change-Id: I9b432d1ebc39f3bbcd7afdefc403f0fb6ced8158
/frameworks/native/include/binder/Parcel.h
f4ccbf8103dadabfc8e2eb01b582d9711f7d2931 23-Oct-2015 Ian Pedowitz <ijpedowitz@google.com> Revert "Track ashmem memory usage in Parcel" am: 6880307e8e am: 159a5c3372
am: 7a2643cd77

* commit '7a2643cd77f1836844032f8a14f3c03a40c4e581':
Revert "Track ashmem memory usage in Parcel"
6880307e8e35a6c484942443fb4ddd6173126152 23-Oct-2015 Ian Pedowitz <ijpedowitz@google.com> Revert "Track ashmem memory usage in Parcel"

This reverts commit e2f499fb734bc30a1e1c947112caa0727349b6ed.

Bug: 25169267
Bug: 25191602
Bug: 25004154
Change-Id: I24bb0da4e8739ee5a0c251e4adac9904827144e0
/frameworks/native/include/binder/Parcel.h
b73f66ec1a31c5910c63fea199b222afb7c5a417 22-Oct-2015 Adrian Roos <roosa@google.com> Track ashmem memory usage in Parcel am: e2f499fb73 am: a0c1be2617
am: cb09f2c82f

* commit 'cb09f2c82fa202b3e4069b74ca103d8ba502c4c3':
Track ashmem memory usage in Parcel
e2f499fb734bc30a1e1c947112caa0727349b6ed 21-Oct-2015 Adrian Roos <roosa@google.com> Track ashmem memory usage in Parcel

Bug: 25004154
Change-Id: Id9d5656dd0605f1b50525596b75601309f67ebdc
/frameworks/native/include/binder/Parcel.h
451ff582d730e27f4e22d9f158f8ee24d1bc2729 20-Oct-2015 Casey Dahlin <sadmac@google.com> Add read/write methods for vectors

Also a readString16 with the expected semantics.

Change-Id: Idbeaff1b4337089b2a5a7124f77226a693b2be4f
Test: Unit tests pass
Bug: 25012838
Signed-off-by: Casey Dahlin <sadmac@google.com>
/frameworks/native/include/binder/Parcel.h
d6848f52e60be17b7f0992be7827dcae4ea2efb1 16-Oct-2015 Casey Dahlin <sadmac@google.com> Add methods to Parcel for bool and char and byte

We lift these to int, but handling the details of that here will be better
than having AIDL generate casting code all the time.

Test: unit tests pass
Bug: 24981507
Change-Id: If6aa33ab5fe365dd237136a95c5d9a702af41d15
Signed-off-by: Casey Dahlin <sadmac@google.com>
/frameworks/native/include/binder/Parcel.h
13b1604018968408bcc5553e1fa5ea9df3e4e009 12-Nov-2014 Jeff Brown <jeffbrown@google.com> Enable more flexible usage of blobs in parcels.

Add functions to allow a client to take over the ashmem region
that was transferred so that it can claim it for its own and
reuse it.

Add support for mutable ashmem regions too.

Bug: 21428802
Change-Id: I16eca338cdb99b07d81fc43573d53ce86dbc60c8
/frameworks/native/include/binder/Parcel.h
9e6d2ee0302c6f6108488237821958c42ac380a1 03-Jun-2015 Tim Kilbourn <tkilbourn@google.com> DO NOT MERGE Remove unused ParcelFileDescriptor methods in parcel.

Attempts to replicate Java parceling in native code is fraught with
peril.

Change-Id: I4359036c5dddd1b886d886beef1d060523e53e5f
(cherry picked from commit f47a381001d4d4ce66c2e35aac5b96a26acc0730)
/frameworks/native/include/binder/Parcel.h
aa5c2346c7291465aaca53f59878582dccbe4835 10-Apr-2015 Dan Sandler <dsandler@android.com> Add ashmem stats to Parcels

Requires change Ifaf115da in frameworks/base.

Bug: 20079551
Change-Id: Ifaf115dabd1a59cdb1b46e2d49c41f64ac107de4
/frameworks/native/include/binder/Parcel.h
2d13afdfa1f43973bf3cb917c7d6496a38baa446 16-Mar-2015 Ronghua Wu <ronghuawu@google.com> binder: add uint64 support to Parcel.

Bug: 19620911
Change-Id: Ifce5319e4e35afd344dead67ab7ba1cd399476a3
/frameworks/native/include/binder/Parcel.h
e4ea03f74ded76f588501bd2e90ecb767c6426b3 01-Dec-2014 Dan Stoza <stoza@google.com> am 80e81505: Merge "binder: Add {read,write}Uint32 methods to Parcel"

* commit '80e8150549c9d8380dadf942336d41ab3d92bf78':
binder: Add {read,write}Uint32 methods to Parcel
41a0f2f86c0ca7d2fef50aef6215987f445a7231 01-Dec-2014 Dan Stoza <stoza@google.com> binder: Add {read,write}Uint32 methods to Parcel

Adds readUint32 and writeUint32 methods to the Parcel class. This
saves a lot of static_casting in anything implementing a Binder
interface on the native side.

Change-Id: Iafc73b0633654a3a4c49767f41806b56906c924f
/frameworks/native/include/binder/Parcel.h
7e790af756d7891cb1cf1374bb283a8fbcbe6b49 11-Nov-2014 Dianne Hackborn <hackbod@google.com> Add tracking of parcel memory allocations.

Change-Id: I76ffed0e69ccfe70e87d98646f11d4de7c3fd980
/frameworks/native/include/binder/Parcel.h
7da40c0a84dd89e92201448dd5ed3387dc94df2b 12-Jun-2014 Narayan Kamath <narayan@google.com> Remove Parcel::writeIntPtr.

All uses of this API have been removed. It should
never have been made public in the first place.

bug: 15424960
Change-Id: Id07d24ec95b2b393e6da138a7e8a9a4ecebeca94
/frameworks/native/include/binder/Parcel.h
ce9f107c9d9ad4fdc0ad43ccd545823caa3cf933 15-Mar-2014 Marco Nelissen <marcone@google.com> am 793be12c: am b730a452: am f0190bff: Add support for writing byte arrays to parcels

* commit '793be12c0f5a7878d1085e94e58a9c36c84f0911':
Add support for writing byte arrays to parcels
793be12c0f5a7878d1085e94e58a9c36c84f0911 15-Mar-2014 Marco Nelissen <marcone@google.com> am b730a452: am f0190bff: Add support for writing byte arrays to parcels

* commit 'b730a45216991cf22c39451c47393b4bccae111b':
Add support for writing byte arrays to parcels
f0190bff38b6c29abbfc4a877442f71fc3d7dad8 13-Mar-2014 Marco Nelissen <marcone@google.com> Add support for writing byte arrays to parcels

b/13418320

Change-Id: I2285df9e9d3dc8a6a54055b13b352b81660bf45d
/frameworks/native/include/binder/Parcel.h
88f6ad18de946307b9b1db68faad84b991528e88 03-Feb-2014 Arve Hjønnevåg <arve@android.com> am c93865de: am 58242fc2: Merge changes Ib0e5a037,I1bd7c38e,Icfc67c2a,I96c64312,I59528054, ...

* commit 'c93865de80a16d3638936890fb42eb175284044b':
ServiceManager: Implement PING_TRANSACTION
ServiceManager: Use 32/64 bit types from new binder header
Binder: Use 64 bit pointers in 32 processes if selected by the target
Add BINDER_IPC_32BIT to CFLAGS unless TARGET_USES_64_BIT_BINDER is true
Binder: Make binder portable
ServiceManager: Fix the binder interface
ServiceManager: Store handles in uint32_t instead of void *
ServiceManager: Generic Fixes
ServiceManager: Add extra error handling
ServiceManager: Fix Android.mk
ServiceManager: Make use of kernel exported structures
84e625ac1e01f5a9c3ed16664da6498212ed662b 29-Jan-2014 Arve Hjønnevåg <arve@android.com> Binder: Use 64 bit pointers in 32 processes if selected by the target

Uses new kernel header where void * has been replaced by binder_uintptr_t

Change-Id: Icfc67c2a279269f700343bd9246fd7cb94efe2c1
/frameworks/native/include/binder/Parcel.h
f683e0163a84d93448b9388126902242367cd961 05-Nov-2013 Serban Constantinescu <serban.constantinescu@arm.com> Binder: Make binder portable

Changes include
- Binder attempts to cast pointers to a int datatype
which is not sufficient on a 64-bit platform.

- This patch introduces new read/write functions into
Parcel that allow pointers to be written using the
uintptr_t datatype for compile-time data type size
selection.

- Change access specifier for the methods above.

- Binder uses the 64bit android_atomic_release_cas64
(aka cmpxchg)

Change-Id: I595280541e0ba1d19c94b2ca2127bf9d96efabf1
Signed-off-by: Matthew Leach <matthew.leach@arm.com>
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
/frameworks/native/include/binder/Parcel.h
708cc794f6ccd4d31e0a00a23b289272c665adc1 16-Oct-2013 Marco Nelissen <marcone@google.com> Native counterpart of new power manager method

Cherrypicked from master.

b/9464621

Change-Id: I54c0ed50a57ac870da91db8589a73a2c792dbd8d
/frameworks/native/include/binder/Parcel.h
5c0106e134366312206702f1b072347e20c90374 16-Oct-2013 Marco Nelissen <marcone@google.com> Native counterpart of new power manager method

Change-Id: I54c0ed50a57ac870da91db8589a73a2c792dbd8d
/frameworks/native/include/binder/Parcel.h
cbe36fe1ec21e22e6649d47144c91260ba51d753 05-Sep-2013 Mike Lockwood <lockwood@google.com> Add support for sending and receiving ParcelFileDescriptors from native Binder code

Change-Id: I7f308e28ebac0755628e19c9b4d0d7399341b435
/frameworks/native/include/binder/Parcel.h
e142428a9c8b9d2380032cd4d7b55ee440fe8770 30-Jul-2013 Mathias Agopian <mathias@google.com> Make Flattenable not virtual

Fallout from the Flattenable change, update all its uses.

Additionnaly, fix/tighten size checks when (un)flatten()ing
things.

Removed the assumption by some flattenables (e.g.: Fence)
that the size passed to them would be exact (it can
and will be larger in some cases)

The code in Parcel is a bit complicated so that we don't
have to expose the full implementation (and also to
keep the code smallish).

Change-Id: I0bf1c8aca2a3128491b4f45510bc46667e566dde
/frameworks/native/include/binder/Parcel.h
2098517e3e12a401005d7a7510d6c4943707b98d 31-Aug-2012 Mathias Agopian <mathias@google.com> make sure Parcel handles 0-sized LightFlatenables

Change-Id: Ib30a1c0228f8a938abaa0c7c8a6ba32ffd971121
/frameworks/native/include/binder/Parcel.h
8683fca395d01734ec7946e9f0595ec5d7b754c6 13-Aug-2012 Mathias Agopian <mathias@google.com> improve [un]marshalling of non-binder objects

this change introduces a new class LightFlattenable<> which is
a protocol to flatten simple objects that don't require
binders or file descriptors; the benefit of this protocol is that
it doesn't require the objects to have a virtual table and give us
a consitant way of doing this.

we also introduce an implementation of this protocol for
POD structures, LightFlattenablePod<>.

Parcel has been update to handle this protocol automatically.

Sensor, Rect, Point and Region now use this new protocol.

Change-Id: Icb3ce7fa1d785249eb666f39c2129f2fc143ea4a
/frameworks/native/include/binder/Parcel.h
93ff1f985e233fe04412a65041e977c9f0c21f5b 05-Nov-2011 Jeff Brown <jeffbrown@google.com> Fix a leak in Parcel::writeBlob.

Was mistakenly assuming that Parcel::writeFileDescriptor took
ownership of the fd that was passed in. It does not!
Added some comments and a default parameter to allow the caller
to specify whether it wishes the Parcel to take ownership.

Bug: 5563374
Change-Id: I5a12f51d582bf246ce90133cce7690bb9bca93f6
/frameworks/native/include/binder/Parcel.h
7746cc318829358bb2c4dc0a03d40a7856a6d13e 04-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix handling of "allow fds" state.

Didn't take into account nesting of bundles. Boo.

Change-Id: Ic8cf21ad8d6f4938a3e105128624c9d162310d01
/frameworks/native/include/binder/Parcel.h
5707dbf15d0b44c88fbaa6dd271097f2d42932e0 24-Sep-2011 Jeff Brown <jeffbrown@google.com> Transfer large bitmaps using ashmem.
Bug: 5224703

Change-Id: If385a66adf4c6179a0bb49c0e6d09a9567e23808
/frameworks/native/include/binder/Parcel.h
8938ed2c8e906fc332301b64787728d4d34da571 29-Sep-2011 Dianne Hackborn <hackbod@google.com> Add mechanism for Parcel to not allow FDs to be written to it.

This is to help implement issue #5224703.

Change-Id: I026a5890495537d15b57fe61227a640aac806d46
/frameworks/native/include/binder/Parcel.h
8acda7803417cc38cb284298fcb86b479d11fdb5 25-Sep-2011 Bart Sears <bsears@google.com> Revert "Transfer large bitmaps using ashmem. Bug: 5224703"

This reverts commit 56c58f66b97d22fe7e7de1f7d9548bcbe1973029

This CL was causing the browser to crash when adding bookmarks, visiting the bookmarks page, and sharing pages (see bug http://b/issue?id=5369231
/frameworks/native/include/binder/Parcel.h
f4c1088d750a182bd85889c86b3c9ef4ba772405 24-Sep-2011 Jeff Brown <jeffbrown@google.com> Transfer large bitmaps using ashmem.
Bug: 5224703

Change-Id: Ic7481dd9f173986f085a8bbdcc59bbe9830d7a44
/frameworks/native/include/binder/Parcel.h
51faf46e2958c57dab46d9420e585319125c7c42 13-Apr-2011 Andreas Huber <andih@google.com> Parcel::appendFrom({const } Parcel *parcel, size_t, size_t)

As far as I can tell "parcel" isn't actually modified by the implementation.

Change-Id: Ib806eefdc13c97b932773e1dc9ca3a4aad4422b2
/frameworks/native/include/binder/Parcel.h
70081a1511955f53bd0ed7f2aec9a1bf09f0f379 27-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> Replace several IPCThreadState::get() lookups with one.

Also, make StrictMode's ThreadLocal final.

Change-Id: I08d400ed254fa67bb7a3dae1227f205a54c00df0
/frameworks/native/include/binder/Parcel.h
a877cd85b5a026384542e3271fc310d6a8fe24c6 08-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> More StrictMode work, keeping Binder & BlockGuard's thread-locals in-sync.

Change-Id: Ia67cabcc17a73a0f15907ffea683d06bc41b90e5
/frameworks/native/include/binder/Parcel.h
837a0d0fb2c3fba8082d47d04cb6120af1eb9a54 14-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> Add Parcel::readExceptionCode() and Parcel::writeNoException()

Add native Parcel methods analogous to the Java versions.

Currently, these don't do much, but upcoming StrictMode work changes
the RPC calling conventions in some cases, so it's important that
everybody uses these consistently, rather than having a lot of code
trying to parse RPC responses out of Parcels themselves.

As a summary, the current convention that Java Binder services use is
to prepend the reply Parcel with an int32 signaling the exception
status:

0: no exception
-1: Security exception
-2: Bad Parcelable
-3: ...
-4: ...
-5: ...

... followed by Parceled String if the exception code is non-zero.

With an upcoming change, it'll be the case that a response Parcel can,
non-exceptionally return rich data in the header, and also return data
to the caller. The important thing to note in this new case is that
the first int32 in the reply parcel *will not be zero*, so anybody
manually checking for it with reply.readInt32() will get false
negative failures.

Short summary: If you're calling into a Java service and manually
checking the exception status with reply.readInt32(), change it to
reply.readExceptionCode().

Change-Id: I23f9a0e53a8cfbbd9759242cfde16723641afe04
/frameworks/native/include/binder/Parcel.h
702ea9d42f52fc145090c0f0bfbe64993e4b8b33 18-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Start of work on passing around StrictMode policy over Binder calls.

This is (intendend to be) a no-op change.

At this stage, Binder RPCs just have an additional uint32 passed around
in the header, right before the interface name. But nothing is actually
done with them yet. That value should right now always be 0.

This now boots and seems to work.

Change-Id: I135b7c84f07575e6b9717fef2424d301a450df7b
/frameworks/native/include/binder/Parcel.h
98e71ddaede9a0bfb681fd237bec1f66c6c53193 12-Feb-2010 Mathias Agopian <mathias@google.com> remove a dependency of GraphicBuffer (libui) on Parcel (libbinder).

Add a Flattenable interface to libutils which can be used to flatten
an object into bytestream + filedescriptor stream.
Parcel is modified to handle Flattenable. And GraphicBuffer implements
Flattenable.

Except for the overlay classes libui is now independent of libbinder.
/frameworks/native/include/binder/Parcel.h
84a6d041e2c69d4d0b69269a0b59e725c9f119a3 17-Aug-2009 Andreas Huber <andih@google.com> Support for marshalling pointers / intptr_t in Parcel.

Some refactoring to eliminate code duplication in Parcel implementation.
/frameworks/native/include/binder/Parcel.h
83c0446f27b9542d6c2e724817b2b2d8d1f55085 23-May-2009 Mathias Agopian <mathias@google.com> some work to try to reduce the code size of some native libraries

- make sure that all binder Bn classes define a ctor and dtor in their respective library.
This avoids duplication of the ctor/dtor in libraries where these objects are instantiated.
This is also cleaner, should we want these ctor/dtor to do something one day.

- same change as above for some Bp classes and various other non-binder classes

- moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere.

- improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere

- IBinder::getInterfaceDescriptor() now returns a "const String16&" instead of String16, which saves calls to String16 and ~String16

- implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called.
The cache makes BpBinder bigger, so we need to figure out if we need this method at all.
/frameworks/native/include/binder/Parcel.h
a47f02afb1e1f2c4abd9379c13903a5dde89d354 22-May-2009 Mathias Agopian <mathias@google.com> change 2115 wasn't merged properly into master. this fixes that.

Merge change 2115 into donut

* changes:
bring the native_handle stuff back from master_gl

Conflicts:

libs/binder/Parcel.cpp
/frameworks/native/include/binder/Parcel.h
c5b2c0bf8007562536b822eb060fc54a01f8e08b 20-May-2009 Mathias Agopian <mathias@google.com> move libbinder's header files under includes/binder
/frameworks/native/include/binder/Parcel.h