Skip to content

Commit c16a705

Browse files
Gabriel SchulhofMylesBorins
Gabriel Schulhof
authored andcommittedApr 16, 2018
n-api: re-write test_make_callback
This re-writes the test in C by dropping std::vector<napi_value> in favour of a C99 variable length array, and by dropping the anonymous namespace in favour of static function declarations. Backport-PR-URL: #19447 PR-URL: #19448 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
1 parent 49cd4fa commit c16a705

File tree

2 files changed

+11
-12
lines changed

2 files changed

+11
-12
lines changed
 

‎test/addons-napi/test_make_callback/binding.cc renamed to ‎test/addons-napi/test_make_callback/binding.c

+10-11
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
#include <node_api.h>
22
#include "../common.h"
3-
#include <vector>
43

5-
namespace {
4+
#define MAX_ARGUMENTS 10
65

6+
static
77
napi_value MakeCallback(napi_env env, napi_callback_info info) {
8-
const int kMaxArgs = 10;
9-
size_t argc = kMaxArgs;
10-
napi_value args[kMaxArgs];
8+
size_t argc = MAX_ARGUMENTS;
9+
size_t n;
10+
napi_value args[MAX_ARGUMENTS];
1111
NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL));
1212

1313
NAPI_ASSERT(env, argc > 0, "Wrong number of arguments");
1414

1515
napi_value recv = args[0];
1616
napi_value func = args[1];
1717

18-
std::vector<napi_value> argv;
19-
for (size_t n = 2; n < argc; n += 1) {
20-
argv.push_back(args[n]);
18+
napi_value argv[MAX_ARGUMENTS - 2];
19+
for (n = 2; n < argc; n += 1) {
20+
argv[n - 2] = args[n];
2121
}
2222

2323
napi_valuetype func_type;
@@ -34,7 +34,7 @@ napi_value MakeCallback(napi_env env, napi_callback_info info) {
3434
napi_value result;
3535
if (func_type == napi_function) {
3636
NAPI_CALL(env, napi_make_callback(
37-
env, context, recv, func, argv.size(), argv.data(), &result));
37+
env, context, recv, func, argc - 2, argv, &result));
3838
} else {
3939
NAPI_ASSERT(env, false, "Unexpected argument type");
4040
}
@@ -44,6 +44,7 @@ napi_value MakeCallback(napi_env env, napi_callback_info info) {
4444
return result;
4545
}
4646

47+
static
4748
napi_value Init(napi_env env, napi_value exports) {
4849
napi_value fn;
4950
NAPI_CALL(env, napi_create_function(
@@ -52,6 +53,4 @@ napi_value Init(napi_env env, napi_value exports) {
5253
return exports;
5354
}
5455

55-
} // namespace
56-
5756
NAPI_MODULE(binding, Init)

‎test/addons-napi/test_make_callback/binding.gyp

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{
44
'target_name': 'binding',
55
'defines': [ 'V8_DEPRECATION_WARNINGS=1' ],
6-
'sources': [ 'binding.cc' ]
6+
'sources': [ 'binding.c' ]
77
}
88
]
99
}

0 commit comments

Comments
 (0)
Please sign in to comment.