Skip to content

Commit 5508812

Browse files
committed
fix: avoid making copies of strings
1 parent ada08e1 commit 5508812

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

  • test-app/runtime/src/main/cpp/modules/url

test-app/runtime/src/main/cpp/modules/url/URL.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ napi_value URL::New(napi_env env, napi_callback_info info) {
194194
}
195195

196196
url_aggregator url;
197-
std::string url_string(url_buffer.data());
197+
std::string_view url_string_view(url_buffer.data(), url_buffer.size());
198198

199199
if (argc > 1) {
200200
// Handle base URL
@@ -209,24 +209,23 @@ napi_value URL::New(napi_env env, napi_callback_info info) {
209209
return nullptr;
210210
}
211211

212-
std::string base_string(base_buffer.data());
213-
std::string_view base_string_view(base_string);
212+
std::string_view base_string_view(base_buffer.data(), base_buffer.size());
214213

215-
if (!can_parse(url_string, &base_string_view)) {
214+
if (!can_parse(url_string_view, &base_string_view)) {
216215
napi_throw_type_error(env, nullptr, "Invalid URL");
217216
return nullptr;
218217
}
219218

220219
auto base_url = ada::parse<ada::url_aggregator>(base_string_view, nullptr);
221-
auto result = ada::parse<ada::url_aggregator>(url_string, &base_url.value());
220+
auto result = ada::parse<ada::url_aggregator>(url_string_view, &base_url.value());
222221

223222
if (!result) {
224223
napi_throw_type_error(env, nullptr, "Invalid URL");
225224
return nullptr;
226225
}
227226
url = result.value();
228227
} else {
229-
auto result = ada::parse<ada::url_aggregator>(url_string, nullptr);
228+
auto result = ada::parse<ada::url_aggregator>(url_string_view, nullptr);
230229
if (!result) {
231230
napi_throw_type_error(env, nullptr, "Invalid URL");
232231
return nullptr;

0 commit comments

Comments
 (0)