dawn/native: Simplify the ApiSeq helpers.

They didn't need to be inline nor return a potential error. Also take
mutable parameters by pointer.

Bug: None
Change-Id: If3c71b43e08390020265d71c26c0c382afc01712
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/194600
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/native/Surface.cpp b/src/dawn/native/Surface.cpp
index 7e5f268..811fec7 100644
--- a/src/dawn/native/Surface.cpp
+++ b/src/dawn/native/Surface.cpp
@@ -523,12 +523,12 @@
         [&capabilities](const PhysicalDeviceSurfaceCapabilities& caps) -> MaybeError {
             capabilities->nextInChain = nullptr;
             capabilities->usages = caps.usages;
-            DAWN_TRY(utils::AllocateApiSeqFromStdVector(capabilities->formats,
-                                                        capabilities->formatCount, caps.formats));
-            DAWN_TRY(utils::AllocateApiSeqFromStdVector(
-                capabilities->presentModes, capabilities->presentModeCount, caps.presentModes));
-            DAWN_TRY(utils::AllocateApiSeqFromStdVector(
-                capabilities->alphaModes, capabilities->alphaModeCount, caps.alphaModes));
+            utils::AllocateApiSeqFromStdVector(&capabilities->formats, &capabilities->formatCount,
+                                               caps.formats);
+            utils::AllocateApiSeqFromStdVector(&capabilities->presentModes,
+                                               &capabilities->presentModeCount, caps.presentModes);
+            utils::AllocateApiSeqFromStdVector(&capabilities->alphaModes,
+                                               &capabilities->alphaModeCount, caps.alphaModes);
             return {};
         }));
 
@@ -536,9 +536,9 @@
 }
 
 void APISurfaceCapabilitiesFreeMembers(WGPUSurfaceCapabilities capabilities) {
-    utils::FreeApiSeq(capabilities.formats, capabilities.formatCount);
-    utils::FreeApiSeq(capabilities.presentModes, capabilities.presentModeCount);
-    utils::FreeApiSeq(capabilities.alphaModes, capabilities.alphaModeCount);
+    utils::FreeApiSeq(&capabilities.formats, &capabilities.formatCount);
+    utils::FreeApiSeq(&capabilities.presentModes, &capabilities.presentModeCount);
+    utils::FreeApiSeq(&capabilities.alphaModes, &capabilities.alphaModeCount);
 }
 
 MaybeError Surface::GetCurrentTexture(SurfaceTexture* surfaceTexture) const {
diff --git a/src/dawn/native/utils/WGPUHelpers.h b/src/dawn/native/utils/WGPUHelpers.h
index ae18e3f..c501fd7 100644
--- a/src/dawn/native/utils/WGPUHelpers.h
+++ b/src/dawn/native/utils/WGPUHelpers.h
@@ -146,26 +146,25 @@
 // Given a std vector, allocate an equivalent array that can be returned in an API's foos/fooCount
 // pair of fields. The apiData must eventually be freed using FreeApiSeq.
 template <typename T>
-inline MaybeError AllocateApiSeqFromStdVector(const T*& apiData,
-                                              size_t& apiSize,
-                                              const std::vector<T>& vector) {
-    apiSize = vector.size();
-    if (apiSize > 0) {
-        T* mutableData = new T[apiSize];
-        memcpy(mutableData, vector.data(), apiSize * sizeof(T));
-        apiData = mutableData;
+void AllocateApiSeqFromStdVector(const T** apiData, size_t* apiSize, const std::vector<T>& vector) {
+    size_t size = vector.size();
+    *apiSize = size;
+
+    if (size > 0) {
+        T* mutableData = new T[size];
+        memcpy(mutableData, vector.data(), size * sizeof(T));
+        *apiData = mutableData;
     } else {
-        apiData = nullptr;
+        *apiData = nullptr;
     }
-    return {};
 }
 
 // Free an API sequence that was allocated by AllocateApiSeqFromStdVector
 template <typename T>
-inline void FreeApiSeq(T*& apiData, size_t& apiSize) {
-    delete[] apiData;
-    apiData = nullptr;
-    apiSize = 0;
+void FreeApiSeq(T** apiData, size_t* apiSize) {
+    delete[] *apiData;
+    *apiData = nullptr;
+    *apiSize = 0;
 }
 
 }  // namespace dawn::native::utils