src: enable v8 deprecation warnings and fix them
Turn on V8 API deprecation warnings. Fix up the no-arg Isolate::New() calls in src/node.cc and src/debug-agent.cc. PR-URL: https://github.com/nodejs/io.js/pull/2091 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
This commit is contained in:
parent
d571680638
commit
9a03ae6356
2
node.gyp
2
node.gyp
@ -180,6 +180,8 @@
|
|||||||
'NODE_ARCH="<(target_arch)"',
|
'NODE_ARCH="<(target_arch)"',
|
||||||
'NODE_PLATFORM="<(OS)"',
|
'NODE_PLATFORM="<(OS)"',
|
||||||
'NODE_WANT_INTERNALS=1',
|
'NODE_WANT_INTERNALS=1',
|
||||||
|
# Warn when using deprecated V8 APIs.
|
||||||
|
'V8_DEPRECATION_WARNINGS=1',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
|
@ -160,7 +160,10 @@ void Agent::Stop() {
|
|||||||
|
|
||||||
void Agent::WorkerRun() {
|
void Agent::WorkerRun() {
|
||||||
static const char* argv[] = { "node", "--debug-agent" };
|
static const char* argv[] = { "node", "--debug-agent" };
|
||||||
Isolate* isolate = Isolate::New();
|
Isolate::CreateParams params;
|
||||||
|
ArrayBufferAllocator array_buffer_allocator;
|
||||||
|
params.array_buffer_allocator = &array_buffer_allocator;
|
||||||
|
Isolate* isolate = Isolate::New(params);
|
||||||
{
|
{
|
||||||
Locker locker(isolate);
|
Locker locker(isolate);
|
||||||
Isolate::Scope isolate_scope(isolate);
|
Isolate::Scope isolate_scope(isolate);
|
||||||
|
39
src/node.cc
39
src/node.cc
@ -152,38 +152,6 @@ static uv_async_t dispatch_debug_messages_async;
|
|||||||
static Isolate* node_isolate = nullptr;
|
static Isolate* node_isolate = nullptr;
|
||||||
static v8::Platform* default_platform;
|
static v8::Platform* default_platform;
|
||||||
|
|
||||||
class ArrayBufferAllocator : public ArrayBuffer::Allocator {
|
|
||||||
public:
|
|
||||||
// Impose an upper limit to avoid out of memory errors that bring down
|
|
||||||
// the process.
|
|
||||||
static const size_t kMaxLength = 0x3fffffff;
|
|
||||||
static ArrayBufferAllocator the_singleton;
|
|
||||||
virtual ~ArrayBufferAllocator() = default;
|
|
||||||
virtual void* Allocate(size_t length) override;
|
|
||||||
virtual void* AllocateUninitialized(size_t length) override;
|
|
||||||
virtual void Free(void* data, size_t length) override;
|
|
||||||
private:
|
|
||||||
ArrayBufferAllocator() = default;
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(ArrayBufferAllocator);
|
|
||||||
};
|
|
||||||
|
|
||||||
ArrayBufferAllocator ArrayBufferAllocator::the_singleton;
|
|
||||||
|
|
||||||
|
|
||||||
void* ArrayBufferAllocator::Allocate(size_t length) {
|
|
||||||
return calloc(length, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void* ArrayBufferAllocator::AllocateUninitialized(size_t length) {
|
|
||||||
return malloc(length);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ArrayBufferAllocator::Free(void* data, size_t length) {
|
|
||||||
free(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void CheckImmediate(uv_check_t* handle) {
|
static void CheckImmediate(uv_check_t* handle) {
|
||||||
Environment* env = Environment::from_immediate_check_handle(handle);
|
Environment* env = Environment::from_immediate_check_handle(handle);
|
||||||
@ -3711,8 +3679,6 @@ void Init(int* argc,
|
|||||||
V8::SetFlagsFromString(expose_debug_as, sizeof(expose_debug_as) - 1);
|
V8::SetFlagsFromString(expose_debug_as, sizeof(expose_debug_as) - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
V8::SetArrayBufferAllocator(&ArrayBufferAllocator::the_singleton);
|
|
||||||
|
|
||||||
if (!use_debug_agent) {
|
if (!use_debug_agent) {
|
||||||
RegisterDebugSignalHandler();
|
RegisterDebugSignalHandler();
|
||||||
}
|
}
|
||||||
@ -3914,7 +3880,10 @@ Environment* CreateEnvironment(Isolate* isolate,
|
|||||||
// node instance.
|
// node instance.
|
||||||
static void StartNodeInstance(void* arg) {
|
static void StartNodeInstance(void* arg) {
|
||||||
NodeInstanceData* instance_data = static_cast<NodeInstanceData*>(arg);
|
NodeInstanceData* instance_data = static_cast<NodeInstanceData*>(arg);
|
||||||
Isolate* isolate = Isolate::New();
|
Isolate::CreateParams params;
|
||||||
|
ArrayBufferAllocator array_buffer_allocator;
|
||||||
|
params.array_buffer_allocator = &array_buffer_allocator;
|
||||||
|
Isolate* isolate = Isolate::New(params);
|
||||||
if (track_heap_objects) {
|
if (track_heap_objects) {
|
||||||
isolate->GetHeapProfiler()->StartTrackingHeapObjects(true);
|
isolate->GetHeapProfiler()->StartTrackingHeapObjects(true);
|
||||||
}
|
}
|
||||||
|
@ -226,6 +226,20 @@ NODE_DEPRECATED("Use ThrowUVException(isolate)",
|
|||||||
return ThrowUVException(isolate, errorno, syscall, message, path);
|
return ThrowUVException(isolate, errorno, syscall, message, path);
|
||||||
})
|
})
|
||||||
|
|
||||||
|
struct ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
|
||||||
|
virtual void* Allocate(size_t size) {
|
||||||
|
return calloc(size, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void* AllocateUninitialized(size_t size) {
|
||||||
|
return malloc(size);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Free(void* data, size_t) {
|
||||||
|
free(data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
enum NodeInstanceType { MAIN, WORKER };
|
enum NodeInstanceType { MAIN, WORKER };
|
||||||
|
|
||||||
class NodeInstanceData {
|
class NodeInstanceData {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user