summaryrefslogtreecommitdiff
path: root/src/node_buffer.cc
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2018-08-26 10:28:17 +0200
committerMichaël Zasso <targos@protonmail.com>2018-08-29 12:28:14 +0200
commita64fd7f320af90dd76b7d922f104e5715797f0a6 (patch)
tree426036092af5c19bc0c90c4bb8424d0c69686d6a /src/node_buffer.cc
parent7c84489b8828797e77236da26594bd642d0120f9 (diff)
downloadandroid-node-v8-a64fd7f320af90dd76b7d922f104e5715797f0a6.tar.gz
android-node-v8-a64fd7f320af90dd76b7d922f104e5715797f0a6.tar.bz2
android-node-v8-a64fd7f320af90dd76b7d922f104e5715797f0a6.zip
src: use String::Write{OneByte,Utf8} with isolate
PR-URL: https://github.com/nodejs/node/pull/22531 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src/node_buffer.cc')
-rw-r--r--src/node_buffer.cc30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/node_buffer.cc b/src/node_buffer.cc
index 858852e748..95ffaa1993 100644
--- a/src/node_buffer.cc
+++ b/src/node_buffer.cc
@@ -806,15 +806,16 @@ int64_t IndexOfOffset(size_t length,
}
void IndexOfString(const FunctionCallbackInfo<Value>& args) {
+ Environment* env = Environment::GetCurrent(args);
+ Isolate* isolate = env->isolate();
+
CHECK(args[1]->IsString());
CHECK(args[2]->IsNumber());
CHECK(args[4]->IsBoolean());
- enum encoding enc = ParseEncoding(args.GetIsolate(),
- args[3],
- UTF8);
+ enum encoding enc = ParseEncoding(isolate, args[3], UTF8);
- THROW_AND_RETURN_UNLESS_BUFFER(Environment::GetCurrent(args), args[0]);
+ THROW_AND_RETURN_UNLESS_BUFFER(env, args[0]);
SPREAD_BUFFER_ARG(args[0], ts_obj);
Local<String> needle = args[1].As<String>();
@@ -826,8 +827,7 @@ void IndexOfString(const FunctionCallbackInfo<Value>& args) {
const size_t haystack_length = (enc == UCS2) ?
ts_obj_length &~ 1 : ts_obj_length; // NOLINT(whitespace/operators)
- const size_t needle_length =
- StringBytes::Size(args.GetIsolate(), needle, enc);
+ const size_t needle_length = StringBytes::Size(isolate, needle, enc);
int64_t opt_offset = IndexOfOffset(haystack_length,
offset_i64,
@@ -857,7 +857,7 @@ void IndexOfString(const FunctionCallbackInfo<Value>& args) {
size_t result = haystack_length;
if (enc == UCS2) {
- String::Value needle_value(args.GetIsolate(), needle);
+ String::Value needle_value(isolate, needle);
if (*needle_value == nullptr)
return args.GetReturnValue().Set(-1);
@@ -867,7 +867,7 @@ void IndexOfString(const FunctionCallbackInfo<Value>& args) {
if (IsBigEndian()) {
StringBytes::InlineDecoder decoder;
- decoder.Decode(Environment::GetCurrent(args), needle, args[3], UCS2);
+ decoder.Decode(env, needle, args[3], UCS2);
const uint16_t* decoded_string =
reinterpret_cast<const uint16_t*>(decoder.out());
@@ -890,7 +890,7 @@ void IndexOfString(const FunctionCallbackInfo<Value>& args) {
}
result *= 2;
} else if (enc == UTF8) {
- String::Utf8Value needle_value(args.GetIsolate(), needle);
+ String::Utf8Value needle_value(isolate, needle);
if (*needle_value == nullptr)
return args.GetReturnValue().Set(-1);
@@ -906,7 +906,7 @@ void IndexOfString(const FunctionCallbackInfo<Value>& args) {
return args.GetReturnValue().Set(-1);
}
needle->WriteOneByte(
- needle_data, 0, needle_length, String::NO_NULL_TERMINATION);
+ isolate, needle_data, 0, needle_length, String::NO_NULL_TERMINATION);
result = SearchString(reinterpret_cast<const uint8_t*>(haystack),
haystack_length,
@@ -1057,18 +1057,20 @@ void Swap64(const FunctionCallbackInfo<Value>& args) {
// Used in TextEncoder.prototype.encode.
static void EncodeUtf8String(const FunctionCallbackInfo<Value>& args) {
Environment* env = Environment::GetCurrent(args);
+ Isolate* isolate = env->isolate();
CHECK_GE(args.Length(), 1);
CHECK(args[0]->IsString());
Local<String> str = args[0].As<String>();
size_t length = str->Utf8Length();
char* data = node::UncheckedMalloc(length);
- str->WriteUtf8(data,
- -1, // We are certain that `data` is sufficiently large
+ str->WriteUtf8(isolate,
+ data,
+ -1, // We are certain that `data` is sufficiently large
nullptr,
String::NO_NULL_TERMINATION | String::REPLACE_INVALID_UTF8);
- auto array_buf = ArrayBuffer::New(env->isolate(), data, length,
- ArrayBufferCreationMode::kInternalized);
+ auto array_buf = ArrayBuffer::New(
+ isolate, data, length, ArrayBufferCreationMode::kInternalized);
auto array = Uint8Array::New(array_buf, 0, length);
args.GetReturnValue().Set(array);
}