mirror of
https://github.com/mii443/mozc.git
synced 2025-08-22 16:15:46 +00:00
Skip recreation of ConversionRequest in StartConversion.
* All ConversionRequest sent to StartConversion must be the CONVERSION type. * Also simplified the code in IsValidSegments. PiperOrigin-RevId: 700872045
This commit is contained in:
@ -111,13 +111,11 @@ bool ShouldSetKeyForPrediction(const absl::string_view key,
|
||||
segments.conversion_segment(0).key() != key;
|
||||
}
|
||||
|
||||
bool IsMobile(const ConversionRequest &request) {
|
||||
return request.request().zero_query_suggestion() &&
|
||||
request.request().mixed_conversion();
|
||||
}
|
||||
|
||||
bool IsValidSegments(const ConversionRequest &request,
|
||||
const Segments &segments) {
|
||||
const bool is_mobile = request.request().zero_query_suggestion() &&
|
||||
request.request().mixed_conversion();
|
||||
|
||||
// All segments should have candidate
|
||||
for (const Segment &segment : segments) {
|
||||
if (segment.candidates_size() != 0) {
|
||||
@ -127,7 +125,7 @@ bool IsValidSegments(const ConversionRequest &request,
|
||||
// So it's ok if we have meta candidates even if we don't have candidates
|
||||
// TODO(team): we may remove mobile check if other platforms accept
|
||||
// meta candidate only segment
|
||||
if (IsMobile(request) && segment.meta_candidates_size() != 0) {
|
||||
if (is_mobile && segment.meta_candidates_size() != 0) {
|
||||
continue;
|
||||
}
|
||||
return false;
|
||||
@ -135,16 +133,6 @@ bool IsValidSegments(const ConversionRequest &request,
|
||||
return true;
|
||||
}
|
||||
|
||||
ConversionRequest CreateConversionRequestWithType(
|
||||
const ConversionRequest &request, ConversionRequest::RequestType type) {
|
||||
ConversionRequest::Options options = request.options();
|
||||
options.request_type = type;
|
||||
return ConversionRequestBuilder()
|
||||
.SetConversionRequest(request)
|
||||
.SetOptions(std::move(options))
|
||||
.Build();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
Converter::Converter(const engine::Modules &modules,
|
||||
@ -164,10 +152,9 @@ void Converter::Init(std::unique_ptr<PredictorInterface> predictor,
|
||||
rewriter_ = std::move(rewriter);
|
||||
}
|
||||
|
||||
bool Converter::StartConversion(const ConversionRequest &original_request,
|
||||
bool Converter::StartConversion(const ConversionRequest &request,
|
||||
Segments *segments) const {
|
||||
const ConversionRequest request = CreateConversionRequestWithType(
|
||||
original_request, ConversionRequest::CONVERSION);
|
||||
DCHECK_EQ(request.request_type(), ConversionRequest::CONVERSION);
|
||||
|
||||
std::string key;
|
||||
switch (request.composer_key_selection()) {
|
||||
|
Reference in New Issue
Block a user