index: stop suffixes were ignored in some cases

This commit is contained in:
Jean-Francois Dockes 2011-05-02 15:09:45 +02:00
parent 21aa44b39e
commit 2458541c71

View File

@ -56,7 +56,11 @@ using namespace std;
bool ParamStale::needrecompute() bool ParamStale::needrecompute()
{ {
LOGDEB2(("ParamStale:: needrecompute. parent gen %d mine %d\n",
parent->m_keydirgen, savedkeydirgen));
if (parent->m_keydirgen != savedkeydirgen) { if (parent->m_keydirgen != savedkeydirgen) {
LOGDEB2(("ParamState:: needrecompute. conffile %p\n", conffile));
savedkeydirgen = parent->m_keydirgen; savedkeydirgen = parent->m_keydirgen;
string newvalue; string newvalue;
if (!conffile) if (!conffile)
@ -64,6 +68,8 @@ bool ParamStale::needrecompute()
conffile->get(paramname, newvalue, parent->m_keydir); conffile->get(paramname, newvalue, parent->m_keydir);
if (newvalue.compare(savedvalue)) { if (newvalue.compare(savedvalue)) {
savedvalue = newvalue; savedvalue = newvalue;
LOGDEB2(("ParamState:: needrecompute. return true newvalue [%s]\n",
newvalue.c_str()));
return true; return true;
} }
} }
@ -439,7 +445,9 @@ typedef multiset<SfString, SuffCmp> SuffixStore;
bool RclConfig::inStopSuffixes(const string& fni) bool RclConfig::inStopSuffixes(const string& fni)
{ {
if (m_stopsuffixes == 0 || m_stpsuffstate.needrecompute()) { LOGDEB2(("RclConfig::inStopSuffixes(%s)\n", fni.c_str()));
// Beware: needrecompute() needs to be called always. 2nd test stays back.
if (m_stpsuffstate.needrecompute() || m_stopsuffixes == 0) {
// Need to initialize the suffixes // Need to initialize the suffixes
delete STOPSUFFIXES; delete STOPSUFFIXES;
if ((m_stopsuffixes = new SuffixStore) == 0) { if ((m_stopsuffixes = new SuffixStore) == 0) {