@@ -346,7 +346,7 @@ napi_value create_addon(napi_env env);
346
346
// addon.c
347
347
#include "addon.h"
348
348
349
- #define NAPI_CALL (env, call) \
349
+ #define NODE_API_CALL (env, call) \
350
350
do { \
351
351
napi_status status = (call); \
352
352
if (status != napi_ok) { \
@@ -355,13 +355,14 @@ napi_value create_addon(napi_env env);
355
355
const char* err_message = error_info->error_message; \
356
356
bool is_pending; \
357
357
napi_is_exception_pending((env), &is_pending); \
358
+ /* If an exception is already pending, don't rethrow it */ \
358
359
if (!is_pending) { \
359
360
const char* message = (err_message == NULL) \
360
361
? "empty error message" \
361
362
: err_message; \
362
363
napi_throw_error((env), NULL, message); \
363
- return NULL; \
364
364
} \
365
+ return NULL; \
365
366
} \
366
367
} while(0)
367
368
@@ -373,20 +374,20 @@ DoSomethingUseful(napi_env env, napi_callback_info info) {
373
374
374
375
napi_value create_addon(napi_env env) {
375
376
napi_value result;
376
- NAPI_CALL (env, napi_create_object(env, &result));
377
+ NODE_API_CALL (env, napi_create_object(env, &result));
377
378
378
379
napi_value exported_function;
379
- NAPI_CALL (env, napi_create_function(env,
380
- "doSomethingUseful",
381
- NAPI_AUTO_LENGTH,
382
- DoSomethingUseful,
383
- NULL,
384
- &exported_function));
385
-
386
- NAPI_CALL (env, napi_set_named_property(env,
387
- result,
388
- "doSomethingUseful",
389
- exported_function));
380
+ NODE_API_CALL (env, napi_create_function(env,
381
+ "doSomethingUseful",
382
+ NAPI_AUTO_LENGTH,
383
+ DoSomethingUseful,
384
+ NULL,
385
+ &exported_function));
386
+
387
+ NODE_API_CALL (env, napi_set_named_property(env,
388
+ result,
389
+ "doSomethingUseful",
390
+ exported_function));
390
391
391
392
return result;
392
393
}
0 commit comments