summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-03-14 23:38:57 +0100
committerCarl Hetherington <cth@carlh.net>2021-03-14 23:38:57 +0100
commitba8c02f1cab02fbe3cde4c6abdd95e878318e599 (patch)
treee8f87205b26b9f433413bba008bfecbaa893b938 /src
parentcefe021ba42c1b7e50c7893f82f830d1aa652344 (diff)
Fix crash on startup on macOS.
Diffstat (limited to 'src')
-rw-r--r--src/wx/wx_util.cc13
1 files changed, 8 insertions, 5 deletions
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);