aboutsummaryrefslogtreecommitdiffstats
path: root/lib/wx/c_src
diff options
context:
space:
mode:
authorDan Gudmundsson <dgud@erlang.org>2011-01-13 11:46:42 +0100
committerDan Gudmundsson <dgud@erlang.org>2011-03-02 11:22:30 +0100
commite6c038125fd204d9c2f8fa3df282ec1b75bc31b1 (patch)
treecdf3e1dfb5402f9b83c1dcc7e3adb98a3525401e /lib/wx/c_src
parentcdf46e658a3a11b97f6179c0d416dc8f2e975509 (diff)
downloadotp-e6c038125fd204d9c2f8fa3df282ec1b75bc31b1.tar.gz
otp-e6c038125fd204d9c2f8fa3df282ec1b75bc31b1.tar.bz2
otp-e6c038125fd204d9c2f8fa3df282ec1b75bc31b1.zip
Fixed coredump when graphics could not be initiated
For instance when DISPLAY was not set
Diffstat (limited to 'lib/wx/c_src')
-rw-r--r--lib/wx/c_src/wxe_driver.c3
-rw-r--r--lib/wx/c_src/wxe_impl.cpp5
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/wx/c_src/wxe_driver.c b/lib/wx/c_src/wxe_driver.c
index 310325ea26..14a9d1e982 100644
--- a/lib/wx/c_src/wxe_driver.c
+++ b/lib/wx/c_src/wxe_driver.c
@@ -1,7 +1,7 @@
/*
* %CopyrightBegin%
*
- * Copyright Ericsson AB 2008-2010. All Rights Reserved.
+ * Copyright Ericsson AB 2008-2011. All Rights Reserved.
*
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
@@ -146,7 +146,6 @@ static void
wxe_driver_unload(void)
{
// fprintf(stderr, "%s:%d: UNLOAD \r\n", __FILE__,__LINE__);
- meta_command(WXE_SHUTDOWN, wxe_master);
stop_native_gui(wxe_master);
unload_native_gui();
free(wxe_master);
diff --git a/lib/wx/c_src/wxe_impl.cpp b/lib/wx/c_src/wxe_impl.cpp
index 79d1a29519..8bccdc0a68 100644
--- a/lib/wx/c_src/wxe_impl.cpp
+++ b/lib/wx/c_src/wxe_impl.cpp
@@ -1,7 +1,7 @@
/*
* %CopyrightBegin%
*
- * Copyright Ericsson AB 2008-2010. All Rights Reserved.
+ * Copyright Ericsson AB 2008-2011. All Rights Reserved.
*
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
@@ -117,6 +117,9 @@ int start_native_gui(wxe_data *sd)
void stop_native_gui(wxe_data *sd)
{
+ if(wxe_status == WXE_INITIATED) {
+ meta_command(WXE_SHUTDOWN, sd);
+ }
erl_drv_thread_join(wxe_thread, NULL);
erl_drv_mutex_destroy(wxe_status_m);
erl_drv_cond_destroy(wxe_status_c);