1
0
Fork 0

fixed resource leak (CloseHandle)

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@796
This commit is contained in:
Ulf Wohlers 2003-03-25 12:53:39 +00:00
parent 201ee0113c
commit d97fa68f06

View file

@ -184,6 +184,7 @@ bool CDROM_Interface_Aspi::GetVendor(BYTE HA_num, BYTE SCSI_Id, BYTE SCSI_Lun, c
if (dwStatus==SS_PENDING) WaitForSingleObject(hEvent,30000);
// LOG(LOG_MISC|LOG_ERROR,"SCSI: Pending done.");
CloseHandle(hEvent);
if (srbExec.SRB_Status != SS_COMP) {
strcpy (szBuffer, "error" );
return false;
@ -382,6 +383,8 @@ DWORD CDROM_Interface_Aspi::GetTOC(LPTOC toc)
if (dwStatus==SS_PENDING) WaitForSingleObject(hEvent,30000);
CloseHandle(hEvent);
return (s.SRB_Status==SS_COMP);
}
@ -420,6 +423,8 @@ bool CDROM_Interface_Aspi::PlayAudioSector(unsigned long start,unsigned long len
if(dwStatus==SS_PENDING) WaitForSingleObject(hEvent,10000);
CloseHandle(hEvent);
return s.SRB_Status==SS_COMP;
}
@ -453,9 +458,9 @@ bool CDROM_Interface_Aspi::PauseAudio(bool resume)
if (dwStatus==SS_PENDING) WaitForSingleObject(hEvent,30000);
if (s.SRB_Status!=SS_COMP) return false;
CloseHandle(hEvent);
return true;
return (s.SRB_Status==SS_COMP);
};
bool CDROM_Interface_Aspi::GetAudioSub(unsigned char& attr, unsigned char& track, unsigned char& index, TMSF& relPos, TMSF& absPos)
@ -493,6 +498,8 @@ bool CDROM_Interface_Aspi::GetAudioSub(unsigned char& attr, unsigned char& track
if (dwStatus==SS_PENDING) WaitForSingleObject(hEvent,0xFFFFFFFF);
CloseHandle(hEvent);
if (s.SRB_Status!=SS_COMP) return false;
attr = (pos.ADR<<4) | pos.Control;
@ -543,6 +550,8 @@ bool CDROM_Interface_Aspi::GetUPC(unsigned char& attr, char* upcdata)
if (dwStatus==SS_PENDING) WaitForSingleObject(hEvent,0xFFFFFFFF);
CloseHandle(hEvent);
if (s.SRB_Status!=SS_COMP) return false;
// attr = (upc.ADR<<4) | upc.Control;
@ -593,6 +602,8 @@ bool CDROM_Interface_Aspi::GetAudioStatus(bool& playing, bool& pause)
if (dwStatus==SS_PENDING) WaitForSingleObject(hEvent,0xFFFFFFFF);
CloseHandle(hEvent);
if (s.SRB_Status!=SS_COMP) return false;
playing = (sub.AudioStatus==0x11);
@ -631,6 +642,8 @@ bool CDROM_Interface_Aspi::LoadUnloadMedia(bool unload)
if (dwStatus==SS_PENDING) WaitForSingleObject(hEvent,0xFFFFFFFF);
CloseHandle(hEvent);
if (s.SRB_Status!=SS_COMP) return false;
return true;
@ -696,6 +709,8 @@ bool CDROM_Interface_Aspi::ReadSectors(void* buffer, bool raw, unsigned long sec
if (dwStatus==SS_PENDING) WaitForSingleObject(hEvent,0xFFFFFFFF);
CloseHandle(hEvent);
if (s.SRB_Status!=SS_COMP) {
if (!raw) delete[] inPtr;
return false;