diff options
author | Ashok Bhat <ashok.bhat@arm.com> | 2014-02-06 14:11:08 +0000 |
---|---|---|
committer | David Butcher <david.butcher@arm.com> | 2014-02-07 17:52:08 +0000 |
commit | d2be74aa57aef69853e3451839dab43cfad39a02 (patch) | |
tree | a05beae8b41df8a68898a3c04202e8ddd9b3aeb5 /modules/gralloc | |
parent | 037335ebe826289445fd2ba14e95ff41d57ad928 (diff) | |
download | hardware_libhardware-d2be74aa57aef69853e3451839dab43cfad39a02.zip hardware_libhardware-d2be74aa57aef69853e3451839dab43cfad39a02.tar.gz hardware_libhardware-d2be74aa57aef69853e3451839dab43cfad39a02.tar.bz2 |
AArch64: Calculate private_handle_t's numInts
A constant sNumInts with a value of 6 was being assigned to the numInts
attribute in the private_handle_t constructor, and was also used in the
validate method. That constant value is appropriate for 32-bit systems
but is not appropriate for a 64-bit system where uintptr_t used for
base attribute will be 64-bit.
sNumInts is now changed to a static inline function that calculates
numInts.
Change-Id: I482ddb5915c9ff55fb2e2a87887a0ec2dc2299ed
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Diffstat (limited to 'modules/gralloc')
-rw-r--r-- | modules/gralloc/gralloc_priv.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/modules/gralloc/gralloc_priv.h b/modules/gralloc/gralloc_priv.h index 9f32d58..22a5715 100644 --- a/modules/gralloc/gralloc_priv.h +++ b/modules/gralloc/gralloc_priv.h @@ -79,7 +79,9 @@ struct private_handle_t { int pid; #ifdef __cplusplus - static const int sNumInts = 6; + static inline int sNumInts() { + return (((sizeof(private_handle_t) - sizeof(native_handle_t))/sizeof(int)) - sNumFds); + } static const int sNumFds = 1; static const int sMagic = 0x3141592; @@ -88,7 +90,7 @@ struct private_handle_t { base(0), pid(getpid()) { version = sizeof(native_handle); - numInts = sNumInts; + numInts = sNumInts(); numFds = sNumFds; } ~private_handle_t() { @@ -98,7 +100,7 @@ struct private_handle_t { static int validate(const native_handle* h) { const private_handle_t* hnd = (const private_handle_t*)h; if (!h || h->version != sizeof(native_handle) || - h->numInts != sNumInts || h->numFds != sNumFds || + h->numInts != sNumInts() || h->numFds != sNumFds || hnd->magic != sMagic) { ALOGE("invalid gralloc handle (at %p)", h); |