Silently ignore multiple registration of files
This commit is contained in:
parent
d14965b24e
commit
6dd85cb7a7
5 changed files with 23 additions and 6 deletions
|
|
@ -7,6 +7,7 @@
|
|||
#include <cppast/detail/assert.hpp>
|
||||
#include <cppast/cpp_entity.hpp>
|
||||
#include <cppast/cpp_entity_kind.hpp>
|
||||
#include <cppast/cpp_file.hpp>
|
||||
|
||||
using namespace cppast;
|
||||
|
||||
|
|
@ -33,6 +34,13 @@ void cpp_entity_index::register_definition(cpp_entity_id
|
|||
}
|
||||
}
|
||||
|
||||
bool cpp_entity_index::register_file(cpp_entity_id id,
|
||||
type_safe::object_ref<const cpp_file> file) const
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
return map_.emplace(std::move(id), value(file, true)).second;
|
||||
}
|
||||
|
||||
void cpp_entity_index::register_forward_declaration(
|
||||
cpp_entity_id id, type_safe::object_ref<const cpp_entity> entity) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -399,7 +399,7 @@ std::unique_ptr<cpp_file> libclang_parser::do_parse(const cpp_entity_index& idx,
|
|||
auto macro_iter = preprocessed.macros.begin();
|
||||
auto include_iter = preprocessed.includes.begin();
|
||||
|
||||
// convert entity hierachies
|
||||
// convert entity hierarchies
|
||||
detail::parse_context context{tu.get(), file, type_safe::ref(logger()), type_safe::ref(idx),
|
||||
detail::comment_context(preprocessed.comments)};
|
||||
detail::visit_tu(tu, path.c_str(), [&](const CXCursor& cur) {
|
||||
|
|
@ -444,5 +444,5 @@ std::unique_ptr<cpp_file> libclang_parser::do_parse(const cpp_entity_index& idx,
|
|||
catch (detail::parse_error& ex)
|
||||
{
|
||||
logger().log("libclang parser", ex.get_diagnostic());
|
||||
return cpp_file::builder(path).finish(idx);
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue