@@ -147,38 +147,6 @@ static uv_async_t dispatch_debug_messages_async;
147
147
static Isolate* node_isolate = nullptr ;
148
148
static v8::Platform* default_platform;
149
149
150
- class ArrayBufferAllocator : public ArrayBuffer ::Allocator {
151
- public:
152
- // Impose an upper limit to avoid out of memory errors that bring down
153
- // the process.
154
- static const size_t kMaxLength = 0x3fffffff ;
155
- static ArrayBufferAllocator the_singleton;
156
- virtual ~ArrayBufferAllocator () = default ;
157
- virtual void * Allocate (size_t length) override ;
158
- virtual void * AllocateUninitialized (size_t length) override ;
159
- virtual void Free (void * data, size_t length) override ;
160
- private:
161
- ArrayBufferAllocator () = default ;
162
- DISALLOW_COPY_AND_ASSIGN (ArrayBufferAllocator);
163
- };
164
-
165
- ArrayBufferAllocator ArrayBufferAllocator::the_singleton;
166
-
167
-
168
- void * ArrayBufferAllocator::Allocate (size_t length) {
169
- return calloc (length, 1 );
170
- }
171
-
172
-
173
- void * ArrayBufferAllocator::AllocateUninitialized (size_t length) {
174
- return malloc (length);
175
- }
176
-
177
-
178
- void ArrayBufferAllocator::Free (void * data, size_t length) {
179
- free (data);
180
- }
181
-
182
150
183
151
static void CheckImmediate (uv_check_t * handle) {
184
152
Environment* env = Environment::from_immediate_check_handle (handle);
@@ -3675,8 +3643,6 @@ void Init(int* argc,
3675
3643
V8::SetFlagsFromString (expose_debug_as, sizeof (expose_debug_as) - 1 );
3676
3644
}
3677
3645
3678
- V8::SetArrayBufferAllocator (&ArrayBufferAllocator::the_singleton);
3679
-
3680
3646
if (!use_debug_agent) {
3681
3647
RegisterDebugSignalHandler ();
3682
3648
}
@@ -3878,7 +3844,10 @@ Environment* CreateEnvironment(Isolate* isolate,
3878
3844
// node instance.
3879
3845
static void StartNodeInstance (void * arg) {
3880
3846
NodeInstanceData* instance_data = static_cast <NodeInstanceData*>(arg);
3881
- Isolate* isolate = Isolate::New ();
3847
+ Isolate::CreateParams params;
3848
+ ArrayBufferAllocator array_buffer_allocator;
3849
+ params.array_buffer_allocator = &array_buffer_allocator;
3850
+ Isolate* isolate = Isolate::New (params);
3882
3851
// Fetch a reference to the main isolate, so we have a reference to it
3883
3852
// even when we need it to access it from another (debugger) thread.
3884
3853
if (instance_data->is_main ())
0 commit comments