diff options
| author | Spp <none@none> | 2010-12-06 02:07:53 +0100 |
|---|---|---|
| committer | Spp <none@none> | 2010-12-06 02:07:53 +0100 |
| commit | 408fce1de69249b82cc042cb31f3fd16983c7e81 (patch) | |
| tree | f4b99f386821e70f155d9aa61b70cfb1f2d3d825 /src/server/shared/DataStores | |
| parent | e226c4ac344d06c7abbd6f04725ced2b33606349 (diff) | |
Core: Some optimizations
- Declare some functions const
- Fix some mem leak
- Fix some resource leak
- Remove unused variables and functions
- Remove duplicate functions
- Reduce the scope of some variables
- Remove unused file
--HG--
branch : trunk
Diffstat (limited to 'src/server/shared/DataStores')
| -rwxr-xr-x | src/server/shared/DataStores/DBCFileLoader.cpp | 38 | ||||
| -rwxr-xr-x | src/server/shared/DataStores/DBCFileLoader.h | 2 |
2 files changed, 31 insertions, 9 deletions
diff --git a/src/server/shared/DataStores/DBCFileLoader.cpp b/src/server/shared/DataStores/DBCFileLoader.cpp index 906cb95cb65..e087d5cb980 100755 --- a/src/server/shared/DataStores/DBCFileLoader.cpp +++ b/src/server/shared/DataStores/DBCFileLoader.cpp @@ -41,31 +41,50 @@ bool DBCFileLoader::Load(const char *filename, const char *fmt) if (!f) return false; - if (fread(&header,4,1,f)!=1) // Number of records + if (fread(&header,4,1,f) != 1) // Number of records + { + fclose(f); return false; + } + EndianConvert(header); - if (header!=0x43424457) - return false; //'WDBC' + if (header != 0x43424457) //'WDBC' + { + fclose(f); + return false; + } - if (fread(&recordCount,4,1,f)!=1) // Number of records + if (fread(&recordCount,4,1,f) != 1) // Number of records + { + fclose(f); return false; + } EndianConvert(recordCount); - if (fread(&fieldCount,4,1,f)!=1) // Number of fields + if (fread(&fieldCount,4,1,f) != 1) // Number of fields + { + fclose(f); return false; + } EndianConvert(fieldCount); - if (fread(&recordSize,4,1,f)!=1) // Size of a record + if (fread(&recordSize,4,1,f) != 1) // Size of a record + { + fclose(f); return false; + } EndianConvert(recordSize); - if (fread(&stringSize,4,1,f)!=1) // String size + if (fread(&stringSize,4,1,f) != 1) // String size + { + fclose(f); return false; + } EndianConvert(stringSize); @@ -83,8 +102,11 @@ bool DBCFileLoader::Load(const char *filename, const char *fmt) data = new unsigned char[recordSize*recordCount+stringSize]; stringTable = data + recordSize*recordCount; - if (fread(data,recordSize*recordCount+stringSize,1,f)!=1) + if (fread(data,recordSize*recordCount+stringSize,1,f) != 1) + { + fclose(f); return false; + } fclose(f); diff --git a/src/server/shared/DataStores/DBCFileLoader.h b/src/server/shared/DataStores/DBCFileLoader.h index 8dc06ac96ae..6675458215b 100755 --- a/src/server/shared/DataStores/DBCFileLoader.h +++ b/src/server/shared/DataStores/DBCFileLoader.h @@ -93,7 +93,7 @@ class DBCFileLoader uint32 GetRowSize() const { return recordSize; } uint32 GetCols() const { return fieldCount; } uint32 GetOffset(size_t id) const { return (fieldsOffset != NULL && id < fieldCount) ? fieldsOffset[id] : 0; } - bool IsLoaded() { return data != NULL; } + bool IsLoaded() const { return data != NULL; } char* AutoProduceData(const char* fmt, uint32& count, char**& indexTable, uint32 sqlRecordCount, uint32 sqlHighestIndex, char *& sqlDataTable); char* AutoProduceStrings(const char* fmt, char* dataTable); static uint32 GetFormatRecordSize(const char * format, int32 * index_pos = NULL); |
