@@ -380,9 +380,9 @@ Spans SentenceSyllabifier::Syllabify(const Phrase* phrase) {
380
380
class SentenceTranslation : public Translation {
381
381
public:
382
382
SentenceTranslation (TableTranslator* translator,
383
- an<Sentence> sentence,
384
- DictEntryCollector* collector,
385
- UserDictEntryCollector* ucollector,
383
+ an<Sentence>&& sentence,
384
+ DictEntryCollector&& collector,
385
+ UserDictEntryCollector&& ucollector,
386
386
const string& input,
387
387
size_t start);
388
388
virtual bool Next ();
@@ -403,17 +403,17 @@ class SentenceTranslation : public Translation {
403
403
};
404
404
405
405
SentenceTranslation::SentenceTranslation (TableTranslator* translator,
406
- an<Sentence> sentence,
407
- DictEntryCollector* collector,
408
- UserDictEntryCollector* ucollector,
406
+ an<Sentence>&& sentence,
407
+ DictEntryCollector&& collector,
408
+ UserDictEntryCollector&& ucollector,
409
409
const string& input,
410
410
size_t start)
411
- : translator_(translator), input_(input), start_(start) {
412
- sentence_. swap ( sentence);
413
- if ( collector)
414
- collector_. swap (*collector);
415
- if (ucollector)
416
- user_phrase_collector_. swap (*ucollector);
411
+ : translator_(translator),
412
+ sentence_(std::move( sentence)),
413
+ collector_(std::move( collector)),
414
+ user_phrase_collector_(std::move(ucollector)),
415
+ input_(input),
416
+ start_(start) {
417
417
PrepareSentence ();
418
418
CheckEmpty ();
419
419
}
@@ -634,17 +634,17 @@ TableTranslator::MakeSentence(const string& input, size_t start,
634
634
// compare and update sentences
635
635
if (sentences.find (end_pos) == sentences.end () ||
636
636
sentences[end_pos]->weight () <= new_sentence->weight ()) {
637
- sentences[end_pos] = new_sentence;
637
+ sentences[end_pos] = std::move ( new_sentence) ;
638
638
}
639
639
}
640
640
}
641
641
an<Translation> result;
642
642
if (sentences.find (input.length ()) != sentences.end ()) {
643
643
result = Cached<SentenceTranslation>(
644
644
this ,
645
- sentences[input.length ()],
646
- include_prefix_phrases ? & collector : NULL ,
647
- include_prefix_phrases ? & user_phrase_collector : NULL ,
645
+ std::move ( sentences[input.length ()]) ,
646
+ include_prefix_phrases ? std::move ( collector) : DictEntryCollector () ,
647
+ include_prefix_phrases ? std::move ( user_phrase_collector) : UserDictEntryCollector () ,
648
648
input,
649
649
start);
650
650
if (result && filter_by_charset) {
0 commit comments