diff --git a/dom/base/StructuredCloneHolder.cpp b/dom/base/StructuredCloneHolder.cpp index 71eab63138..a7afd310cb 100644 --- a/dom/base/StructuredCloneHolder.cpp +++ b/dom/base/StructuredCloneHolder.cpp @@ -1343,7 +1343,6 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx, static_cast(aContent); nsCOMPtr parent = do_QueryInterface(mParent); RefPtr canvas = OffscreenCanvas::CreateFromCloneData(parent, data); - delete data; JS::Rooted value(aCx); if (!GetOrCreateDOMReflector(aCx, canvas, &value)) { @@ -1351,6 +1350,7 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx, return false; } + delete data; aReturnObject.set(&value.toObject()); return true; } @@ -1363,7 +1363,6 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx, static_cast(aContent); nsCOMPtr parent = do_QueryInterface(mParent); RefPtr bitmap = ImageBitmap::CreateFromCloneData(parent, data); - delete data; JS::Rooted value(aCx); if (!GetOrCreateDOMReflector(aCx, bitmap, &value)) { @@ -1371,6 +1370,7 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx, return false; } + delete data; aReturnObject.set(&value.toObject()); return true; }