# HG changeset patch # User mas01mc # Date 1231593781 0 # Node ID cead91ecf9a253b14ec3a5aa56b8692fe91b7b01 # Parent d7c23fcc8e2a0ead8fe37ddf9d175e37c47a2560 added file descriptor close() in lshlib.cpp diff -r d7c23fcc8e2a -r cead91ecf9a2 lshlib.cpp --- a/lshlib.cpp Sat Jan 10 13:18:24 2009 +0000 +++ b/lshlib.cpp Sat Jan 10 13:23:01 2009 +0000 @@ -472,6 +472,7 @@ calling_instance(0), add_point_callback(0) { + FILE* dbFile = 0; int dbfid = unserialize_lsh_header(filename); indexName = new char[O2_INDEX_MAXSTR]; strncpy(indexName, filename, O2_INDEX_MAXSTR); // COPY THE CONTENTS TO THE NEW POINTER @@ -485,12 +486,16 @@ // Format2 always needs unserializing if(lshHeader->flags&O2_SERIAL_FILEFORMAT2 && lshInCoreFlag){ - FILE* dbFile = fdopen(dbfid, "rb"); + dbFile = fdopen(dbfid, "rb"); if(!dbFile) error("Cannot open LSH file for reading", filename); unserialize_lsh_hashtables_format2(dbFile); } serial_close(dbfid); + if(dbFile){ + fclose(dbFile); + dbFile = 0; + } } G::~G(){ @@ -680,7 +685,7 @@ int dbfid; char* db; int dbIsNew=0; - + FILE* dbFile = 0; // Check requested serialFormat if(!(serialFormat==O2_SERIAL_FILEFORMAT1 || serialFormat==O2_SERIAL_FILEFORMAT2)) error("Unrecognized serial file format request: ", "serialize()"); @@ -717,7 +722,7 @@ if(serialFormat == O2_SERIAL_FILEFORMAT1) serialize_lsh_hashtables_format1(dbfid, !dbIsNew); else{ - FILE* dbFile = fdopen(dbfid, "r+b"); + dbFile = fdopen(dbfid, "r+b"); if(!dbFile) error("Cannot open LSH file for writing",filename); serialize_lsh_hashtables_format2(dbFile, !dbIsNew); @@ -736,6 +741,10 @@ serial_munmap(db, O2_SERIAL_HEADER_SIZE); // drop mmap } serial_close(dbfid); + if(dbFile){ + fclose(dbFile); + dbFile = 0; + } } // Test to see if core structure and requested format is