summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2019-08-19 23:25:28 -0400
committerBrian White <mscdex@mscdex.net>2019-08-28 15:13:38 -0400
commitbb1af6c82f495e432821c30d21ccde3efb9eb72b (patch)
tree13369d6e8fcf923a05026f1da8d99ed097f092d1 /src
parent167960f3ca57c7c3ef73e8b32f233189381244a0 (diff)
downloadandroid-node-v8-bb1af6c82f495e432821c30d21ccde3efb9eb72b.tar.gz
android-node-v8-bb1af6c82f495e432821c30d21ccde3efb9eb72b.tar.bz2
android-node-v8-bb1af6c82f495e432821c30d21ccde3efb9eb72b.zip
buffer: consolidate encoding parsing
PR-URL: https://github.com/nodejs/node/pull/29217 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'src')
-rw-r--r--src/node_buffer.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/node_buffer.cc b/src/node_buffer.cc
index d3a9abc571..56e2847389 100644
--- a/src/node_buffer.cc
+++ b/src/node_buffer.cc
@@ -63,6 +63,7 @@ using v8::Context;
using v8::EscapableHandleScope;
using v8::FunctionCallbackInfo;
using v8::Global;
+using v8::Int32;
using v8::Integer;
using v8::Isolate;
using v8::Just;
@@ -446,11 +447,9 @@ namespace {
void CreateFromString(const FunctionCallbackInfo<Value>& args) {
CHECK(args[0]->IsString());
- CHECK(args[1]->IsString());
+ CHECK(args[1]->IsInt32());
- enum encoding enc = ParseEncoding(args.GetIsolate(),
- args[1].As<String>(),
- UTF8);
+ enum encoding enc = static_cast<enum encoding>(args[1].As<Int32>()->Value());
Local<Object> buf;
if (New(args.GetIsolate(), args[0].As<String>(), enc).ToLocal(&buf))
args.GetReturnValue().Set(buf);
@@ -786,9 +785,10 @@ void IndexOfString(const FunctionCallbackInfo<Value>& args) {
CHECK(args[1]->IsString());
CHECK(args[2]->IsNumber());
+ CHECK(args[3]->IsInt32());
CHECK(args[4]->IsBoolean());
- enum encoding enc = ParseEncoding(isolate, args[3], UTF8);
+ enum encoding enc = static_cast<enum encoding>(args[3].As<Int32>()->Value());
THROW_AND_RETURN_UNLESS_BUFFER(env, args[0]);
ArrayBufferViewContents<char> buffer(args[0]);
@@ -900,11 +900,10 @@ void IndexOfString(const FunctionCallbackInfo<Value>& args) {
void IndexOfBuffer(const FunctionCallbackInfo<Value>& args) {
CHECK(args[1]->IsObject());
CHECK(args[2]->IsNumber());
+ CHECK(args[3]->IsInt32());
CHECK(args[4]->IsBoolean());
- enum encoding enc = ParseEncoding(args.GetIsolate(),
- args[3],
- UTF8);
+ enum encoding enc = static_cast<enum encoding>(args[3].As<Int32>()->Value());
THROW_AND_RETURN_UNLESS_BUFFER(Environment::GetCurrent(args), args[0]);
THROW_AND_RETURN_UNLESS_BUFFER(Environment::GetCurrent(args), args[1]);