@@ -933,12 +933,29 @@ napi_status napi_get_last_error_info(napi_env env,
933
933
}
934
934
935
935
NAPI_NO_RETURN void napi_fatal_error (const char * location,
936
- const char * message) {
937
- node::FatalError (location, message);
936
+ size_t location_len,
937
+ const char * message,
938
+ size_t message_len) {
939
+ char * location_string = const_cast <char *>(location);
940
+ char * message_string = const_cast <char *>(message);
941
+ if (location_len != -1 ) {
942
+ location_string = reinterpret_cast <char *>(
943
+ malloc (location_len * sizeof (char ) + 1 ));
944
+ strncpy (location_string, location, location_len);
945
+ location_string[location_len] = ' \0 ' ;
946
+ }
947
+ if (message_len != -1 ) {
948
+ message_string = reinterpret_cast <char *>(
949
+ malloc (message_len * sizeof (char ) + 1 ));
950
+ strncpy (message_string, message, message_len);
951
+ message_string[message_len] = ' \0 ' ;
952
+ }
953
+ node::FatalError (location_string, message_string);
938
954
}
939
955
940
956
napi_status napi_create_function (napi_env env,
941
957
const char * utf8name,
958
+ size_t length,
942
959
napi_callback cb,
943
960
void * callback_data,
944
961
napi_value* result) {
@@ -965,7 +982,7 @@ napi_status napi_create_function(napi_env env,
965
982
966
983
if (utf8name != nullptr ) {
967
984
v8::Local<v8::String> name_string;
968
- CHECK_NEW_FROM_UTF8 (env, name_string, utf8name);
985
+ CHECK_NEW_FROM_UTF8_LEN (env, name_string, utf8name, length );
969
986
return_value->SetName (name_string);
970
987
}
971
988
@@ -976,6 +993,7 @@ napi_status napi_create_function(napi_env env,
976
993
977
994
napi_status napi_define_class (napi_env env,
978
995
const char * utf8name,
996
+ size_t length,
979
997
napi_callback constructor,
980
998
void * callback_data,
981
999
size_t property_count,
@@ -997,7 +1015,7 @@ napi_status napi_define_class(napi_env env,
997
1015
isolate, v8impl::FunctionCallbackWrapper::Invoke, cbdata);
998
1016
999
1017
v8::Local<v8::String> name_string;
1000
- CHECK_NEW_FROM_UTF8 (env, name_string, utf8name);
1018
+ CHECK_NEW_FROM_UTF8_LEN (env, name_string, utf8name, length );
1001
1019
tpl->SetClassName (name_string);
1002
1020
1003
1021
size_t static_property_count = 0 ;
0 commit comments