searchengine/cpix/cpix/src/idxdbmgr.cpp
changeset 2 6c1a2771f4b7
parent 0 671dee74050a
child 23 d4d56f5e7c55
--- 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