Return nullptr from MakeErrorMapped if OOM allocating staging data

Bug: chromium:970305
Change-Id: If5ea037170260b8b8dddf3e3428ad2e77d4b67a4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/7800
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
diff --git a/src/dawn_wire/server/ObjectStorage.h b/src/dawn_wire/server/ObjectStorage.h
index 689dc0b..4fc3016 100644
--- a/src/dawn_wire/server/ObjectStorage.h
+++ b/src/dawn_wire/server/ObjectStorage.h
@@ -37,10 +37,13 @@
     template <typename T>
     struct ObjectData : public ObjectDataBase<T> {};
 
+    enum class BufferMapWriteState { Unmapped, Mapped, MapError };
+
     template <>
     struct ObjectData<DawnBuffer> : public ObjectDataBase<DawnBuffer> {
         void* mappedData = nullptr;
         size_t mappedDataSize = 0;
+        BufferMapWriteState mapWriteState = BufferMapWriteState::Unmapped;
     };
 
     // Keeps track of the mapping between client IDs and backend objects.