Fixed: Don't use hash to extract clauses but identifier (else there could be conflict if the same text if used several times)

--HG--
branch : develop
This commit is contained in:
kervala 2016-11-15 10:47:02 +01:00
parent 2749d40508
commit 556590e73a

View file

@ -3080,12 +3080,11 @@ int injectClause()
vector<TClause>::iterator lastClause( first->Clauses.end()); vector<TClause>::iterator lastClause( first->Clauses.end());
for ( ; firstClause != lastClause; ++firstClause) for ( ; firstClause != lastClause; ++firstClause)
{ {
uint64 hashValue = CI18N::makeHash(firstClause->Text);
vector<TStringInfo>::iterator firstRefClause(clauses.begin()); vector<TStringInfo>::iterator firstRefClause(clauses.begin());
vector<TStringInfo>::iterator lastRefClause(clauses.end()); vector<TStringInfo>::iterator lastRefClause(clauses.end());
for ( ; firstRefClause != lastRefClause ; ++firstRefClause) for ( ; firstRefClause != lastRefClause ; ++firstRefClause)
{ {
if (hashValue == firstRefClause->HashValue && firstClause->Text != firstRefClause->Text) if (firstClause->Identifier == firstRefClause->Identifier && firstClause->Text != firstRefClause->Text)
{ {
firstClause->Text = firstRefClause->Text; firstClause->Text = firstRefClause->Text;
firstClause->HashValue = CI18N::makeHash(firstClause->Text); firstClause->HashValue = CI18N::makeHash(firstClause->Text);