summaryrefslogtreecommitdiff
path: root/src/node_buffer.cc
diff options
context:
space:
mode:
authorDarshan Sen <raisinten@gmail.com>2022-02-18 04:35:42 +0530
committerGitHub <noreply@github.com>2022-02-18 00:05:42 +0100
commit5edad38328ebaf05e3b20a2d93189edbc6277360 (patch)
treeeb472e31cfb91576b4292a9261c2103f1e22ebcf /src/node_buffer.cc
parent6db686710ee1579452b2908a7a41b91cb729b944 (diff)
downloadnode-new-5edad38328ebaf05e3b20a2d93189edbc6277360.tar.gz
src,buffer: evaluate THROW_AND_RETURN_IF_OOB() expression only once
There's no need to evaluate the expression passed into the macro more than once. Fixes: https://github.com/nodejs/node/issues/41935 Signed-off-by: Darshan Sen <raisinten@gmail.com> PR-URL: https://github.com/nodejs/node/pull/41945 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'src/node_buffer.cc')
-rw-r--r--src/node_buffer.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/node_buffer.cc b/src/node_buffer.cc
index 48df1323ca..be9324a8bd 100644
--- a/src/node_buffer.cc
+++ b/src/node_buffer.cc
@@ -41,8 +41,9 @@
#define THROW_AND_RETURN_IF_OOB(r) \
do { \
- if ((r).IsNothing()) return; \
- if (!(r).FromJust()) \
+ Maybe<bool> m = (r); \
+ if (m.IsNothing()) return; \
+ if (!m.FromJust()) \
return node::THROW_ERR_OUT_OF_RANGE(env, "Index out of range"); \
} while (0) \