summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/filedialogimpl-gtkmm.cpp
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2014-03-30 22:44:37 +0000
committerJohan B. C. Engelen <j.b.c.engelen@alumnus.utwente.nl>2014-03-30 22:44:37 +0000
commit8ad7f3d261619d168ee0bf0e54824f9f354d2970 (patch)
treedbdd5c828a9740db4aaa4fc3695a522841ea97c9 /src/ui/dialog/filedialogimpl-gtkmm.cpp
parentinkjar: Handle return values correctly (diff)
downloadinkscape-8ad7f3d261619d168ee0bf0e54824f9f354d2970.tar.gz
inkscape-8ad7f3d261619d168ee0bf0e54824f9f354d2970.zip
imageicon: clean up unnecessary file existance check introduced in rev 12263. Could theoretically lead to uninitialized value use (of "info" struct)
same for filedialogimpl-gtkmm (bzr r13240)
Diffstat (limited to 'src/ui/dialog/filedialogimpl-gtkmm.cpp')
-rw-r--r--src/ui/dialog/filedialogimpl-gtkmm.cpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp
index fdc9cecc3..60b437575 100644
--- a/src/ui/dialog/filedialogimpl-gtkmm.cpp
+++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp
@@ -514,10 +514,11 @@ void SVGPreview::showTooLarge(long fileLength)
bool SVGPreview::set(Glib::ustring &fileName, int dialogType)
{
- if (!Glib::file_test(fileName, Glib::FILE_TEST_EXISTS))
+ if (!Glib::file_test(fileName, Glib::FILE_TEST_EXISTS)) {
+ showNoPreview();
return false;
+ }
- //g_message("fname:%s", fileName.c_str());
if (Glib::file_test(fileName, Glib::FILE_TEST_IS_DIR)) {
showNoPreview();
@@ -525,24 +526,22 @@ bool SVGPreview::set(Glib::ustring &fileName, int dialogType)
}
if (Glib::file_test(fileName, Glib::FILE_TEST_IS_REGULAR))
- {
+ {
Glib::ustring fileNameUtf8 = Glib::filename_to_utf8(fileName);
- gchar *fName = const_cast<gchar *>(fileNameUtf8.c_str());
+ gchar *fName = const_cast<gchar *>(fileNameUtf8.c_str()); // const-cast probably not necessary? (not necessary on Windows version of stat())
struct stat info;
- if (g_file_test (fName, G_FILE_TEST_EXISTS) && g_stat(fName, &info))
- {
- g_warning("SVGPreview::set() : %s : %s",
- fName, strerror(errno));
- return FALSE;
- }
- long fileLen = info.st_size;
- if (fileLen > 0xA00000L)
- {
+ if (g_stat(fName, &info)) // stat returns 0 upon success
+ {
+ g_warning("SVGPreview::set() : %s : %s", fName, strerror(errno));
+ return false;
+ }
+ if (info.st_size > 0xA00000L)
+ {
showingNoPreview = false;
- showTooLarge(fileLen);
- return FALSE;
- }
+ showTooLarge(info.st_size);
+ return false;
}
+ }
Glib::ustring svg = ".svg";
Glib::ustring svgz = ".svgz";