diff --git a/src/pool/PoolSQL.cc b/src/pool/PoolSQL.cc index f67c70332a..06d47051d8 100644 --- a/src/pool/PoolSQL.cc +++ b/src/pool/PoolSQL.cc @@ -199,8 +199,6 @@ PoolObjectSQL * PoolSQL::get( } else { - map::iterator name_index; - objectsql = create(); objectsql->oid = oid; @@ -217,10 +215,12 @@ PoolObjectSQL * PoolSQL::get( } if ( uses_name_pool ) - { - string okey = key(objectsql->name,objectsql->uid); + { + map::iterator name_index; + string okey; - name_index = name_pool.find(okey); + okey = key(objectsql->name,objectsql->uid); + name_index = name_pool.find(okey); if ( name_index != name_pool.end() ) { @@ -262,11 +262,6 @@ PoolObjectSQL * PoolSQL::get( PoolObjectSQL * PoolSQL::get(const string& name, int ouid, bool olock) { - if ( uses_name_pool == false ) - { - return 0; - } - map::iterator index; PoolObjectSQL * objectsql; @@ -274,6 +269,12 @@ PoolObjectSQL * PoolSQL::get(const string& name, int ouid, bool olock) lock(); + if ( uses_name_pool == false ) + { + unlock(); + return 0; + } + index = name_pool.find(key(name,ouid)); if ( index != name_pool.end() && index->second->isValid() == true ) @@ -354,15 +355,16 @@ void PoolSQL::update_cache_index(string& old_name, string& new_name, int new_uid) { - if ( uses_name_pool == false ) - { - return; - } - map::iterator index; lock(); + if ( uses_name_pool == false ) + { + unlock(); + return; + } + string old_key = key(old_name, old_uid); string new_key = key(new_name, new_uid);