Merge "Change size_t member of hidl_memory type to uint64_t"
am: 1658ce92e3

Change-Id: I6dda25e98d4b5f1652aa38cfb56e7bf2b55cfe08
diff --git a/base/include/hidl/HidlSupport.h b/base/include/hidl/HidlSupport.h
index 7737011..14afce3 100644
--- a/base/include/hidl/HidlSupport.h
+++ b/base/include/hidl/HidlSupport.h
@@ -270,7 +270,7 @@
         return mName;
     }
 
-    size_t size() const {
+    uint64_t size() const {
         return mSize;
     }
 
@@ -280,9 +280,9 @@
     static const size_t kOffsetOfName;
 
 private:
-    hidl_handle mHandle;
-    size_t mSize;
-    hidl_string mName;
+    hidl_handle mHandle __attribute__ ((aligned(8)));
+    uint64_t mSize __attribute__ ((aligned(8)));
+    hidl_string mName __attribute__ ((aligned(8)));
 };
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -293,6 +293,7 @@
         : mBuffer(NULL),
           mSize(0),
           mOwnsBuffer(true) {
+        static_assert(hidl_vec<T>::kOffsetOfBuffer == 0, "wrong offset");
     }
 
     hidl_vec(const hidl_vec<T> &other) : hidl_vec() {
diff --git a/transport/HidlBinderSupport.cpp b/transport/HidlBinderSupport.cpp
index 746c2f9..55f9a91 100644
--- a/transport/HidlBinderSupport.cpp
+++ b/transport/HidlBinderSupport.cpp
@@ -30,6 +30,8 @@
 
 const size_t hidl_memory::kOffsetOfHandle = offsetof(hidl_memory, mHandle);
 const size_t hidl_memory::kOffsetOfName = offsetof(hidl_memory, mName);
+static_assert(hidl_memory::kOffsetOfHandle == 0, "wrong offset");
+static_assert(hidl_memory::kOffsetOfName == 24, "wrong offset");
 
 status_t readEmbeddedFromParcel(hidl_memory * /* memory */,
         const Parcel &parcel, size_t parentHandle, size_t parentOffset) {
@@ -69,6 +71,7 @@
 }
 // static
 const size_t hidl_string::kOffsetOfBuffer = offsetof(hidl_string, mBuffer);
+static_assert(hidl_string::kOffsetOfBuffer == 0, "wrong offset");
 
 status_t readEmbeddedFromParcel(hidl_string * /* string */,
         const Parcel &parcel, size_t parentHandle, size_t parentOffset) {