aboutsummaryrefslogtreecommitdiff
path: root/dep/CascLib/src/CascRootFile_Mndx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dep/CascLib/src/CascRootFile_Mndx.cpp')
-rw-r--r--dep/CascLib/src/CascRootFile_Mndx.cpp31
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