diff --git a/src/converter/BUILD.bazel b/src/converter/BUILD.bazel index 48e03441c..77a5bc26b 100644 --- a/src/converter/BUILD.bazel +++ b/src/converter/BUILD.bazel @@ -439,6 +439,7 @@ mozc_cc_library( "//composer", "//dictionary:pos_matcher", "//dictionary:suppression_dictionary", + "//engine:modules", "//prediction:predictor_interface", "//protocol:commands_cc_proto", "//request:conversion_request", diff --git a/src/converter/converter.cc b/src/converter/converter.cc index b77dd7fff..0cc29dd0b 100644 --- a/src/converter/converter.cc +++ b/src/converter/converter.cc @@ -49,6 +49,7 @@ #include "converter/segments.h" #include "dictionary/pos_matcher.h" #include "dictionary/suppression_dictionary.h" +#include "engine/modules.h" #include "prediction/predictor_interface.h" #include "protocol/commands.pb.h" #include "request/conversion_request.h" @@ -261,14 +262,13 @@ ConversionRequest CreateConversionRequestWithType( } // namespace -void Converter::Init(const PosMatcher *pos_matcher, - const SuppressionDictionary *suppression_dictionary, +void Converter::Init(const engine::Modules &modules, std::unique_ptr predictor, std::unique_ptr rewriter, ImmutableConverterInterface *immutable_converter) { // Initializes in order of declaration. - pos_matcher_ = pos_matcher; - suppression_dictionary_ = suppression_dictionary; + pos_matcher_ = modules.GetPosMatcher(); + suppression_dictionary_ = modules.GetSuppressionDictionary(); predictor_ = std::move(predictor); rewriter_ = std::move(rewriter); immutable_converter_ = immutable_converter; diff --git a/src/converter/converter.h b/src/converter/converter.h index 831fa16a6..3f94607b3 100644 --- a/src/converter/converter.h +++ b/src/converter/converter.h @@ -45,6 +45,7 @@ #include "converter/segments.h" #include "dictionary/pos_matcher.h" #include "dictionary/suppression_dictionary.h" +#include "engine/modules.h" #include "prediction/predictor_interface.h" #include "request/conversion_request.h" #include "rewriter/rewriter_interface.h" @@ -57,8 +58,7 @@ class Converter final : public ConverterInterface { Converter() = default; // Lazily initializes the internal members. Must be called before the use. - void Init(const dictionary::PosMatcher *pos_matcher, - const dictionary::SuppressionDictionary *suppression_dictionary, + void Init(const engine::Modules &modules, std::unique_ptr predictor, std::unique_ptr rewriter, ImmutableConverterInterface *immutable_converter); diff --git a/src/converter/converter_test.cc b/src/converter/converter_test.cc index 9372591b0..7e1188baa 100644 --- a/src/converter/converter_test.cc +++ b/src/converter/converter_test.cc @@ -260,8 +260,7 @@ class ConverterTest : public testing::TestWithTempUserProfile { auto predictor = CreatePredictor(predictor_type, modules.GetPosMatcher(), *converter_and_data); converter_and_data->converter->Init( - modules.GetPosMatcher(), modules.GetSuppressionDictionary(), - std::move(predictor), std::move(rewriter), + modules, std::move(predictor), std::move(rewriter), converter_and_data->immutable_converter.get()); } @@ -1183,7 +1182,7 @@ TEST_F(ConverterTest, VariantExpansionForSuggestion) { Converter converter; const DictionaryInterface *kNullDictionary = nullptr; converter.Init( - modules.GetPosMatcher(), modules.GetSuppressionDictionary(), + modules, DefaultPredictor::CreateDefaultPredictor( std::make_unique( data_manager, &converter, immutable_converter.get(), modules), diff --git a/src/engine/engine.cc b/src/engine/engine.cc index 6afd7c5a2..fff422d46 100644 --- a/src/engine/engine.cc +++ b/src/engine/engine.cc @@ -198,9 +198,8 @@ absl::Status Engine::Init( RETURN_IF_NULL(rewriter); rewriter_ = rewriter.get(); // Keep the reference - converter_->Init(modules_.GetPosMatcher(), - modules_.GetSuppressionDictionary(), std::move(predictor), - std::move(rewriter), immutable_converter_.get()); + converter_->Init(modules_, std::move(predictor), std::move(rewriter), + immutable_converter_.get()); user_data_manager_ = std::make_unique(predictor_, rewriter_);