GeezerVison is showing github.com — doc: fix node-api call example · nodejs/node@e26b89e
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: doc/api/n-api.md +15-14Lines changed: 15 additions & 14 deletions - Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|
@@ -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 | } | |
|