summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/config.cpp1
1 files changed, 0 insertions, 1 deletions
diff --git a/library/config.cpp b/library/config.cpp
index e9cae4c..72bd4d2 100644
--- a/library/config.cpp
+++ b/library/config.cpp
@@ -118,65 +118,64 @@ private:
ConfigCache* ConfigCache::m_inst = 0;
/*
* get destroyed when qApp gets destroyed
*/
ConfigCache::ConfigCache() : QObject( qApp ), m_totalSize( 0 ), m_tid( 0 ) {}
ConfigCache* ConfigCache::instance() {
if ( !m_inst )
m_inst = new ConfigCache();
return m_inst;
}
void ConfigCache::remove( const QString& fileName ) {
QMap<QString, ConfigData>::Iterator it = m_cached.find( fileName );
if ( it == m_cached.end() )
return;
m_totalSize -= (*it).size;
m_cached.remove( it );
}
void ConfigCache::removeLru() {
QMap<QString, ConfigData>::Iterator it = m_cached.begin();
QMap<QString, ConfigData>::Iterator lru = it;
++it;
for (; it != m_cached.end(); ++it)
if ((*it).used.tv_sec < (*lru).used.tv_sec ||
((*it).used.tv_sec == (*lru).used.tv_sec &&
(*it).used.tv_usec < (*lru).used.tv_usec))
lru = it;
- qWarning( "Removing item" );
m_totalSize -= (*lru).size;
m_cached.remove(lru);
}
void ConfigCache::timerEvent( QTimerEvent* ) {
while ( m_totalSize > CONFIG_CACHE_SIZE )
removeLru();
killTimer(m_tid);
m_tid = 0;
}
void ConfigCache::insert( const QString& fileName, const ConfigGroupMap& cfg,
const ConfigPrivate* _priv ) {
struct stat sbuf;
::stat( QFile::encodeName(fileName), &sbuf );
if ( static_cast<unsigned int>(sbuf.st_size) >= CONFIG_CACHE_SIZE>>1)
return;
/*
* remove the old version and use the new one
*/
ConfigPrivate priv = _priv ? *_priv : ConfigPrivate();
ConfigData data( cfg, priv, sbuf );
m_totalSize += data.size;
remove( fileName );
m_cached.insert( fileName, data );
/*