--- a/searchengine/cpix/cpix/src/idxdbmgr.cpp Mon May 03 13:33:22 2010 +0300
+++ b/searchengine/cpix/cpix/src/idxdbmgr.cpp Fri May 14 16:57:37 2010 +0300
@@ -731,19 +731,22 @@
newHandle);
storeReg();
- std::vector<IIdxDbInfo>::iterator
- i = multiIdxDbs_.begin(),
- end = multiIdxDbs_.end();
- for (; i!= end; ++i)
- {
- if (i->ptr() != NULL)
- {
- MultiIdxDb
- * m = dynamic_cast<MultiIdxDb*>(i->ptr());
- m->suggestHndl(newHandle,
- qualBaseAppClass);
- }
- }
+ std::vector<IIdxDbInfo>::iterator i, end;
+ if (!(multiIdxDbs_.empty())) {
+ i = multiIdxDbs_.begin();
+ end = multiIdxDbs_.end();
+ for (; i!= end; ++i)
+ {
+ if (i->ptr() != NULL)
+ {
+ MultiIdxDb
+ * m = dynamic_cast<MultiIdxDb*>(i->ptr());
+ if ( m )
+ m->suggestHndl(newHandle,
+ qualBaseAppClass);
+ }
+ }
+ }
}
}
@@ -786,8 +789,9 @@
storeReg();
- vector<IIdxDbInfo>::iterator
- i = multiIdxDbs_.begin(),
+ vector<IIdxDbInfo>::iterator i, end;
+ if (!(multiIdxDbs_.empty())) {
+ i = multiIdxDbs_.begin(); //coverty 121612 121611
end = multiIdxDbs_.end();
for (; i != end; ++i)
{
@@ -795,6 +799,7 @@
{
MultiIdxDb
* m = dynamic_cast<MultiIdxDb*>(i->ptr());
+ if ( m ){
bool
used = m->removeHndl(hndl);
@@ -802,8 +807,10 @@
{
idxDbs_[hndl].decRefCount();
}
+ }
}
}
+ }
// At this point, all multiidx-es have lost their
// reference to the index in question