diff options
| author | Darshan Sen <raisinten@gmail.com> | 2022-02-18 04:35:42 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-18 00:05:42 +0100 |
| commit | 5edad38328ebaf05e3b20a2d93189edbc6277360 (patch) | |
| tree | eb472e31cfb91576b4292a9261c2103f1e22ebcf /src/node_buffer.cc | |
| parent | 6db686710ee1579452b2908a7a41b91cb729b944 (diff) | |
| download | node-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.cc | 5 |
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) \ |
