make sure Parcel handles 0-sized LightFlatenables

Change-Id: Ib30a1c0228f8a938abaa0c7c8a6ba32ffd971121
diff --git a/include/binder/Parcel.h b/include/binder/Parcel.h
index 877b17c..3ff95d2 100644
--- a/include/binder/Parcel.h
+++ b/include/binder/Parcel.h
@@ -285,9 +285,12 @@
             return err;
         }
     }
-    void* buffer = writeInplace(size);
-    return buffer == NULL ? NO_MEMORY :
-        val.flatten(buffer);
+    if (size) {
+        void* buffer = writeInplace(size);
+        return buffer == NULL ? NO_MEMORY :
+                val.flatten(buffer);
+    }
+    return NO_ERROR;
 }
 
 template<typename T>
@@ -303,9 +306,12 @@
         }
         size = s;
     }
-    void const* buffer = readInplace(size);
-    return buffer == NULL ? NO_MEMORY :
-        val.unflatten(buffer, size);
+    if (size) {
+        void const* buffer = readInplace(size);
+        return buffer == NULL ? NO_MEMORY :
+                val.unflatten(buffer, size);
+    }
+    return NO_ERROR;
 }
 
 // ---------------------------------------------------------------------------