From 7d7c1ab08a6f39c1217c232b818c763d852136e1 Mon Sep 17 00:00:00 2001 From: roytam1 Date: Wed, 19 Jan 2022 10:14:30 +0800 Subject: [PATCH] Bug 1741201 - Increase intermediate byte storage maximum capacity. r=janv, a=tjr --- dom/indexedDB/ActorsParent.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp index 9203f9ee41..52f221d78a 100644 --- a/dom/indexedDB/ActorsParent.cpp +++ b/dom/indexedDB/ActorsParent.cpp @@ -26311,13 +26311,17 @@ ObjectStoreAddOrPutRequestOp::DoDatabaseWork(DatabaseConnection* aConnection) return rv; } } else { - nsCString flatCloneData; - flatCloneData.SetLength(cloneDataSize); - auto iter = cloneData.Start(); - cloneData.ReadBytes(iter, flatCloneData.BeginWriting(), cloneDataSize); + AutoTArray flatCloneData; // 4096 from JSStructuredCloneData + if (!flatCloneData.SetLength(cloneDataSize, fallible)) { + return NS_ERROR_OUT_OF_MEMORY; + } + { // iter scope + auto iter = cloneData.Start(); + MOZ_ALWAYS_TRUE(cloneData.ReadBytes(iter, flatCloneData.Elements(), cloneDataSize)); + } // Compress the bytes before adding into the database. - const char* uncompressed = flatCloneData.BeginReading(); + const char* uncompressed = flatCloneData.Elements(); size_t uncompressedLength = cloneDataSize; size_t compressedLength = snappy::MaxCompressedLength(uncompressedLength);