diff options
Diffstat (limited to 'dep/CascLib/src/CascRootFile_Mndx.cpp')
-rw-r--r-- | dep/CascLib/src/CascRootFile_Mndx.cpp | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/dep/CascLib/src/CascRootFile_Mndx.cpp b/dep/CascLib/src/CascRootFile_Mndx.cpp index 20e3c86e3a6..bc81d088fc0 100644 --- a/dep/CascLib/src/CascRootFile_Mndx.cpp +++ b/dep/CascLib/src/CascRootFile_Mndx.cpp @@ -2713,20 +2713,27 @@ int TFileNameDatabasePtr::CreateDatabase(LPBYTE pbMarData, DWORD cbMarData) return ERROR_INVALID_PARAMETER; pDatabase = new TFileNameDatabase; - if(pDatabase == NULL) - return ERROR_NOT_ENOUGH_MEMORY; + if(pDatabase != NULL) + { + nError = ByteStream.SetByteBuffer(pbMarData, cbMarData); + if(nError == ERROR_SUCCESS) + { + // HOTS: 1956E11 + nError = pDatabase->LoadFromStream_Exchange(ByteStream); + if(nError == ERROR_SUCCESS) + { + pDB = pDatabase; + return ERROR_SUCCESS; + } + } - nError = ByteStream.SetByteBuffer(pbMarData, cbMarData); - if(nError != ERROR_SUCCESS) + delete pDatabase; return nError; - - // HOTS: 1956E11 - nError = pDatabase->LoadFromStream_Exchange(ByteStream); - if(nError != ERROR_SUCCESS) - return nError; - - pDB = pDatabase; - return ERROR_SUCCESS; + } + else + { + return ERROR_NOT_ENOUGH_MEMORY; + } } // HOTS: 19584B0 |