webengine/osswebengine/WebCore/loader/icon/IconDatabase.cpp
changeset 13 10e98eab6f85
parent 0 dd21522fd290
child 16 a359256acfc6
equal deleted inserted replaced
8:7c90e6132015 13:10e98eab6f85
    38 #include "Logging.h"
    38 #include "Logging.h"
    39 #include "PageURLRecord.h"
    39 #include "PageURLRecord.h"
    40 #include "SQLStatement.h"
    40 #include "SQLStatement.h"
    41 #include "SQLTransaction.h"
    41 #include "SQLTransaction.h"
    42 #include "SystemTime.h"
    42 #include "SystemTime.h"
       
    43 #include "WebKitUtilsSqlite.h"
    43 
    44 
    44 #if PLATFORM(WIN_OS)
    45 #if PLATFORM(WIN_OS)
    45 #include <windows.h>
    46 #include <windows.h>
    46 #include <winbase.h>
    47 #include <winbase.h>
    47 #include <shlobj.h>
    48 #include <shlobj.h>
   228     HashMap<String, IconRecord*>::iterator end = m_iconURLToRecordMap.end();
   229     HashMap<String, IconRecord*>::iterator end = m_iconURLToRecordMap.end();
   229     
   230     
   230     for (; i != end; ++i)
   231     for (; i != end; ++i)
   231         delete (*i).second;
   232         delete (*i).second;
   232     m_iconURLToRecordMap.clear();
   233     m_iconURLToRecordMap.clear();
       
   234     
       
   235     HashMap<String, PageURLRecord*>::iterator recordIter = m_pageURLToRecordMap.begin();
       
   236     HashMap<String, PageURLRecord*>::iterator recordEnd = m_pageURLToRecordMap.end();
       
   237     String recordString;
       
   238     for (; recordIter != recordEnd; ++recordIter) {
       
   239         recordString = (*recordIter).first;
       
   240         recordString = String();
       
   241     }
       
   242     m_pageURLToRecordMap.clear();
       
   243     
       
   244     HashSet<String>::iterator retainedIter = m_retainedPageURLs.begin();
       
   245     HashSet<String>::iterator retainedEnd = m_retainedPageURLs.end();
       
   246     String* retainedString;
       
   247     for (; retainedIter != retainedEnd; ++retainedIter) {
       
   248         retainedString = retainedIter.get();
       
   249         *retainedString = String();
       
   250     }
       
   251     m_retainedPageURLs.clear();
       
   252     
       
   253     delete m_client;
       
   254     delete sharedIconDatabase;
       
   255     m_syncLock.~Mutex();
       
   256     m_urlAndIconLock.~Mutex();
       
   257     m_pendingSyncLock.~Mutex();
       
   258     m_pendingReadingLock.~Mutex();
   233 #endif
   259 #endif
   234 }
   260 }
   235 
   261 
   236 void IconDatabase::removeAllIcons()
   262 void IconDatabase::removeAllIcons()
   237 {
   263 {
   987     m_syncLock.unlock();
  1013     m_syncLock.unlock();
   988 
  1014 
   989     ASSERT_ICON_SYNC_THREAD();
  1015     ASSERT_ICON_SYNC_THREAD();
   990     
  1016     
   991     LOG(IconDatabase, "(THREAD) IconDatabase sync thread started");
  1017     LOG(IconDatabase, "(THREAD) IconDatabase sync thread started");
   992 
  1018     // Create the Symbian SQL TLS
       
  1019     sqlite3SymbianLibInit();
       
  1020         
   993 #ifndef NDEBUG
  1021 #ifndef NDEBUG
   994     double startTime = currentTime();
  1022     double startTime = currentTime();
   995 #endif
  1023 #endif
   996 
  1024 
   997     // Need to create the database path if it doesn't already exist
  1025     // Need to create the database path if it doesn't already exist
  1782 #ifndef NDEBUG
  1810 #ifndef NDEBUG
  1783     LOG(IconDatabase, "(THREAD) Final closure took %.4f seconds", currentTime() - timeStamp);
  1811     LOG(IconDatabase, "(THREAD) Final closure took %.4f seconds", currentTime() - timeStamp);
  1784 #endif
  1812 #endif
  1785     
  1813     
  1786     m_syncThreadRunning = false;
  1814     m_syncThreadRunning = false;
       
  1815     // Cleanup SQL TLS that was created from sqlite3SymbianLibInit() in iconDatabaseSyncThread()
       
  1816     sqlite3SymbianLibFinalize();
       
  1817     // Cleanup STDLIB TLS
       
  1818     CloseSTDLIB();
  1787     return 0;
  1819     return 0;
  1788 }
  1820 }
  1789 
  1821 
  1790 bool IconDatabase::imported()
  1822 bool IconDatabase::imported()
  1791 {
  1823 {