Don't store key in asset lookup cache
This commit is contained in:
		
							parent
							
								
									7a1c3f385e
								
							
						
					
					
						commit
						387233e9e3
					
				@ -51,7 +51,7 @@ public:
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
inline uint qHash(const VPath &key, uint seed)
 | 
			
		||||
inline uint qHash(const VPath &key, uint seed = qGlobalQHashSeed())
 | 
			
		||||
{
 | 
			
		||||
  return qHash(key.toQString(), seed);
 | 
			
		||||
}
 | 
			
		||||
@ -541,7 +541,7 @@ private:
 | 
			
		||||
 | 
			
		||||
  QVector<server_type> server_list;
 | 
			
		||||
  QVector<server_type> favorite_list;
 | 
			
		||||
  QHash<VPath, QString> asset_lookup_cache;
 | 
			
		||||
  QHash<uint, QString> asset_lookup_cache;
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
  void ms_connect_finished(bool connected, bool will_retry);
 | 
			
		||||
 | 
			
		||||
@ -204,9 +204,6 @@ QString AOApplication::get_case_sensitive_path(QString p_file)
 | 
			
		||||
    return file_parent_dir + "/" + file_basename;
 | 
			
		||||
 | 
			
		||||
  // last resort, dirlist parent dir and find case insensitive match
 | 
			
		||||
  QRegExp file_rx =
 | 
			
		||||
      QRegExp(file_basename, Qt::CaseInsensitive, QRegExp::FixedString);
 | 
			
		||||
 | 
			
		||||
  static QHash<uint, QString> listing_cache;
 | 
			
		||||
  static QHash<uint, bool> listing_exist_cache;
 | 
			
		||||
 | 
			
		||||
@ -217,7 +214,8 @@ QString AOApplication::get_case_sensitive_path(QString p_file)
 | 
			
		||||
    }
 | 
			
		||||
    listing_exist_cache.insert(qHash(file_parent_dir), true);
 | 
			
		||||
  }
 | 
			
		||||
  QString found_file = listing_cache.value(qHash(file_parent_dir % QChar('/') % file_basename.toLower()));
 | 
			
		||||
  QString found_file = listing_cache.value(
 | 
			
		||||
        qHash(file_parent_dir % QChar('/') % file_basename.toLower()));
 | 
			
		||||
 | 
			
		||||
  if (!found_file.isEmpty()) {
 | 
			
		||||
    return file_parent_dir + "/" + found_file;
 | 
			
		||||
@ -232,7 +230,7 @@ QString AOApplication::get_case_sensitive_path(QString p_file)
 | 
			
		||||
 | 
			
		||||
QString AOApplication::get_real_path(const VPath &vpath) {
 | 
			
		||||
  // Try cache first
 | 
			
		||||
  QString phys_path = asset_lookup_cache.value(vpath);
 | 
			
		||||
  QString phys_path = asset_lookup_cache.value(qHash(vpath));
 | 
			
		||||
  if (!phys_path.isEmpty() && exists(phys_path)) {
 | 
			
		||||
    return phys_path;
 | 
			
		||||
  }
 | 
			
		||||
@ -249,7 +247,7 @@ QString AOApplication::get_real_path(const VPath &vpath) {
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    if (exists(get_case_sensitive_path(path))) {
 | 
			
		||||
      asset_lookup_cache.insert(vpath, path);
 | 
			
		||||
      asset_lookup_cache.insert(qHash(vpath), path);
 | 
			
		||||
      return path;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@ -263,7 +261,7 @@ QString AOApplication::get_real_path(const VPath &vpath) {
 | 
			
		||||
QString AOApplication::get_real_suffixed_path(const VPath &vpath,
 | 
			
		||||
                                              const QStringList &suffixes) {
 | 
			
		||||
  // Try cache first
 | 
			
		||||
  QString phys_path = asset_lookup_cache.value(vpath);
 | 
			
		||||
  QString phys_path = asset_lookup_cache.value(qHash(vpath));
 | 
			
		||||
  if (!phys_path.isEmpty() && exists(phys_path)) {
 | 
			
		||||
    return phys_path;
 | 
			
		||||
  }
 | 
			
		||||
@ -281,7 +279,7 @@ QString AOApplication::get_real_suffixed_path(const VPath &vpath,
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
      if (exists(get_case_sensitive_path(path))) {
 | 
			
		||||
        asset_lookup_cache.insert(vpath, path);
 | 
			
		||||
        asset_lookup_cache.insert(qHash(vpath), path);
 | 
			
		||||
        return path;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user