summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2018-10-25 19:35:17 +0200
committerMichaël Zasso <targos@protonmail.com>2018-10-28 15:05:10 +0100
commit0fd55e71fe376458d1d82503a643114db8675208 (patch)
treea7c0b27d5a6d61b65d080ace4f46cdcabf9c37ed /src
parentb1e1fe4e07e24fcafa278b498291620dd61411ab (diff)
downloadandroid-node-v8-0fd55e71fe376458d1d82503a643114db8675208.tar.gz
android-node-v8-0fd55e71fe376458d1d82503a643114db8675208.tar.bz2
android-node-v8-0fd55e71fe376458d1d82503a643114db8675208.zip
src: minor refactor to node_errors.h
Add overloads of the error generation/throwing methods that take an `Isolate*` argument, since the created objects don’t depend on the `Environment*` in question. Also, remove `THROW_ERR_OUT_OF_RANGE_WITH_TEXT`, which did the same thing as `THROW_ERR_OUT_OF_RANGE` in a more convoluted way. PR-URL: https://github.com/nodejs/node/pull/23879 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Matheus Marchini <mat@mmarchini.me>
Diffstat (limited to 'src')
-rw-r--r--src/node_buffer.cc9
-rw-r--r--src/node_errors.h17
2 files changed, 12 insertions, 14 deletions
diff --git a/src/node_buffer.cc b/src/node_buffer.cc
index 19841336e9..d4f7c75163 100644
--- a/src/node_buffer.cc
+++ b/src/node_buffer.cc
@@ -41,8 +41,7 @@
#define THROW_AND_RETURN_IF_OOB(r) \
do { \
if (!(r)) \
- return node::THROW_ERR_OUT_OF_RANGE_WITH_TEXT(env, \
- "Index out of range"); \
+ return node::THROW_ERR_OUT_OF_RANGE(env, "Index out of range"); \
} while (0) \
#define SLICE_START_END(start_arg, end_arg, end_max) \
@@ -494,7 +493,7 @@ void Copy(const FunctionCallbackInfo<Value> &args) {
return args.GetReturnValue().Set(0);
if (source_start > ts_obj_length)
- return node::THROW_ERR_OUT_OF_RANGE_WITH_TEXT(
+ return THROW_ERR_OUT_OF_RANGE(
env, "The value of \"sourceStart\" is out of range.");
if (source_end - source_start > target_length - target_start)
@@ -685,10 +684,10 @@ void CompareOffset(const FunctionCallbackInfo<Value> &args) {
THROW_AND_RETURN_IF_OOB(ParseArrayIndex(args[5], ts_obj_length, &source_end));
if (source_start > ts_obj_length)
- return node::THROW_ERR_OUT_OF_RANGE_WITH_TEXT(
+ return THROW_ERR_OUT_OF_RANGE(
env, "The value of \"sourceStart\" is out of range.");
if (target_start > target_length)
- return node::THROW_ERR_OUT_OF_RANGE_WITH_TEXT(
+ return THROW_ERR_OUT_OF_RANGE(
env, "The value of \"targetStart\" is out of range.");
CHECK_LE(source_start, source_end);
diff --git a/src/node_errors.h b/src/node_errors.h
index 233a0f7532..a958eccf8a 100644
--- a/src/node_errors.h
+++ b/src/node_errors.h
@@ -52,8 +52,11 @@ namespace node {
js_code).FromJust(); \
return e; \
} \
+ inline void THROW_ ## code(v8::Isolate* isolate, const char* message) { \
+ isolate->ThrowException(code(isolate, message)); \
+ } \
inline void THROW_ ## code(Environment* env, const char* message) { \
- env->isolate()->ThrowException(code(env->isolate(), message)); \
+ THROW_ ## code(env->isolate(), message); \
}
ERRORS_WITH_CODE(V)
#undef V
@@ -80,8 +83,11 @@ namespace node {
inline v8::Local<v8::Value> code(v8::Isolate* isolate) { \
return code(isolate, message); \
} \
+ inline void THROW_ ## code(v8::Isolate* isolate) { \
+ isolate->ThrowException(code(isolate, message)); \
+ } \
inline void THROW_ ## code(Environment* env) { \
- env->isolate()->ThrowException(code(env->isolate(), message)); \
+ THROW_ ## code(env->isolate()); \
}
PREDEFINED_ERROR_MESSAGES(V)
#undef V
@@ -95,13 +101,6 @@ inline void THROW_ERR_SCRIPT_EXECUTION_TIMEOUT(Environment* env,
THROW_ERR_SCRIPT_EXECUTION_TIMEOUT(env, message.str().c_str());
}
-inline void THROW_ERR_OUT_OF_RANGE_WITH_TEXT(Environment* env,
- const char* messageText) {
- std::ostringstream message;
- message << messageText;
- THROW_ERR_OUT_OF_RANGE(env, message.str().c_str());
-}
-
inline v8::Local<v8::Value> ERR_BUFFER_TOO_LARGE(v8::Isolate* isolate) {
char message[128];
snprintf(message, sizeof(message),