Browse Source

Fix crash when cancelling file dialog

Closes #358

Signed-off-by: falkTX <falktx@falktx.com>
pull/367/head
falkTX 3 years ago
parent
commit
07de97ba72
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
1 changed files with 18 additions and 4 deletions
  1. +18
    -4
      distrho/extra/FileBrowserDialog.cpp

+ 18
- 4
distrho/extra/FileBrowserDialog.cpp View File

@@ -87,8 +87,8 @@ struct FileBrowserData {

~FileBrowserData()
{
if (cancelAndStop() && selectedFile != nullptr && selectedFile != kSelectedFileCancelled)
std::free(const_cast<char*>(selectedFile));
if (cancelAndStop())
free();
}

void setupAndStart(const bool embed,
@@ -238,10 +238,24 @@ struct FileBrowserData {
XCloseDisplay(x11display);
#endif

if (selectedFile != nullptr && selectedFile != kSelectedFileCancelled)
std::free(const_cast<char*>(selectedFile));
free();
}
#endif

void free()
{
if (selectedFile == nullptr)
return;

if (selectedFile == kSelectedFileCancelled || std::strcmp(selectedFile, kSelectedFileCancelled) == 0)
{
selectedFile = nullptr;
return;
}

std::free(const_cast<char*>(selectedFile));
selectedFile = nullptr;
}
};

// --------------------------------------------------------------------------------------------------------------------


Loading…
Cancel
Save