From fa90e901d06ead5173c077c03888f645e8ab75bf Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 23 Nov 2008 05:33:26 +0000 Subject: [PATCH] Try to work around at least one compiler bug with GCC and variable aliasing that causes crashes with hashing file cache entries. [SVN r49890] --- historic/jam/src/filesys.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/historic/jam/src/filesys.c b/historic/jam/src/filesys.c index 64d807d72..eb62ed406 100644 --- a/historic/jam/src/filesys.c +++ b/historic/jam/src/filesys.c @@ -34,24 +34,25 @@ void file_build1( PATHNAME * f, string * file ) } static struct hash * filecache_hash = 0; +static file_info_t filecache_finfo; file_info_t * file_info(char * filename) { - file_info_t finfo_, *finfo = &finfo_; + file_info_t *finfo = &filecache_finfo; if ( !filecache_hash ) filecache_hash = hashinit( sizeof( file_info_t ), "file_info" ); finfo->name = filename; + finfo->is_file = 0; + finfo->is_dir = 0; + finfo->size = 0; + finfo->time = 0; + finfo->files = 0; if ( hashenter( filecache_hash, (HASHDATA**)&finfo ) ) { /* printf( "file_info: %s\n", filename ); */ finfo->name = newstr( finfo->name ); - finfo->is_file = 0; - finfo->is_dir = 0; - finfo->size = 0; - finfo->time = 0; - finfo->files = 0; } return finfo;