@@ -933,12 +933,29 @@ napi_status napi_get_last_error_info(napi_env env,
933933}
934934
935935NAPI_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);
938954}
939955
940956napi_status napi_create_function (napi_env env,
941957 const char * utf8name,
958+ size_t length,
942959 napi_callback cb,
943960 void * callback_data,
944961 napi_value* result) {
@@ -965,7 +982,7 @@ napi_status napi_create_function(napi_env env,
965982
966983 if (utf8name != nullptr ) {
967984 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 );
969986 return_value->SetName (name_string);
970987 }
971988
@@ -976,6 +993,7 @@ napi_status napi_create_function(napi_env env,
976993
977994napi_status napi_define_class (napi_env env,
978995 const char * utf8name,
996+ size_t length,
979997 napi_callback constructor,
980998 void * callback_data,
981999 size_t property_count,
@@ -997,7 +1015,7 @@ napi_status napi_define_class(napi_env env,
9971015 isolate, v8impl::FunctionCallbackWrapper::Invoke, cbdata);
9981016
9991017 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 );
10011019 tpl->SetClassName (name_string);
10021020
10031021 size_t static_property_count = 0 ;
0 commit comments