partially fixes a possible hash-collision bug in FileSystem

This commit is contained in:
Bob
2010-01-22 16:49:49 +13:00
parent 18a4da6bc0
commit bdb4fb190a

View File

@@ -81,10 +81,13 @@ namespace OpenRa.FileFormats
public static Stream Open(string filename) public static Stream Open(string filename)
{ {
var ret = GetFromCache( allFiles, filename ) if( filename.IndexOfAny( new char[] { '/', '\\' } ) == -1 )
?? GetFromCache( allTemporaryFiles, filename ); {
if( ret != null ) var ret = GetFromCache( allFiles, filename )
return ret; ?? GetFromCache( allTemporaryFiles, filename );
if( ret != null )
return ret;
}
foreach( IFolder folder in mountedFolders ) foreach( IFolder folder in mountedFolders )
{ {
@@ -98,12 +101,15 @@ namespace OpenRa.FileFormats
public static Stream OpenWithExts( string filename, params string[] exts ) public static Stream OpenWithExts( string filename, params string[] exts )
{ {
foreach( var ext in exts ) if( filename.IndexOfAny( new char[] { '/', '\\' } ) == -1 )
{ {
var s = GetFromCache( allFiles, filename + ext ) foreach( var ext in exts )
?? GetFromCache( allTemporaryFiles, filename + ext ); {
if( s != null ) var s = GetFromCache( allFiles, filename + ext )
return s; ?? GetFromCache( allTemporaryFiles, filename + ext );
if( s != null )
return s;
}
} }
foreach( var ext in exts ) foreach( var ext in exts )