| Index: tools/gn/function_get_path_info.cc
|
| diff --git a/tools/gn/function_get_path_info.cc b/tools/gn/function_get_path_info.cc
|
| index a3f2c109301c120ddf01f4a7c4f7da45b2660db2..e79afcafb2fec561aa72426fd78a26c84045e9fa 100644
|
| --- a/tools/gn/function_get_path_info.cc
|
| +++ b/tools/gn/function_get_path_info.cc
|
| @@ -28,15 +28,19 @@ enum What {
|
| // |current_dir|), regardless of whether the input is a directory or a file.
|
| SourceDir DirForInput(const Settings* settings,
|
| const SourceDir& current_dir,
|
| - const std::string& input_string) {
|
| + const Value& input,
|
| + Err* err) {
|
| + // Input should already have been validated as a string.
|
| + const std::string& input_string = input.string_value();
|
| +
|
| if (!input_string.empty() && input_string[input_string.size() - 1] == '/') {
|
| // Input is a directory.
|
| - return current_dir.ResolveRelativeDir(input_string,
|
| + return current_dir.ResolveRelativeDir(input, err,
|
| settings->build_settings()->root_path_utf8());
|
| }
|
|
|
| // Input is a directory.
|
| - return current_dir.ResolveRelativeFile(input_string,
|
| + return current_dir.ResolveRelativeFile(input, err,
|
| settings->build_settings()->root_path_utf8()).GetDir();
|
| }
|
|
|
| @@ -85,21 +89,21 @@ std::string GetOnePathInfo(const Settings* settings,
|
| return DirectoryWithNoLastSlash(
|
| GetGenDirForSourceDir(settings,
|
| DirForInput(settings, current_dir,
|
| - input_string)));
|
| + input, err)));
|
| }
|
| case WHAT_OUT_DIR: {
|
| return DirectoryWithNoLastSlash(
|
| GetOutputDirForSourceDir(settings,
|
| DirForInput(settings, current_dir,
|
| - input_string)));
|
| + input, err)));
|
| }
|
| case WHAT_ABSPATH: {
|
| if (!input_string.empty() &&
|
| input_string[input_string.size() - 1] == '/') {
|
| - return current_dir.ResolveRelativeDir(input_string,
|
| + return current_dir.ResolveRelativeDir(input, err,
|
| settings->build_settings()->root_path_utf8()).value();
|
| } else {
|
| - return current_dir.ResolveRelativeFile(input_string,
|
| + return current_dir.ResolveRelativeFile(input, err,
|
| settings->build_settings()->root_path_utf8()).value();
|
| }
|
| }
|
|
|