Skip to content

Commit c09a713

Browse files
bnoordhuisMylesBorins
authored andcommitted
n-api: wrap control flow macro in do/while
Make CHECK_ENV() safe to use in the following context: if (condition) CHECK_ENV(env); else something_else(); Backport-PR-URL: #19447 PR-URL: #18532 Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Ali Ijaz Sheikh <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Tiancheng "Timothy" Gu <[email protected]> Reviewed-By: Daniel Bevenius <[email protected]>
1 parent b565ba2 commit c09a713

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/node_api.cc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,12 @@ struct napi_env__ {
7575
} \
7676
} while (0)
7777

78-
#define CHECK_ENV(env) \
79-
if ((env) == nullptr) { \
80-
return napi_invalid_arg; \
81-
}
78+
#define CHECK_ENV(env) \
79+
do { \
80+
if ((env) == nullptr) { \
81+
return napi_invalid_arg; \
82+
} \
83+
} while (0)
8284

8385
#define CHECK_ARG(env, arg) \
8486
RETURN_STATUS_IF_FALSE((env), ((arg) != nullptr), napi_invalid_arg)

0 commit comments

Comments
 (0)