summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Jeanmougin <marc@jeanmougin.fr>2015-08-17 00:43:57 +0000
committerMarc Jeanmougin <marcjeanmougin@free.fr>2015-08-17 00:43:57 +0000
commitfbd80d77d08c63a1e7ad0c3d4701fc1493d0b0bc (patch)
treea4094653f085e004bd7b084f267644d5067cfa87 /src
parentFixes doubled transparency computation on bitmaps for some reason (diff)
downloadinkscape-fbd80d77d08c63a1e7ad0c3d4701fc1493d0b0bc.tar.gz
inkscape-fbd80d77d08c63a1e7ad0c3d4701fc1493d0b0bc.zip
import images with dpi from file : xscale and yscale were not rounded but floored, which resulted in 0 values for big images, and numerical mayhem ensued ("inf" and "nan").
Fixed bugs: - https://launchpad.net/bugs/1479193 (bzr r14307)
Diffstat (limited to 'src')
-rw-r--r--src/extension/internal/gdkpixbuf-input.cpp4
-rw-r--r--src/xml/repr-util.cpp1
2 files changed, 3 insertions, 2 deletions
diff --git a/src/extension/internal/gdkpixbuf-input.cpp b/src/extension/internal/gdkpixbuf-input.cpp
index f5fab1fa2..f99c9050d 100644
--- a/src/extension/internal/gdkpixbuf-input.cpp
+++ b/src/extension/internal/gdkpixbuf-input.cpp
@@ -86,8 +86,8 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri)
ir = new ImageResolution(uri);
}
if (ir && ir->ok()) {
- xscale = 960.0 / floor(10.*ir->x() + .5); // round-off to 0.1 dpi
- yscale = 960.0 / floor(10.*ir->y() + .5);
+ xscale = 960.0 / round(10.*ir->x() + .5); // round-off to 0.1 dpi
+ yscale = 960.0 / round(10.*ir->y() + .5);
} else {
xscale = 96.0 / defaultxdpi;
yscale = 96.0 / defaultxdpi;
diff --git a/src/xml/repr-util.cpp b/src/xml/repr-util.cpp
index f7a437163..ce93bccab 100644
--- a/src/xml/repr-util.cpp
+++ b/src/xml/repr-util.cpp
@@ -528,6 +528,7 @@ unsigned int sp_repr_set_svg_double(Inkscape::XML::Node *repr, gchar const *key,
{
g_return_val_if_fail(repr != NULL, FALSE);
g_return_val_if_fail(key != NULL, FALSE);
+ g_return_val_if_fail(val==val, FALSE);//tests for nan
Inkscape::SVGOStringStream os;
os << val;