summaryrefslogtreecommitdiffstats
path: root/libutils
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-11-15 06:17:14 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-11-15 06:17:14 +0000
commiteaab99db0bfea48dd507fb4be705c136568d001a (patch)
tree3009c6e673e423dcc11109897f7f26c11ce8c966 /libutils
parentf0db8d044bbd06e824450e6673bacd8131a3c1f8 (diff)
parent73a1bebeaa1bd9ce00b6178c76e420e827da79df (diff)
downloadsystem_core-eaab99db0bfea48dd507fb4be705c136568d001a.tar.gz
system_core-eaab99db0bfea48dd507fb4be705c136568d001a.tar.bz2
system_core-eaab99db0bfea48dd507fb4be705c136568d001a.zip
Merge cherrypicks of [9736158, 9736323, 9736226, 9736227, 9736476, 9736477, 9736478, 9736176, 9736136] into qt-qpr1-b-release
Change-Id: I37a1974faabff389449ab547d92ffeca604284d8
Diffstat (limited to 'libutils')
-rw-r--r--libutils/include/utils/Flattenable.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/libutils/include/utils/Flattenable.h b/libutils/include/utils/Flattenable.h
index 9d006023d..2c4b8075d 100644
--- a/libutils/include/utils/Flattenable.h
+++ b/libutils/include/utils/Flattenable.h
@@ -47,7 +47,12 @@ public:
template<size_t N>
static size_t align(void*& buffer) {
- return align<N>( const_cast<void const*&>(buffer) );
+ static_assert(!(N & (N - 1)), "Can only align to a power of 2.");
+ void* b = buffer;
+ buffer = reinterpret_cast<void*>((uintptr_t(buffer) + (N-1)) & ~(N-1));
+ size_t delta = size_t(uintptr_t(buffer) - uintptr_t(b));
+ memset(b, 0, delta);
+ return delta;
}
static void advance(void*& buffer, size_t& size, size_t offset) {