diff options
| author | 2021-05-03 18:27:24 +0000 | |
|---|---|---|
| committer | 2021-05-03 18:29:53 +0000 | |
| commit | 90c1f9ae471e3e213dfad92f64bc1a18aea4b2b9 (patch) | |
| tree | 9082204e82c5c8c07979d08083531d175c4a2eb5 | |
| parent | 82261324f24bc43e30e12476f242d63397858df0 (diff) | |
libbinder: size checks for Parcel+IBinder
(the ones for Parcel are just improved)
These types are used in prebuilts, so it's useful to know the size
changes w/ having to wait for DOA devices.
Bug: 166282674
Test: build only (these are compile-time checks)
Change-Id: Ib6deda78a3f2bf537b3163ae7ea5a703b1c8e289
| -rw-r--r-- | libs/binder/Binder.cpp | 10 | ||||
| -rw-r--r-- | libs/binder/Parcel.cpp | 6 |
2 files changed, 15 insertions, 1 deletions
diff --git a/libs/binder/Binder.cpp b/libs/binder/Binder.cpp index d964d255fe..d5bdd1c803 100644 --- a/libs/binder/Binder.cpp +++ b/libs/binder/Binder.cpp @@ -29,6 +29,16 @@ namespace android { +// Service implementations inherit from BBinder and IBinder, and this is frozen +// in prebuilts. +#ifdef __LP64__ +static_assert(sizeof(IBinder) == 24); +static_assert(sizeof(BBinder) == 40); +#else +static_assert(sizeof(IBinder) == 12); +static_assert(sizeof(BBinder) == 20); +#endif + // --------------------------------------------------------------------------- IBinder::IBinder() diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp index 98ca829031..39d6a2ec4f 100644 --- a/libs/binder/Parcel.cpp +++ b/libs/binder/Parcel.cpp @@ -78,7 +78,11 @@ static size_t pad_size(size_t s) { namespace android { // many things compile this into prebuilts on the stack -static_assert(sizeof(Parcel) == 60 || sizeof(Parcel) == 120); +#ifdef __LP64__ +static_assert(sizeof(Parcel) == 120); +#else +static_assert(sizeof(Parcel) == 60); +#endif static std::atomic<size_t> gParcelGlobalAllocCount; static std::atomic<size_t> gParcelGlobalAllocSize; |