From: Carl Hetherington Date: Sun, 14 Mar 2021 22:38:57 +0000 (+0100) Subject: Fix crash on startup on macOS. X-Git-Tag: v2.15.135~1 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=ba8c02f1cab02fbe3cde4c6abdd95e878318e599 Fix crash on startup on macOS. --- diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc index bc9b29c4f..8ef32fca3 100644 --- a/src/wx/wx_util.cc +++ b/src/wx/wx_util.cc @@ -489,11 +489,14 @@ maybe_show_splash () try { wxBitmap bitmap; if (bitmap.LoadFile(bitmap_path("splash"), wxBITMAP_TYPE_PNG)) { - wxMemoryDC dc(bitmap); - auto const version = wxString::Format("%s (%s)", dcpomatic_version, dcpomatic_git_commit); - auto screen_size = dc.GetSize(); - auto text_size = dc.GetTextExtent(version); - dc.DrawText(version, (screen_size.GetWidth() - text_size.GetWidth()) / 2, 236); + { + /* This wxMemoryDC must be destroyed before bitmap can be used elsewhere */ + wxMemoryDC dc(bitmap); + auto const version = wxString::Format("%s (%s)", dcpomatic_version, dcpomatic_git_commit); + auto screen_size = dc.GetSize(); + auto text_size = dc.GetTextExtent(version); + dc.DrawText(version, (screen_size.GetWidth() - text_size.GetWidth()) / 2, 236); + } #ifdef DCPOMATIC_WINDOWS /* Having wxSTAY_ON_TOP means error dialogues hide behind the splash screen on Windows, no matter what I try */ splash = new wxSplashScreen (bitmap, wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_NO_TIMEOUT, 0, 0, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SIMPLE | wxFRAME_NO_TASKBAR);