Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'moses/TranslationModel/UG/mmsapt.cpp')
-rw-r--r--moses/TranslationModel/UG/mmsapt.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/moses/TranslationModel/UG/mmsapt.cpp b/moses/TranslationModel/UG/mmsapt.cpp
index f6f9fff50..7b212c8df 100644
--- a/moses/TranslationModel/UG/mmsapt.cpp
+++ b/moses/TranslationModel/UG/mmsapt.cpp
@@ -496,7 +496,8 @@ namespace Moses
TargetPhrase*
Mmsapt::
- mkTPhrase(Phrase const& src,
+ mkTPhrase(ttasksptr const& ttask,
+ Phrase const& src,
PhrasePair<Token>* fix,
PhrasePair<Token>* dyn,
sptr<Bitext<Token> > const& dynbt) const
@@ -547,7 +548,8 @@ namespace Moses
BOOST_FOREACH(sptr<pscorer> const& ff, m_active_ff_common)
(*ff)(*dynbt, pool, &fvals);
}
- TargetPhrase* tp = new TargetPhrase(this);
+
+ TargetPhrase* tp = new TargetPhrase(const_cast<ttasksptr&>(ttask), this);
Token const* x = fix ? fix->start2 : dyn->start2;
uint32_t len = fix ? fix->len2 : dyn->len2;
for (uint32_t k = 0; k < len; ++k, x = x->next())
@@ -687,12 +689,12 @@ namespace Moses
while (i < ppfix.size() && k < ppdyn.size())
{
int cmp = sorter.cmp(ppfix[i], ppdyn[k]);
- if (cmp < 0) ret->Add(mkTPhrase(src,&ppfix[i++],NULL,dyn));
- else if (cmp == 0) ret->Add(mkTPhrase(src,&ppfix[i++],&ppdyn[k++],dyn));
- else ret->Add(mkTPhrase(src,NULL,&ppdyn[k++],dyn));
+ if (cmp < 0) ret->Add(mkTPhrase(ttask,src,&ppfix[i++],NULL,dyn));
+ else if (cmp == 0) ret->Add(mkTPhrase(ttask,src,&ppfix[i++],&ppdyn[k++],dyn));
+ else ret->Add(mkTPhrase(ttask,src,NULL,&ppdyn[k++],dyn));
}
- while (i < ppfix.size()) ret->Add(mkTPhrase(src,&ppfix[i++],NULL,dyn));
- while (k < ppdyn.size()) ret->Add(mkTPhrase(src,NULL,&ppdyn[k++],dyn));
+ while (i < ppfix.size()) ret->Add(mkTPhrase(ttask,src,&ppfix[i++],NULL,dyn));
+ while (k < ppdyn.size()) ret->Add(mkTPhrase(ttask,src,NULL,&ppdyn[k++],dyn));
if (m_tableLimit) ret->Prune(true, m_tableLimit);
else ret->Prune(true,ret->GetSize());