Use new read(Embedded)Buffer API.

Bug: 34134129
Test: hidl_test
Change-Id: Iad3f9d4dd30b4b8b92295816fbed25c56e52fb0a
diff --git a/FmqType.cpp b/FmqType.cpp
index c22fd55..2f410f7 100644
--- a/FmqType.cpp
+++ b/FmqType.cpp
@@ -68,27 +68,16 @@
         parcelObj + (parcelObjIsPointer ? "->" : ".");
 
     if (isReader) {
-        out << name
-            << " = (const "
-            << fullName()
-            << " *)"
+        out << "_hidl_err = "
             << parcelObjDeref
-            << "readBuffer("
-            << "&"
+            << "readBuffer(&"
             << parentName
-            << ");\n";
+            << ", "
+            << " reinterpret_cast<const void **>("
+            << "&" << name
+            << "));\n\n";
 
-        out << "if ("
-            << name
-            << " == nullptr) {\n";
-
-        out.indent();
-
-        out << "_hidl_err = ::android::UNKNOWN_ERROR;\n";
-        handleError2(out, mode);
-
-        out.unindent();
-        out << "}\n\n";
+        handleError(out, mode);
     } else {
         out << "_hidl_err = "
             << parcelObjDeref