Fix null pointer dereference of param.primary_file

This commit is contained in:
Fangrui Song 2018-01-06 14:47:24 -08:00
parent 181b405c54
commit 007bc5362c

View File

@ -1932,6 +1932,8 @@ std::vector<std::unique_ptr<IndexFile>> ParseWithTu(
perf->index_build = timer.ElapsedMicrosecondsAndReset(); perf->index_build = timer.ElapsedMicrosecondsAndReset();
std::unordered_map<std::string, int> inc_to_line; std::unordered_map<std::string, int> inc_to_line;
// TODO
if (param.primary_file)
for (auto &inc : param.primary_file->includes) for (auto &inc : param.primary_file->includes)
inc_to_line[inc.resolved_path] = inc.line; inc_to_line[inc.resolved_path] = inc.line;
@ -1940,6 +1942,7 @@ std::vector<std::unique_ptr<IndexFile>> ParseWithTu(
entry->import_file = file; entry->import_file = file;
entry->args = args; entry->args = args;
if (param.primary_file) {
// If there are errors, show at least one at the include position. // If there are errors, show at least one at the include position.
auto it = inc_to_line.find(entry->path); auto it = inc_to_line.find(entry->path);
if (it != inc_to_line.end()) { if (it != inc_to_line.end()) {
@ -1953,6 +1956,7 @@ std::vector<std::unique_ptr<IndexFile>> ParseWithTu(
break; break;
} }
} }
}
// Update file contents and modification time. // Update file contents and modification time.
entry->file_contents_ = param.file_contents[entry->path].contents; entry->file_contents_ = param.file_contents[entry->path].contents;