diff options
-rw-r--r-- | OnDiskPt/Main.cpp | 3 | ||||
-rw-r--r-- | OnDiskPt/OnDiskWrapper.cpp | 15 | ||||
-rw-r--r-- | OnDiskPt/OnDiskWrapper.h | 4 | ||||
-rw-r--r-- | OnDiskPt/PhraseNode.cpp | 19 | ||||
-rw-r--r-- | OnDiskPt/TargetPhrase.cpp | 23 | ||||
-rw-r--r-- | OnDiskPt/TargetPhraseCollection.cpp | 2 | ||||
-rw-r--r-- | OnDiskPt/Vocab.cpp | 3 | ||||
-rw-r--r-- | OnDiskPt/Word.cpp | 2 | ||||
-rw-r--r-- | OnDiskPt/queryOnDiskPt.cpp | 3 | ||||
-rw-r--r-- | moses/TranslationModel/RuleTable/PhraseDictionaryOnDisk.cpp | 3 |
10 files changed, 36 insertions, 41 deletions
diff --git a/OnDiskPt/Main.cpp b/OnDiskPt/Main.cpp index c3cda2a75..df01160e9 100644 --- a/OnDiskPt/Main.cpp +++ b/OnDiskPt/Main.cpp @@ -62,8 +62,7 @@ int main (int argc, char * const argv[]) Moses::InputFileStream inStream(filePath); OnDiskWrapper onDiskWrapper; - bool retDb = onDiskWrapper.BeginSave(destPath, numSourceFactors, numTargetFactors, numScores); - assert(retDb); + onDiskWrapper.BeginSave(destPath, numSourceFactors, numTargetFactors, numScores); PhraseNode &rootNode = onDiskWrapper.GetRootSourceNode(); size_t lineNum = 0; diff --git a/OnDiskPt/OnDiskWrapper.cpp b/OnDiskPt/OnDiskWrapper.cpp index 700b62678..5e44f5743 100644 --- a/OnDiskPt/OnDiskWrapper.cpp +++ b/OnDiskPt/OnDiskWrapper.cpp @@ -43,18 +43,17 @@ OnDiskWrapper::~OnDiskWrapper() delete m_rootSourceNode; } -bool OnDiskWrapper::BeginLoad(const std::string &filePath) +void OnDiskWrapper::BeginLoad(const std::string &filePath) { - if (!OpenForLoad(filePath)) - return false; + if (!OpenForLoad(filePath)) { + UTIL_THROW(util::FileOpenException, "Couldn't open for loading: " << filePath); + } if (!m_vocab.Load(*this)) - return false; + UTIL_THROW(util::FileOpenException, "Couldn't load vocab"); UINT64 rootFilePos = GetMisc("RootNodeOffset"); m_rootSourceNode = new PhraseNode(rootFilePos, *this); - - return true; } bool OnDiskWrapper::OpenForLoad(const std::string &filePath) @@ -110,7 +109,7 @@ bool OnDiskWrapper::LoadMisc() return true; } -bool OnDiskWrapper::BeginSave(const std::string &filePath +void OnDiskWrapper::BeginSave(const std::string &filePath , int numSourceFactors, int numTargetFactors, int numScores) { m_numSourceFactors = numSourceFactors; @@ -175,8 +174,6 @@ bool OnDiskWrapper::BeginSave(const std::string &filePath counts[0] = DEFAULT_COUNT; m_rootSourceNode = new PhraseNode(); m_rootSourceNode->AddCounts(counts); - - return true; } void OnDiskWrapper::EndSave() diff --git a/OnDiskPt/OnDiskWrapper.h b/OnDiskPt/OnDiskWrapper.h index e911689b3..6640f33ee 100644 --- a/OnDiskPt/OnDiskWrapper.h +++ b/OnDiskPt/OnDiskWrapper.h @@ -55,9 +55,9 @@ public: OnDiskWrapper(); ~OnDiskWrapper(); - bool BeginLoad(const std::string &filePath); + void BeginLoad(const std::string &filePath); - bool BeginSave(const std::string &filePath + void BeginSave(const std::string &filePath , int numSourceFactors, int numTargetFactors, int numScores); void EndSave(); diff --git a/OnDiskPt/PhraseNode.cpp b/OnDiskPt/PhraseNode.cpp index d141a1af2..b83c7ca05 100644 --- a/OnDiskPt/PhraseNode.cpp +++ b/OnDiskPt/PhraseNode.cpp @@ -56,7 +56,7 @@ PhraseNode::PhraseNode(UINT64 filePos, OnDiskWrapper &onDiskWrapper) std::fstream &file = onDiskWrapper.GetFileSource(); file.seekg(filePos); - CHECK(filePos == (UINT64)file.tellg()); + assert(filePos == (UINT64)file.tellg()); file.read((char*) &m_numChildrenLoad, sizeof(UINT64)); @@ -65,11 +65,11 @@ PhraseNode::PhraseNode(UINT64 filePos, OnDiskWrapper &onDiskWrapper) // go to start of node again file.seekg(filePos); - CHECK(filePos == (UINT64)file.tellg()); + assert(filePos == (UINT64)file.tellg()); // read everything into memory file.read(m_memLoad, memAlloc); - CHECK(filePos + memAlloc == (UINT64)file.tellg()); + assert(filePos + memAlloc == (UINT64)file.tellg()); // get value m_value = ((UINT64*)m_memLoad)[1]; @@ -77,7 +77,7 @@ PhraseNode::PhraseNode(UINT64 filePos, OnDiskWrapper &onDiskWrapper) // get counts float *memFloat = (float*) (m_memLoad + sizeof(UINT64) * 2); - CHECK(countSize == 1); + assert(countSize == 1); m_counts[0] = memFloat[0]; m_memLoadLast = m_memLoad + memAlloc; @@ -86,7 +86,6 @@ PhraseNode::PhraseNode(UINT64 filePos, OnDiskWrapper &onDiskWrapper) PhraseNode::~PhraseNode() { free(m_memLoad); - //CHECK(m_saved); } float PhraseNode::GetCount(size_t ind) const @@ -96,7 +95,7 @@ float PhraseNode::GetCount(size_t ind) const void PhraseNode::Save(OnDiskWrapper &onDiskWrapper, size_t pos, size_t tableLimit) { - CHECK(!m_saved); + UTIL_THROW_IF(m_saved, util::Exception, "Already saved"); // save this node m_targetPhraseColl.Sort(tableLimit); @@ -117,7 +116,7 @@ void PhraseNode::Save(OnDiskWrapper &onDiskWrapper, size_t pos, size_t tableLimi // count info float *memFloat = (float*) (mem + memUsed); - CHECK(numCounts == 1); + UTIL_THROW_IF(numCounts != 1, util::Exception, "Can only store 1 phrase count"); memFloat[0] = (m_counts.size() == 0) ? DEFAULT_COUNT : m_counts[0]; // if count = 0, put in very large num to make sure its still used. HACK memUsed += sizeof(float) * numCounts; @@ -143,7 +142,7 @@ void PhraseNode::Save(OnDiskWrapper &onDiskWrapper, size_t pos, size_t tableLimi // save this node //Moses::DebugMem(mem, memAlloc); - CHECK(memUsed == memAlloc); + assert(memUsed == memAlloc); std::fstream &file = onDiskWrapper.GetFileSource(); m_filePos = file.tellp(); @@ -151,7 +150,7 @@ void PhraseNode::Save(OnDiskWrapper &onDiskWrapper, size_t pos, size_t tableLimi file.write(mem, memUsed); UINT64 endPos = file.tellp(); - CHECK(m_filePos + memUsed == endPos); + assert(m_filePos + memUsed == endPos); free(mem); @@ -236,7 +235,7 @@ void PhraseNode::GetChild(Word &wordFound, UINT64 &childFilePos, size_t ind, OnD + childSize * ind; size_t memRead = ReadChild(wordFound, childFilePos, currMem); - CHECK(memRead == childSize); + assert(memRead == childSize); } size_t PhraseNode::ReadChild(Word &wordFound, UINT64 &childFilePos, const char *mem) const diff --git a/OnDiskPt/TargetPhrase.cpp b/OnDiskPt/TargetPhrase.cpp index 31852db6b..4027ec23a 100644 --- a/OnDiskPt/TargetPhrase.cpp +++ b/OnDiskPt/TargetPhrase.cpp @@ -25,6 +25,7 @@ #include "moses/TranslationModel/PhraseDictionary.h" #include "TargetPhrase.h" #include "OnDiskWrapper.h" +#include "util/exception.hh" #include <boost/algorithm/string.hpp> @@ -58,7 +59,7 @@ void TargetPhrase::Create1AlignFromString(const std::string &align1Str) { vector<size_t> alignPoints; Moses::Tokenize<size_t>(alignPoints, align1Str, "-"); - CHECK(alignPoints.size() == 2); + UTIL_THROW_IF(alignPoints.size() != 2, util::Exception, "Incorrectly formatted word alignment: " << align1Str); m_align.push_back(pair<size_t, size_t>(alignPoints[0], alignPoints[1]) ); } @@ -76,7 +77,7 @@ void TargetPhrase::CreateAlignFromString(const std::string &alignStr) void TargetPhrase::SetScore(float score, size_t ind) { - CHECK(ind < m_scores.size()); + assert(ind < m_scores.size()); m_scores[ind] = score; } @@ -132,7 +133,7 @@ char *TargetPhrase::WriteToMemory(OnDiskWrapper &onDiskWrapper, size_t &memUsed) memUsed += word.WriteToMemory((char*) currPtr); } - CHECK(memUsed == memNeeded); + assert(memUsed == memNeeded); return (char *) mem; } @@ -150,7 +151,7 @@ void TargetPhrase::Save(OnDiskWrapper &onDiskWrapper) file.write(mem, memUsed); UINT64 endPos = file.tellp(); - CHECK(startPos + memUsed == endPos); + assert(startPos + memUsed == endPos); m_filePos = startPos; free(mem); @@ -183,7 +184,7 @@ char *TargetPhrase::WriteOtherInfoToMemory(OnDiskWrapper &onDiskWrapper, size_t memUsed += WriteScoresToMemory(mem + memUsed); //DebugMem(mem, memNeeded); - CHECK(memNeeded == memUsed); + assert(memNeeded == memUsed); return mem; } @@ -234,7 +235,7 @@ Moses::TargetPhrase *TargetPhrase::ConvertToMoses(const std::vector<Moses::Facto // words size_t phraseSize = GetSize(); - CHECK(phraseSize > 0); // last word is lhs + UTIL_THROW_IF(phraseSize == 0, util::Exception, "Target phrase cannot be empty"); // last word is lhs if (isSyntax) { --phraseSize; } @@ -285,18 +286,18 @@ Moses::TargetPhrase *TargetPhrase::ConvertToMoses(const std::vector<Moses::Facto UINT64 TargetPhrase::ReadOtherInfoFromFile(UINT64 filePos, std::fstream &fileTPColl) { - CHECK(filePos == (UINT64)fileTPColl.tellg()); + assert(filePos == (UINT64)fileTPColl.tellg()); UINT64 memUsed = 0; fileTPColl.read((char*) &m_filePos, sizeof(UINT64)); memUsed += sizeof(UINT64); - CHECK(m_filePos != 0); + assert(m_filePos != 0); memUsed += ReadAlignFromFile(fileTPColl); - CHECK((memUsed + filePos) == (UINT64)fileTPColl.tellg()); + assert((memUsed + filePos) == (UINT64)fileTPColl.tellg()); memUsed += ReadScoresFromFile(fileTPColl); - CHECK((memUsed + filePos) == (UINT64)fileTPColl.tellg()); + assert((memUsed + filePos) == (UINT64)fileTPColl.tellg()); return memUsed; } @@ -355,7 +356,7 @@ UINT64 TargetPhrase::ReadAlignFromFile(std::fstream &fileTPColl) UINT64 TargetPhrase::ReadScoresFromFile(std::fstream &fileTPColl) { - CHECK(m_scores.size() > 0); + UTIL_THROW_IF(m_scores.size() == 0, util::Exception, "Translation rules must must have some scores"); UINT64 bytesRead = 0; diff --git a/OnDiskPt/TargetPhraseCollection.cpp b/OnDiskPt/TargetPhraseCollection.cpp index 300dd4e99..d5c83b2b1 100644 --- a/OnDiskPt/TargetPhraseCollection.cpp +++ b/OnDiskPt/TargetPhraseCollection.cpp @@ -107,7 +107,7 @@ void TargetPhraseCollection::Save(OnDiskWrapper &onDiskWrapper) free(mem); UINT64 endPos = file.tellp(); - CHECK(startPos + memUsed == endPos); + assert(startPos + memUsed == endPos); m_filePos = startPos; diff --git a/OnDiskPt/Vocab.cpp b/OnDiskPt/Vocab.cpp index 03af2d886..2bcf37348 100644 --- a/OnDiskPt/Vocab.cpp +++ b/OnDiskPt/Vocab.cpp @@ -21,6 +21,7 @@ #include <fstream> #include "OnDiskWrapper.h" #include "Vocab.h" +#include "util/exception.hh" using namespace std; @@ -35,7 +36,7 @@ bool Vocab::Load(OnDiskWrapper &onDiskWrapper) while(getline(file, line)) { vector<string> tokens; Moses::Tokenize(tokens, line); - CHECK(tokens.size() == 2); + UTIL_THROW_IF(tokens.size() != 2, util::Exception, "Vocab file corrupted"); const string &key = tokens[0]; m_vocabColl[key] = Moses::Scan<UINT64>(tokens[1]); } diff --git a/OnDiskPt/Word.cpp b/OnDiskPt/Word.cpp index 1664571c5..73d3614f9 100644 --- a/OnDiskPt/Word.cpp +++ b/OnDiskPt/Word.cpp @@ -91,7 +91,7 @@ size_t Word::ReadFromFile(std::fstream &file) file.read(mem, memAlloc); size_t memUsed = ReadFromMemory(mem); - CHECK(memAlloc == memUsed); + assert(memAlloc == memUsed); return memAlloc; } diff --git a/OnDiskPt/queryOnDiskPt.cpp b/OnDiskPt/queryOnDiskPt.cpp index 776dd8a2c..a38fc5435 100644 --- a/OnDiskPt/queryOnDiskPt.cpp +++ b/OnDiskPt/queryOnDiskPt.cpp @@ -41,8 +41,7 @@ int main(int argc, char **argv) usage(); OnDiskWrapper onDiskWrapper; - bool retDb = onDiskWrapper.BeginLoad(ttable); - CHECK(retDb); + onDiskWrapper.BeginLoad(ttable); OnDiskQuery onDiskQuery(onDiskWrapper); cerr << "Ready..." << endl; diff --git a/moses/TranslationModel/RuleTable/PhraseDictionaryOnDisk.cpp b/moses/TranslationModel/RuleTable/PhraseDictionaryOnDisk.cpp index 5998e24a5..f419429b7 100644 --- a/moses/TranslationModel/RuleTable/PhraseDictionaryOnDisk.cpp +++ b/moses/TranslationModel/RuleTable/PhraseDictionaryOnDisk.cpp @@ -82,8 +82,7 @@ void PhraseDictionaryOnDisk::InitializeForInput(InputType const& source) ReduceCache(); OnDiskPt::OnDiskWrapper *obj = new OnDiskPt::OnDiskWrapper(); - if (!obj->BeginLoad(m_filePath)) - return; + obj->BeginLoad(m_filePath); CHECK(obj->GetMisc("Version") == OnDiskPt::OnDiskWrapper::VERSION_NUM); CHECK(obj->GetMisc("NumSourceFactors") == m_input.size()); |