Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

url: const-ify APIs, and pass URL by ref #15615

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/module_wrap.cc
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ struct file_check {
bool failed = true;
uv_file file = -1;
};
inline const struct file_check check_file(URL search,
inline const struct file_check check_file(const URL& search,
bool close = false,
bool allow_dir = false) {
struct file_check ret;
Expand All @@ -349,7 +349,7 @@ inline const struct file_check check_file(URL search,
if (close) uv_fs_close(nullptr, &fs_req, fd, nullptr);
return ret;
}
URL resolve_extensions(URL search, bool check_exact = true) {
URL resolve_extensions(const URL& search, bool check_exact = true) {
if (check_exact) {
auto check = check_file(search, true);
if (!check.failed) {
Expand All @@ -365,10 +365,10 @@ URL resolve_extensions(URL search, bool check_exact = true) {
}
return URL("");
}
inline URL resolve_index(URL search) {
inline URL resolve_index(const URL& search) {
return resolve_extensions(URL("index", &search), false);
}
URL resolve_main(URL search) {
URL resolve_main(const URL& search) {
URL pkg("package.json", &search);
auto check = check_file(pkg);
if (!check.failed) {
Expand Down Expand Up @@ -402,7 +402,7 @@ URL resolve_main(URL search) {
}
return URL("");
}
URL resolve_module(std::string specifier, URL* base) {
URL resolve_module(std::string specifier, const URL* base) {
URL parent(".", base);
URL dir("");
do {
Expand All @@ -427,7 +427,7 @@ URL resolve_module(std::string specifier, URL* base) {
return URL("");
}

URL resolve_directory(URL search, bool read_pkg_json) {
URL resolve_directory(const URL& search, bool read_pkg_json) {
if (read_pkg_json) {
auto main = resolve_main(search);
if (!(main.flags() & URL_FLAGS_FAILED)) return main;
Expand All @@ -438,7 +438,7 @@ URL resolve_directory(URL search, bool read_pkg_json) {
} // anonymous namespace


URL Resolve(std::string specifier, URL* base, bool read_pkg_json) {
URL Resolve(std::string specifier, const URL* base, bool read_pkg_json) {
URL pure_url(specifier);
if (!(pure_url.flags() & URL_FLAGS_FAILED)) {
return pure_url;
Expand Down
2 changes: 1 addition & 1 deletion src/module_wrap.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
namespace node {
namespace loader {

node::url::URL Resolve(std::string specifier, node::url::URL* base,
node::url::URL Resolve(std::string specifier, const node::url::URL* base,
bool read_pkg_json = false);

class ModuleWrap : public BaseObject {
Expand Down
4 changes: 2 additions & 2 deletions src/node_url.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2081,7 +2081,7 @@ static void DomainToUnicode(const FunctionCallbackInfo<Value>& args) {
v8::NewStringType::kNormal).ToLocalChecked());
}

std::string URL::ToFilePath() {
std::string URL::ToFilePath() const {
if (context_.scheme != "file:") {
return "";
}
Expand All @@ -2102,7 +2102,7 @@ std::string URL::ToFilePath() {
}
#endif
std::string decoded_path;
for (std::string& part : context_.path) {
for (const std::string& part : context_.path) {
std::string decoded;
PercentDecode(part.c_str(), part.length(), &decoded);
for (char& ch : decoded) {
Expand Down
4 changes: 2 additions & 2 deletions src/node_url.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ class URL {
return context_.fragment;
}

std::string path() {
std::string path() const {
std::string ret;
for (auto i = context_.path.begin(); i != context_.path.end(); i++) {
ret += '/';
Expand All @@ -165,7 +165,7 @@ class URL {

// Get the path of the file: URL in a format consumable by native file system
// APIs. Returns an empty string if something went wrong.
std::string ToFilePath();
std::string ToFilePath() const;

const Local<Value> ToObject(Environment* env) const;

Expand Down