12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: Shelley Vohr <[email protected]>
- 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 6b672ca750cec5e93dad948007af9b062ed66beb..3fbba577edd160184fa431cb796025c9038b25bb 100644
- --- a/include/v8.h
- +++ b/include/v8.h
- @@ -5374,6 +5374,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 a5c658a799255f9fbc4a4030b5e16be324aac87f..50173de3f145b4febcc29c03080306c137918527 100644
- --- a/src/api/api.cc
- +++ b/src/api/api.cc
- @@ -324,6 +324,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 {
|