@@ -938,12 +938,29 @@ napi_status napi_get_last_error_info(napi_env env,
938
938
}
939
939
940
940
NAPI_NO_RETURN void napi_fatal_error (const char * location,
941
- const char * message) {
942
- node::FatalError (location, message);
941
+ size_t location_len,
942
+ const char * message,
943
+ size_t message_len) {
944
+ char * location_string = const_cast <char *>(location);
945
+ char * message_string = const_cast <char *>(message);
946
+ if (location_len != -1 ) {
947
+ location_string = reinterpret_cast <char *>(
948
+ malloc (location_len * sizeof (char ) + 1 ));
949
+ strncpy (location_string, location, location_len);
950
+ location_string[location_len] = ' \0 ' ;
951
+ }
952
+ if (message_len != -1 ) {
953
+ message_string = reinterpret_cast <char *>(
954
+ malloc (message_len * sizeof (char ) + 1 ));
955
+ strncpy (message_string, message, message_len);
956
+ message_string[message_len] = ' \0 ' ;
957
+ }
958
+ node::FatalError (location_string, message_string);
943
959
}
944
960
945
961
napi_status napi_create_function (napi_env env,
946
962
const char * utf8name,
963
+ size_t length,
947
964
napi_callback cb,
948
965
void * callback_data,
949
966
napi_value* result) {
@@ -970,7 +987,7 @@ napi_status napi_create_function(napi_env env,
970
987
971
988
if (utf8name != nullptr ) {
972
989
v8::Local<v8::String> name_string;
973
- CHECK_NEW_FROM_UTF8 (env, name_string, utf8name);
990
+ CHECK_NEW_FROM_UTF8_LEN (env, name_string, utf8name, length );
974
991
return_value->SetName (name_string);
975
992
}
976
993
@@ -981,6 +998,7 @@ napi_status napi_create_function(napi_env env,
981
998
982
999
napi_status napi_define_class (napi_env env,
983
1000
const char * utf8name,
1001
+ size_t length,
984
1002
napi_callback constructor,
985
1003
void * callback_data,
986
1004
size_t property_count,
@@ -1002,7 +1020,7 @@ napi_status napi_define_class(napi_env env,
1002
1020
isolate, v8impl::FunctionCallbackWrapper::Invoke, cbdata);
1003
1021
1004
1022
v8::Local<v8::String> name_string;
1005
- CHECK_NEW_FROM_UTF8 (env, name_string, utf8name);
1023
+ CHECK_NEW_FROM_UTF8_LEN (env, name_string, utf8name, length );
1006
1024
tpl->SetClassName (name_string);
1007
1025
1008
1026
size_t static_property_count = 0 ;
0 commit comments