Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90c1f9ae authored by Steven Moreland's avatar Steven Moreland
Browse files

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
parent 82261324
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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()
+5 −1
Original line number Diff line number Diff line
@@ -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;