(svn r25268) -Codechange: [Win32] Simplify resource deallocation in case initializing the DirectMusic driver fails.

This commit is contained in:
michi_cc
2013-05-20 13:35:38 +00:00
parent ed858c08ca
commit a959f0c23e
2 changed files with 8 additions and 12 deletions

View File

@@ -82,24 +82,16 @@ const char *MusicDriver_DMusic::Start(const char * const *parm)
IID_IDirectMusicPerformance,
(LPVOID*)&performance
))) {
proc.CoUninitialize();
return "Failed to create the performance object";
}
/* initialize it */
if (FAILED(performance->Init(NULL, NULL, NULL))) {
performance->Release();
performance = NULL;
proc.CoUninitialize();
return "Failed to initialize performance object";
}
/* choose default Windows synth */
if (FAILED(performance->AddPort(NULL))) {
performance->CloseDown();
performance->Release();
performance = NULL;
proc.CoUninitialize();
return "AddPort failed";
}
@@ -111,10 +103,6 @@ const char *MusicDriver_DMusic::Start(const char * const *parm)
IID_IDirectMusicLoader,
(LPVOID*)&loader
))) {
performance->CloseDown();
performance->Release();
performance = NULL;
proc.CoUninitialize();
return "Failed to create loader object";
}
@@ -122,6 +110,12 @@ const char *MusicDriver_DMusic::Start(const char * const *parm)
}
MusicDriver_DMusic::~MusicDriver_DMusic()
{
this->Stop();
}
void MusicDriver_DMusic::Stop()
{
seeking = false;