Fix/workaround at least one class of buffer underruns in the GL plugin. Fix some bad deletes (instead of delete []). etc.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@404 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard
2008-08-31 13:36:52 +00:00
parent d9e129ae99
commit 09406d76c4
25 changed files with 117 additions and 69 deletions

View File

@ -60,7 +60,6 @@ bool CBoot::Boot_BIN(const std::string& _rFilename)
}
delete pFile;
return true;
}

View File

@ -186,9 +186,9 @@ void Stop() // - Hammertime!
#endif
delete g_pThread; //Wait for emuthread to close
g_pThread = 0;
Core::StopTrace();
LogManager::Shutdown();
g_pThread = 0;
Host_SetWaitCursor(false);
}
@ -360,6 +360,7 @@ THREAD_RETURN EmuThread(void *pArg)
if( g_pUpdateFPSDisplay != NULL )
g_pUpdateFPSDisplay("Stopping...");
delete cpuThread;
cpuThread = NULL;
// Returns after game exited
g_bHwInit = false;

View File

@ -106,6 +106,7 @@ CEXIMemoryCard::~CEXIMemoryCard()
{
Flush(true);
delete [] memory_card_content;
memory_card_content = NULL;
}
bool CEXIMemoryCard::IsPresent()

View File

@ -354,7 +354,7 @@ void CCodeView::OnPaint(wxPaintEvent& event)
wxBrush rowBrush(wxColor(col >> 16, col >> 8, col));
dc.SetBrush(nullBrush);
dc.SetPen(nullPen);
dc.DrawRectangle(0, rowY1, 16, rowY2);
dc.DrawRectangle(0, rowY1, 16, rowY2 - rowY1 + 2);
if (selecting && (address == selection))
{
@ -374,7 +374,7 @@ void CCodeView::OnPaint(wxPaintEvent& event)
dc.SetBrush(rowBrush);
}
dc.DrawRectangle(16, rowY1, width, rowY2 - 1);
dc.DrawRectangle(16, rowY1, width, rowY2 - rowY1 + 1);
dc.SetBrush(currentBrush);
dc.SetTextForeground(_T("#600000"));
dc.DrawText(temp, 17, rowY1);

View File

@ -55,7 +55,8 @@ CBannerLoaderGC::CBannerLoaderGC(DiscIO::IFileSystem& _rFileSystem)
CBannerLoaderGC::~CBannerLoaderGC()
{
delete[] m_pBannerFile;
delete [] m_pBannerFile;
m_pBannerFile = NULL;
}

View File

@ -70,7 +70,8 @@ CBannerLoaderWii::CBannerLoaderWii(DiscIO::IFileSystem& _rFileSystem)
CBannerLoaderWii::~CBannerLoaderWii()
{
delete m_pBuffer;
delete [] m_pBuffer;
m_pBuffer = NULL;
}

View File

@ -42,7 +42,7 @@ CARCFile::CARCFile(const u8* _pBuffer, size_t _BufferSize)
CARCFile::~CARCFile()
{
delete m_pBuffer;
delete [] m_pBuffer;
}

View File

@ -36,7 +36,9 @@ CVolumeWiiCrypted::CVolumeWiiCrypted(IBlobReader* _pReader, u64 _VolumeOffset, c
CVolumeWiiCrypted::~CVolumeWiiCrypted()
{
delete m_pReader; // is this really our responsibility?
m_pReader = NULL;
delete[] m_pBuffer;
m_pBuffer = NULL;
}

View File

@ -39,8 +39,14 @@ CMemcardManager::CMemcardManager(wxWindow* parent, wxWindowID id, const wxString
CMemcardManager::~CMemcardManager()
{
if(memoryCard[0]) delete memoryCard[0];
if(memoryCard[1]) delete memoryCard[1];
if (memoryCard[0]) {
delete memoryCard[0];
memoryCard[0] = NULL;
}
if (memoryCard[1]) {
delete memoryCard[1];
memoryCard[1] = NULL;
}
}
void CMemcardManager::CreateGUIControls()

View File

@ -117,8 +117,8 @@ bool GCMemcard::RemoveFile(u32 index) //index in the directory array
bat.LastAllocated[0] = u8(firstFree>>8);
bat.LastAllocated[1] = u8(firstFree);
delete mc_data;
mc_data=mc_data2;
delete [] mc_data;
mc_data = mc_data2;
//--
//update freespace counter
@ -366,7 +366,7 @@ u32 GCMemcard::CopyFrom(GCMemcard& source, u32 index)
if(!source.GetFileData(index,t)) return 0;
u32 ret = ImportFile(d,t);
delete t;
delete[] t;
return ret;
}

View File

@ -78,6 +78,11 @@ u8 FAKE_ReadFifo8()
return videoBuffer[readptr++];
}
int FAKE_GetPosition()
{
return readptr;
}
u16 FAKE_ReadFifo16()
{
u16 val = Common::swap16(*(u16*)(videoBuffer+readptr));