Merge "Make Parcel::readOutVectorSizeWithCheck public" am: 6c504652a2 am: dfe8d4b557 am: afbc0d7d65 am: 62f13f7db7 am: 4961c66990

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2617537

Change-Id: Ic4e8e20c1a26258432fa6220e749e3dbde987e77
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/libs/binder/include/binder/Parcel.h b/libs/binder/include/binder/Parcel.h
index 15bb325..52cf1d1 100644
--- a/libs/binder/include/binder/Parcel.h
+++ b/libs/binder/include/binder/Parcel.h
@@ -542,6 +542,12 @@
     template<typename T>
     status_t            resizeOutVector(std::unique_ptr<std::vector<T>>* val) const __attribute__((deprecated("use std::optional version instead")));
 
+    // Retrieve the size of an out vector and check against internal limits to
+    // the size.
+    // The returned size may be negative so caller must handle appropriately.
+    // elemSize is the size of the element on the wire, if unknown use `1`.
+    status_t readOutVectorSizeWithCheck(size_t elmSize, int32_t* size) const;
+
     // Like Parcel.java's readExceptionCode().  Reads the first int32
     // off of a Parcel's header, returning 0 or the negative error
     // code on exceptions, but also deals with skipping over rich
@@ -643,8 +649,6 @@
     status_t            flattenBinder(const sp<IBinder>& binder);
     status_t            unflattenBinder(sp<IBinder>* out) const;
 
-    status_t readOutVectorSizeWithCheck(size_t elmSize, int32_t* size) const;
-
     template<class T>
     status_t            readAligned(T *pArg) const;