Merge pull request #78 from ramiropolla/windows

Fix crash on fatalerror from winwindow_video_window_create()
This commit is contained in:
Miodrag Milanović 2014-12-15 08:38:55 +01:00
commit 988ca748ba
2 changed files with 18 additions and 11 deletions

View File

@ -250,7 +250,7 @@ static void drawd3d_window_destroy(win_window_info *window)
if (d3d == NULL)
return;
if (d3d->get_shaders()->recording())
if (d3d->get_shaders() != NULL && d3d->get_shaders()->recording())
d3d->get_shaders()->window_record();
// free the memory in the window
@ -1040,11 +1040,14 @@ renderer::~renderer()
void renderer::device_delete()
{
// free our effects
m_shaders->delete_resources(false);
if (m_shaders != NULL)
{
// free our effects
m_shaders->delete_resources(false);
// delete the HLSL interface
global_free(m_shaders);
// delete the HLSL interface
global_free(m_shaders);
}
// free our base resources
device_delete_resources();
@ -1070,7 +1073,8 @@ void renderer::device_delete()
void renderer::device_delete_resources()
{
m_texture_manager->delete_resources();
if (m_texture_manager != NULL)
m_texture_manager->delete_resources();
// free the vertex buffer
if (m_vertexbuf != NULL)
(*d3dintf->vertexbuf.release)(m_vertexbuf);

View File

@ -506,12 +506,15 @@ void windows_osd_interface::input_resume()
void windows_osd_interface::input_exit()
{
// acquire the lock and turn off input (this ensures everyone is done)
osd_lock_acquire(input_lock);
input_enabled = false;
osd_lock_release(input_lock);
if (input_lock != NULL)
{
osd_lock_acquire(input_lock);
input_enabled = false;
osd_lock_release(input_lock);
// free the lock
osd_lock_free(input_lock);
// free the lock
osd_lock_free(input_lock);
}
}