electron/patches/v8/add_realloc.patch
Electron Bot 53033a66b1
chore: bump chromium to 7d4ac110045b7647fa8a81f5f0709 (master) (#24970)
* chore: bump chromium in DEPS to 760c905ccca34d8ed83c54f6a42c42a375792a6b

* chore: update patches

- Introduce WebContentsObserverList to encapsulate common behaviour
  https://chromium-review.googlesource.com/c/chromium/src/+/2343269
- DumpAccTree mac testing: refactor tree formatter logic to make it
suitable for nested attribute calls
  https://chromium-review.googlesource.com/c/chromium/src/+/2274545
- Fix FontPlatformDataMacTest.VariableOpticalSizingThreshold for Big Sur
  https://chromium-review.googlesource.com/c/chromium/src/+/2351299

* chore: bump chromium in DEPS to b04584161e07d4ac110045b7647fa8a81f5f0709

* chore: update patches

* [printing] Move printing::MarginType to //printing/mojom/print.mojom

https://chromium-review.googlesource.com/c/chromium/src/+/2341222

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-08-14 18:51:28 -07:00

46 lines
1.8 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Shelley Vohr <shelley.vohr@gmail.com>
Date: Mon, 22 Oct 2018 10:47:11 -0700
Subject: add_realloc.patch
Blink overrides ArrayBuffer's allocator with its own one, while Node simply
uses malloc and free, so we need to use v8's allocator in Node. As part of the
10.6.0 upgrade, we needed to make SerializerDelegate accept an allocator
argument in its constructor, and override ReallocateBufferMemory and
FreeBufferMemory to use the allocator. We cannot simply allocate and then memcpy
when we override ReallocateBufferMemory, so we therefore need to implement
Realloc on the v8 side.
diff --git a/include/v8.h b/include/v8.h
index 263e7da8f1ff5136382867aaebe4bc138afa0a49..913bea674bf076df2a9946752d0eacfa93bda6bf 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -5096,6 +5096,13 @@ class V8_EXPORT ArrayBuffer : public Object {
*/
virtual void* AllocateUninitialized(size_t length) = 0;
+ /**
+ * Free the memory block of size |length|, pointed to by |data|.
+ * That memory must be previously allocated by |Allocate| and not yet freed
+ * with a call to |Free| or |Realloc|
+ */
+ virtual void* Realloc(void* data, size_t length);
+
/**
* Free the memory block of size |length|, pointed to by |data|.
* That memory is guaranteed to be previously allocated by |Allocate|.
diff --git a/src/api/api.cc b/src/api/api.cc
index 5b5985fe4adfabbdc8629ff5e9a28f0fb6e706b4..acb9b0ed3dfbb5286a9990ffaa7197045ea692fe 100644
--- a/src/api/api.cc
+++ b/src/api/api.cc
@@ -536,6 +536,10 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) {
i::V8::SetSnapshotBlob(snapshot_blob);
}
+void* v8::ArrayBuffer::Allocator::Realloc(void* data, size_t length) {
+ UNIMPLEMENTED();
+}
+
namespace {
class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {