summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
Diffstat (limited to 'platform')
-rw-r--r--platform/android/export/export.cpp3
-rw-r--r--platform/bb10/export/export.cpp2
-rw-r--r--platform/x11/detect.py7
-rw-r--r--platform/x11/os_x11.cpp3
-rw-r--r--platform/x11/os_x11.h3
5 files changed, 17 insertions, 1 deletions
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp
index 1dca83274a..4d3f8f110a 100644
--- a/platform/android/export/export.cpp
+++ b/platform/android/export/export.cpp
@@ -1635,8 +1635,11 @@ bool EditorExportPlatformAndroid::can_export(String *r_error) const {
EditorExportPlatformAndroid::~EditorExportPlatformAndroid() {
+
quit_request=true;
Thread::wait_to_finish(device_thread);
+ memdelete(device_lock);
+ memdelete(device_thread);
}
diff --git a/platform/bb10/export/export.cpp b/platform/bb10/export/export.cpp
index 7862ecd493..a807e184ce 100644
--- a/platform/bb10/export/export.cpp
+++ b/platform/bb10/export/export.cpp
@@ -764,6 +764,8 @@ EditorExportPlatformBB10::~EditorExportPlatformBB10() {
quit_request=true;
Thread::wait_to_finish(device_thread);
+ memdelete(device_lock);
+ memdelete(device_thread);
}
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index b0876d7fc6..4ecd23204f 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -52,6 +52,7 @@ def get_opts():
return [
('use_llvm','Use llvm compiler','no'),
('use_sanitizer','Use llvm compiler sanitize address','no'),
+ ('use_leak_sanitizer','Use llvm compiler sanitize memory leaks','no'),
('pulseaudio','Detect & Use pulseaudio','yes'),
('new_wm_api', 'Use experimental window management API','no'),
]
@@ -94,6 +95,12 @@ def configure(env):
env.Append(LINKFLAGS=['-fsanitize=address'])
env.extra_suffix+="s"
+ if (env["use_leak_sanitizer"]=="yes"):
+ env.Append(CXXFLAGS=['-fsanitize=address','-fno-omit-frame-pointer'])
+ env.Append(LINKFLAGS=['-fsanitize=address'])
+ env.extra_suffix+="s"
+
+
#if (env["tools"]=="no"):
# #no tools suffix
# env['OBJSUFFIX'] = ".nt"+env['OBJSUFFIX']
diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp
index 413d845bf3..67ec33f3a3 100644
--- a/platform/x11/os_x11.cpp
+++ b/platform/x11/os_x11.cpp
@@ -258,9 +258,11 @@ void OS_X11::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
AudioDriverManagerSW::get_driver(p_audio_driver)->set_singleton();
+ audio_driver_index=p_audio_driver;
if (AudioDriverManagerSW::get_driver(p_audio_driver)->init()!=OK) {
bool success=false;
+ audio_driver_index=-1;
for(int i=0;i<AudioDriverManagerSW::get_driver_count();i++) {
if (i==p_audio_driver)
continue;
@@ -268,6 +270,7 @@ void OS_X11::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
success=true;
print_line("Audio Driver Failed: "+String(AudioDriverManagerSW::get_driver(p_audio_driver)->get_name()));
print_line("Using alternate audio driver: "+String(AudioDriverManagerSW::get_driver(i)->get_name()));
+ audio_driver_index=i;
break;
}
}
diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h
index 59cda21cad..0036485f3f 100644
--- a/platform/x11/os_x11.h
+++ b/platform/x11/os_x11.h
@@ -157,9 +157,10 @@ class OS_X11 : public OS_Unix {
int joystick_count;
- Joystick joysticks[JOYSTICKS_MAX];
+ Joystick joysticks[JOYSTICKS_MAX];
+ int audio_driver_index;
unsigned int capture_idle;
bool maximized;
//void set_wm_border(bool p_enabled);