Skip to content

Commit 8664084

Browse files
trevnorrisrvagg
authored andcommitted
buffer: make additional changes to native API
Address comments and deprecations left in source files. These changes include: * Remove the deprecated API. * Change Buffer::New() that did a copy of the data to Buffer::Copy() * Change Buffer::Use() to Buffer::New() PR-URL: #1825 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
1 parent 36f78f4 commit 8664084

7 files changed

+22
-46
lines changed

src/node_buffer.cc

+4-4
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ MaybeLocal<Object> New(Isolate* isolate,
255255
}
256256

257257
Local<Object> buf;
258-
if (Use(isolate, data, actual).ToLocal(&buf))
258+
if (New(isolate, data, actual).ToLocal(&buf))
259259
return scope.Escape(buf);
260260

261261
// Object failed to be created. Clean up resources.
@@ -319,7 +319,7 @@ MaybeLocal<Object> New(Environment* env, size_t length) {
319319
}
320320

321321

322-
MaybeLocal<Object> New(Isolate* isolate, const char* data, size_t length) {
322+
MaybeLocal<Object> Copy(Isolate* isolate, const char* data, size_t length) {
323323
Environment* env = Environment::GetCurrent(isolate);
324324
EscapableHandleScope handle_scope(env->isolate());
325325
Local<Object> obj;
@@ -435,11 +435,11 @@ MaybeLocal<Object> New(Environment* env,
435435
}
436436

437437

438-
MaybeLocal<Object> Use(Isolate* isolate, char* data, size_t length) {
438+
MaybeLocal<Object> New(Isolate* isolate, char* data, size_t length) {
439439
Environment* env = Environment::GetCurrent(isolate);
440440
EscapableHandleScope handle_scope(env->isolate());
441441
Local<Object> obj;
442-
if (Buffer::Use(env, data, length).ToLocal(&obj))
442+
if (Buffer::New(env, data, length).ToLocal(&obj))
443443
return handle_scope.Escape(obj);
444444
return Local<Object>();
445445
}

src/node_buffer.h

+8-33
Original file line numberDiff line numberDiff line change
@@ -23,55 +23,30 @@ NODE_EXTERN char* Data(v8::Handle<v8::Object> val);
2323
NODE_EXTERN size_t Length(v8::Handle<v8::Value> val);
2424
NODE_EXTERN size_t Length(v8::Handle<v8::Object> val);
2525

26+
// public constructor - data is copied
27+
NODE_EXTERN v8::MaybeLocal<v8::Object> Copy(v8::Isolate* isolate,
28+
const char* data,
29+
size_t len);
30+
2631
// public constructor
2732
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
28-
NODE_DEPRECATED("Use New(isolate, ...)",
29-
inline v8::MaybeLocal<v8::Object> New(size_t length) {
30-
return New(v8::Isolate::GetCurrent(), length);
31-
})
33+
3234
// public constructor from string
3335
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
3436
v8::Handle<v8::String> string,
3537
enum encoding enc = UTF8);
36-
NODE_DEPRECATED("Use New(isolate, ...)",
37-
inline v8::MaybeLocal<v8::Object> New(
38-
v8::Handle<v8::String> string,
39-
enum encoding enc = UTF8) {
40-
return New(v8::Isolate::GetCurrent(), string, enc);
41-
})
42-
// public constructor - data is copied
43-
// TODO(trevnorris): should be something like Copy()
44-
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
45-
const char* data,
46-
size_t len);
47-
NODE_DEPRECATED("Use New(isolate, ...)",
48-
inline v8::MaybeLocal<v8::Object> New(const char* data,
49-
size_t len) {
50-
return New(v8::Isolate::GetCurrent(), data, len);
51-
})
38+
5239
// public constructor - data is used, callback is passed data on object gc
5340
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
5441
char* data,
5542
size_t length,
5643
FreeCallback callback,
5744
void* hint);
58-
NODE_DEPRECATED("Use New(isolate, ...)",
59-
inline v8::MaybeLocal<v8::Object> New(char* data,
60-
size_t length,
61-
FreeCallback callback,
62-
void* hint) {
63-
return New(v8::Isolate::GetCurrent(), data, length, callback, hint);
64-
})
6545

6646
// public constructor - data is used.
67-
// TODO(trevnorris): should be New() for consistency
68-
NODE_EXTERN v8::MaybeLocal<v8::Object> Use(v8::Isolate* isolate,
47+
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
6948
char* data,
7049
size_t len);
71-
NODE_DEPRECATED("Use Use(isolate, ...)",
72-
inline v8::MaybeLocal<v8::Object> Use(char* data, size_t len) {
73-
return Use(v8::Isolate::GetCurrent(), data, len);
74-
})
7550

7651
// This is verbose to be explicit with inline commenting
7752
static inline bool IsWithinBounds(size_t off, size_t len, size_t max) {

src/node_crypto.cc

+5-5
Original file line numberDiff line numberDiff line change
@@ -2899,7 +2899,7 @@ void CipherBase::GetAuthTag(const FunctionCallbackInfo<Value>& args) {
28992899
unsigned int out_len = 0;
29002900

29012901
if (cipher->GetAuthTag(&out, &out_len)) {
2902-
Local<Object> buf = Buffer::Use(env, out, out_len).ToLocalChecked();
2902+
Local<Object> buf = Buffer::New(env, out, out_len).ToLocalChecked();
29032903
args.GetReturnValue().Set(buf);
29042904
} else {
29052905
env->ThrowError("Attempting to get auth tag in unsupported state");
@@ -4373,7 +4373,7 @@ void ECDH::ComputeSecret(const FunctionCallbackInfo<Value>& args) {
43734373
return env->ThrowError("Failed to compute ECDH key");
43744374
}
43754375

4376-
Local<Object> buf = Buffer::Use(env, out, out_len).ToLocalChecked();
4376+
Local<Object> buf = Buffer::New(env, out, out_len).ToLocalChecked();
43774377
args.GetReturnValue().Set(buf);
43784378
}
43794379

@@ -4411,7 +4411,7 @@ void ECDH::GetPublicKey(const FunctionCallbackInfo<Value>& args) {
44114411
}
44124412

44134413
Local<Object> buf =
4414-
Buffer::Use(env, reinterpret_cast<char*>(out), size).ToLocalChecked();
4414+
Buffer::New(env, reinterpret_cast<char*>(out), size).ToLocalChecked();
44154415
args.GetReturnValue().Set(buf);
44164416
}
44174417

@@ -4438,7 +4438,7 @@ void ECDH::GetPrivateKey(const FunctionCallbackInfo<Value>& args) {
44384438
}
44394439

44404440
Local<Object> buf =
4441-
Buffer::Use(env, reinterpret_cast<char*>(out), size).ToLocalChecked();
4441+
Buffer::New(env, reinterpret_cast<char*>(out), size).ToLocalChecked();
44424442
args.GetReturnValue().Set(buf);
44434443
}
44444444

@@ -4841,7 +4841,7 @@ void RandomBytesCheck(RandomBytesRequest* req, Local<Value> argv[2]) {
48414841
size_t size;
48424842
req->return_memory(&data, &size);
48434843
argv[0] = Null(req->env()->isolate());
4844-
argv[1] = Buffer::Use(req->env(), data, size).ToLocalChecked();
4844+
argv[1] = Buffer::New(req->env(), data, size).ToLocalChecked();
48454845
}
48464846
}
48474847

src/stream_wrap.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ void StreamWrap::OnReadImpl(ssize_t nread,
223223
CHECK_EQ(pending, UV_UNKNOWN_HANDLE);
224224
}
225225

226-
Local<Object> obj = Buffer::Use(env, base, nread).ToLocalChecked();
226+
Local<Object> obj = Buffer::New(env, base, nread).ToLocalChecked();
227227
wrap->EmitData(nread, obj, pending_obj);
228228
}
229229

src/string_bytes.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -704,7 +704,8 @@ Local<Value> StringBytes::Encode(Isolate* isolate,
704704
switch (encoding) {
705705
case BUFFER:
706706
{
707-
Local<Object> vbuf = Buffer::New(isolate, buf, buflen).ToLocalChecked();
707+
Local<Object> vbuf =
708+
Buffer::Copy(isolate, buf, buflen).ToLocalChecked();
708709
return scope.Escape(vbuf);
709710
}
710711

src/tls_wrap.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ void TLSWrap::OnReadSelf(ssize_t nread,
660660
TLSWrap* wrap = static_cast<TLSWrap*>(ctx);
661661
Local<Object> buf_obj;
662662
if (buf != nullptr)
663-
buf_obj = Buffer::Use(wrap->env(), buf->base, buf->len).ToLocalChecked();
663+
buf_obj = Buffer::New(wrap->env(), buf->base, buf->len).ToLocalChecked();
664664
wrap->EmitData(nread, buf_obj, Local<Object>());
665665
}
666666

src/udp_wrap.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ void UDPWrap::OnRecv(uv_udp_t* handle,
408408
}
409409

410410
char* base = static_cast<char*>(realloc(buf->base, nread));
411-
argv[2] = Buffer::Use(env, base, nread).ToLocalChecked();
411+
argv[2] = Buffer::New(env, base, nread).ToLocalChecked();
412412
argv[3] = AddressToJS(env, addr);
413413
wrap->MakeCallback(env->onmessage_string(), ARRAY_SIZE(argv), argv);
414414
}

0 commit comments

Comments
 (0)