diff --git a/vndk/tools/header-checker/src/repr/ir_reader.h b/vndk/tools/header-checker/src/repr/ir_reader.h index 21a8f6951..e3f318210 100644 --- a/vndk/tools/header-checker/src/repr/ir_reader.h +++ b/vndk/tools/header-checker/src/repr/ir_reader.h @@ -49,6 +49,10 @@ class IRReader { }; public: + static std::unique_ptr CreateIRReader( + TextFormatIR text_format, + const std::set *exported_headers = nullptr); + IRReader(const std::set *exported_headers) : module_(new ModuleIR(exported_headers)) {} @@ -64,28 +68,9 @@ class IRReader { return std::move(module_); } - void Merge(IRReader &&addend) { - MergeElements(&module_->functions_, std::move(addend.module_->functions_)); - MergeElements(&module_->global_variables_, - std::move(addend.module_->global_variables_)); - MergeElements(&module_->record_types_, - std::move(addend.module_->record_types_)); - MergeElements(&module_->enum_types_, - std::move(addend.module_->enum_types_)); - MergeElements(&module_->pointer_types_, - std::move(addend.module_->pointer_types_)); - MergeElements(&module_->lvalue_reference_types_, - std::move(addend.module_->lvalue_reference_types_)); - MergeElements(&module_->rvalue_reference_types_, - std::move(addend.module_->rvalue_reference_types_)); - MergeElements(&module_->array_types_, - std::move(addend.module_->array_types_)); - MergeElements(&module_->builtin_types_, - std::move(addend.module_->builtin_types_)); - MergeElements(&module_->qualified_types_, - std::move(addend.module_->qualified_types_)); - } + void MergeGraphs(const IRReader &addend); + private: template MergeStatus MergeReferencingTypeInternalAndUpdateParent( const IRReader &addend, const T *addend_node, @@ -177,8 +162,6 @@ class IRReader { const FunctionIR *addend_node, const IRReader &addend, AbiElementMap *local_to_global_type_id_map); - void MergeGraphs(const IRReader &addend); - void UpdateIRReaderTypeGraph( const TypeIR *addend_node, const std::string &added_type_id, AbiElementMap *local_to_global_type_id_map); @@ -193,17 +176,7 @@ class IRReader { std::string AllocateNewTypeId(); - static std::unique_ptr CreateIRReader( - TextFormatIR text_format, - const std::set *exported_headers = nullptr); - protected: - template - inline void MergeElements(Augend *augend, Addend &&addend) { - augend->insert(std::make_move_iterator(addend.begin()), - std::make_move_iterator(addend.end())); - } - std::unique_ptr module_; uint64_t max_type_id_ = 0;