mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2025-01-04 09:56:33 +03:00
change InputFeature::Instance to return pointer, not ref. Strange segfault in OSX/clang
This commit is contained in:
parent
31338d2fa2
commit
978b0bbced
@ -70,7 +70,7 @@ ConfusionNet() : InputType()
|
||||
if (SD.IsSyntax()) {
|
||||
m_defaultLabelSet.insert(SD.GetInputDefaultNonTerminal());
|
||||
}
|
||||
UTIL_THROW_IF2(&InputFeature::Instance() == NULL, "Input feature must be specified");
|
||||
UTIL_THROW_IF2(InputFeature::InstancePtr() == NULL, "Input feature must be specified");
|
||||
}
|
||||
|
||||
ConfusionNet::
|
||||
@ -140,9 +140,9 @@ ReadFormat0(std::istream& in, const std::vector<FactorType>& factorOrder)
|
||||
Clear();
|
||||
|
||||
// const StaticData &staticData = StaticData::Instance();
|
||||
const InputFeature &inputFeature = InputFeature::Instance();
|
||||
size_t numInputScores = inputFeature.GetNumInputScores();
|
||||
size_t numRealWordCount = inputFeature.GetNumRealWordsInInput();
|
||||
const InputFeature *inputFeature = InputFeature::InstancePtr();
|
||||
size_t numInputScores = inputFeature->GetNumInputScores();
|
||||
size_t numRealWordCount = inputFeature->GetNumRealWordsInInput();
|
||||
|
||||
size_t totalCount = numInputScores + numRealWordCount;
|
||||
bool addRealWordCount = (numRealWordCount > 0);
|
||||
|
@ -17,11 +17,8 @@ protected:
|
||||
bool m_legacy;
|
||||
|
||||
public:
|
||||
static const InputFeature& Instance() {
|
||||
return *s_instance;
|
||||
}
|
||||
static InputFeature& InstanceNonConst() {
|
||||
return *s_instance;
|
||||
static const InputFeature *InstancePtr() {
|
||||
return s_instance;
|
||||
}
|
||||
|
||||
InputFeature(const std::string &line);
|
||||
|
@ -11,7 +11,7 @@ PDTAimp::PDTAimp(PhraseDictionaryTreeAdaptor *p)
|
||||
distinctE(0)
|
||||
{
|
||||
m_numInputScores = 0;
|
||||
m_inputFeature = &InputFeature::Instance();
|
||||
m_inputFeature = InputFeature::InstancePtr();
|
||||
|
||||
if (m_inputFeature) {
|
||||
const PhraseDictionary *firstPt = PhraseDictionary::GetColl()[0];
|
||||
|
@ -483,14 +483,14 @@ SetInputScore(const InputPath &inputPath, PartialTranslOptColl &oldPtoc)
|
||||
const ScorePair* inputScore = inputPath.GetInputScore();
|
||||
if (inputScore == NULL) return;
|
||||
|
||||
const InputFeature &inputFeature = InputFeature::Instance();
|
||||
const InputFeature *inputFeature = InputFeature::InstancePtr();
|
||||
|
||||
const std::vector<TranslationOption*> &transOpts = oldPtoc.GetList();
|
||||
for (size_t i = 0; i < transOpts.size(); ++i) {
|
||||
TranslationOption &transOpt = *transOpts[i];
|
||||
|
||||
ScoreComponentCollection &scores = transOpt.GetScoreBreakdown();
|
||||
scores.PlusEquals(&inputFeature, *inputScore);
|
||||
scores.PlusEquals(inputFeature, *inputScore);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -35,8 +35,8 @@ TranslationOptionCollectionConfusionNet(ttasksptr const& ttask,
|
||||
BOOST_FOREACH(PhraseDictionary* pd, PhraseDictionary::GetColl())
|
||||
if (pd->ProvidesPrefixCheck()) prefixCheckers.push_back(pd);
|
||||
|
||||
const InputFeature &inputFeature = InputFeature::Instance();
|
||||
UTIL_THROW_IF2(&inputFeature == NULL, "Input feature must be specified");
|
||||
const InputFeature *inputFeature = InputFeature::InstancePtr();
|
||||
UTIL_THROW_IF2(inputFeature == NULL, "Input feature must be specified");
|
||||
|
||||
size_t inputSize = input.GetSize();
|
||||
m_inputPathMatrix.resize(inputSize);
|
||||
|
@ -28,8 +28,8 @@ TranslationOptionCollectionLattice
|
||||
UTIL_THROW_IF2(StaticData::Instance().GetUseLegacyPT(),
|
||||
"Not for models using the legqacy binary phrase table");
|
||||
|
||||
const InputFeature &inputFeature = InputFeature::Instance();
|
||||
UTIL_THROW_IF2(&inputFeature == NULL, "Input feature must be specified");
|
||||
const InputFeature *inputFeature = InputFeature::InstancePtr();
|
||||
UTIL_THROW_IF2(inputFeature == NULL, "Input feature must be specified");
|
||||
|
||||
size_t maxPhraseLength = StaticData::Instance().GetMaxPhraseLength();
|
||||
size_t size = input.GetSize();
|
||||
|
@ -12,7 +12,7 @@ namespace Moses
|
||||
{
|
||||
WordLattice::WordLattice() : ConfusionNet()
|
||||
{
|
||||
UTIL_THROW_IF2(&InputFeature::Instance() == NULL,
|
||||
UTIL_THROW_IF2(InputFeature::InstancePtr() == NULL,
|
||||
"Input feature must be specified");
|
||||
}
|
||||
|
||||
@ -57,9 +57,9 @@ InitializeFromPCNDataType
|
||||
const std::string& debug_line)
|
||||
{
|
||||
// const StaticData &staticData = StaticData::Instance();
|
||||
const InputFeature &inputFeature = InputFeature::Instance();
|
||||
size_t numInputScores = inputFeature.GetNumInputScores();
|
||||
size_t numRealWordCount = inputFeature.GetNumRealWordsInInput();
|
||||
const InputFeature *inputFeature = InputFeature::InstancePtr();
|
||||
size_t numInputScores = inputFeature->GetNumInputScores();
|
||||
size_t numRealWordCount = inputFeature->GetNumRealWordsInInput();
|
||||
|
||||
size_t maxSizePhrase = StaticData::Instance().GetMaxPhraseLength();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user