diff options
author | Thiago Macieira <thiago@macieira.org> | 2014-08-17 10:42:47 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-08-17 12:01:56 -0600 |
commit | f3d44db512f5e877065cbb0afdfd25ce206976dd (patch) | |
tree | 62c39fcdd5ce14ec7c8e659c56f4bd2606645ac7 /qthelper.cpp | |
parent | 29f50c6aeeb31dfad7510d240e27905a9f62670d (diff) | |
download | subsurface-f3d44db512f5e877065cbb0afdfd25ce206976dd.tar.gz |
Fix and simplify get_file_name
This function created a QFile that it didn't need and it returned a
dangling pointer (the std::string object was destroyed at the end of the
function).
The function now returns a pointer that the caller must free. For that
reason, it's easier in copy_image_and_overwrite to just go for the
QFileInfo call.
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qthelper.cpp')
-rw-r--r-- | qthelper.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/qthelper.cpp b/qthelper.cpp index 98fa785a1..e481bc9e9 100644 --- a/qthelper.cpp +++ b/qthelper.cpp @@ -284,19 +284,17 @@ picture_load_exit: return; } -extern "C" const char* get_file_name(const char *fileName) +extern "C" char *get_file_name(const char *fileName) { - QFile file(fileName); - QFileInfo fileInfo(file.fileName()); - QString filename(fileInfo.fileName()); - return filename.toStdString().c_str(); + QFileInfo fileInfo(fileName); + return strdup(fileInfo.fileName().toUtf8()); } extern "C" void copy_image_and_overwrite(const char *cfileName, const char *cnewName) { QString fileName = QString::fromUtf8(cfileName); QString newName = QString::fromUtf8(cnewName); - newName += get_file_name(cfileName); + newName += QFileInfo(cfileName).fileName(); QFile file(newName); if (file.exists()) file.remove(); |