partially fixes a possible hash-collision bug in FileSystem
This commit is contained in:
@@ -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 )
|
||||||
|
|||||||
Reference in New Issue
Block a user