Skip to content

Commit e63b9ea

Browse files
authored
Merge pull request nodejs#145 from boingoing/change_buffer_data_to_void_type
napi: Buffer data argument should be void* instead of char*
2 parents df2a9e2 + 40d26cf commit e63b9ea

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

src/node_jsvmapi.cc

+8-6
Original file line numberDiff line numberDiff line change
@@ -2020,7 +2020,7 @@ napi_status napi_get_and_clear_last_exception(napi_env e, napi_value* result) {
20202020
return napi_ok;
20212021
}
20222022

2023-
napi_status napi_create_buffer(napi_env e, size_t size, char** data,
2023+
napi_status napi_create_buffer(napi_env e, size_t size, void** data,
20242024
napi_value* result) {
20252025
NAPI_PREAMBLE(e);
20262026
CHECK_ARG(data);
@@ -2038,13 +2038,14 @@ napi_status napi_create_buffer(napi_env e, size_t size, char** data,
20382038
return GET_RETURN_STATUS();
20392039
}
20402040

2041-
napi_status napi_create_external_buffer(napi_env e, size_t size, char* data,
2041+
napi_status napi_create_external_buffer(napi_env e, size_t size, void* data,
20422042
napi_finalize finalize_cb,
20432043
napi_value* result) {
20442044
NAPI_PREAMBLE(e);
20452045
CHECK_ARG(result);
20462046

2047-
auto maybe = node::Buffer::New(v8impl::V8IsolateFromJsEnv(e), data, size,
2047+
auto maybe = node::Buffer::New(v8impl::V8IsolateFromJsEnv(e),
2048+
static_cast<char*>(data), size,
20482049
(node::Buffer::FreeCallback)finalize_cb, nullptr);
20492050

20502051
CHECK_MAYBE_EMPTY(maybe, napi_generic_failure);
@@ -2053,12 +2054,13 @@ napi_status napi_create_external_buffer(napi_env e, size_t size, char* data,
20532054
return GET_RETURN_STATUS();
20542055
}
20552056

2056-
napi_status napi_create_buffer_copy(napi_env e, const char* data,
2057+
napi_status napi_create_buffer_copy(napi_env e, const void* data,
20572058
size_t size, napi_value* result) {
20582059
NAPI_PREAMBLE(e);
20592060
CHECK_ARG(result);
20602061

2061-
auto maybe = node::Buffer::Copy(v8impl::V8IsolateFromJsEnv(e), data, size);
2062+
auto maybe = node::Buffer::Copy(v8impl::V8IsolateFromJsEnv(e),
2063+
static_cast<const char*>(data), size);
20622064

20632065
CHECK_MAYBE_EMPTY(maybe, napi_generic_failure);
20642066

@@ -2074,7 +2076,7 @@ napi_status napi_is_buffer(napi_env e, napi_value v, bool* result) {
20742076
return GET_RETURN_STATUS();
20752077
}
20762078

2077-
napi_status napi_get_buffer_info(napi_env e, napi_value v, char** data,
2079+
napi_status napi_get_buffer_info(napi_env e, napi_value v, void** data,
20782080
size_t* length) {
20792081
NAPI_PREAMBLE(e);
20802082

src/node_jsvmapi.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -386,21 +386,21 @@ NODE_EXTERN napi_status napi_get_and_clear_last_exception(napi_env e,
386386
// Methods to provide node::Buffer functionality with napi types
387387
NODE_EXTERN napi_status napi_create_buffer(napi_env e,
388388
size_t size,
389-
char** data,
389+
void** data,
390390
napi_value* result);
391391
NODE_EXTERN napi_status napi_create_external_buffer(napi_env e,
392392
size_t size,
393-
char* data,
393+
void* data,
394394
napi_finalize finalize_cb,
395395
napi_value* result);
396396
NODE_EXTERN napi_status napi_create_buffer_copy(napi_env e,
397-
const char* data,
397+
const void* data,
398398
size_t size,
399399
napi_value* result);
400400
NODE_EXTERN napi_status napi_is_buffer(napi_env e, napi_value v, bool* result);
401401
NODE_EXTERN napi_status napi_get_buffer_info(napi_env e,
402402
napi_value v,
403-
char** data,
403+
void** data,
404404
size_t* length);
405405

406406
// Methods to work with array buffers and typed arrays

test/addons-abi/test_buffer/test_buffer.cc

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <string.h>
1+
#include <string.h>
22
#include <string>
33
#include <node_jsvmapi.h>
44

@@ -32,7 +32,7 @@ static void noopDeleter(void *data) {
3232
void newBuffer(napi_env env, napi_callback_info info) {
3333
napi_value theBuffer;
3434
char *theCopy;
35-
NAPI_CALL(env, napi_create_buffer(env, sizeof(theText), &theCopy,
35+
NAPI_CALL(env, napi_create_buffer(env, sizeof(theText), (void**)&theCopy,
3636
&theBuffer));
3737
JS_ASSERT(env, theCopy, "Failed to copy static text for newBuffer");
3838
strcpy(theCopy, theText);
@@ -88,7 +88,7 @@ void bufferInfo(napi_env env, napi_callback_info info) {
8888
NAPI_CALL(env, napi_get_cb_args(env, info, &theBuffer, 1));
8989
char *bufferData;
9090
size_t bufferLength;
91-
NAPI_CALL(env, napi_get_buffer_info(env, theBuffer, &bufferData,
91+
NAPI_CALL(env, napi_get_buffer_info(env, theBuffer, (void**)&bufferData,
9292
&bufferLength));
9393
NAPI_CALL(env, napi_create_boolean(env,
9494
!strcmp(bufferData, theText) && bufferLength == sizeof(theText),

0 commit comments

Comments
 (0)