summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNiko Kiirala <niko@kiirala.com>2007-07-14 21:54:16 +0000
committerkiirala <kiirala@users.sourceforge.net>2007-07-14 21:54:16 +0000
commit26f8b9230ebff0da3413a85b2aa49f83d80f5d7b (patch)
tree6a78fa4a68c10fdb38910d25645ef89f77e94dba /src
parentFilter effects: (diff)
downloadinkscape-26f8b9230ebff0da3413a85b2aa49f83d80f5d7b.tar.gz
inkscape-26f8b9230ebff0da3413a85b2aa49f83d80f5d7b.zip
Fixed assertion failure with some unset parameters for feComposite & feOffset
(bzr r3242)
Diffstat (limited to 'src')
-rw-r--r--src/sp-fecomposite.cpp2
-rw-r--r--src/sp-feoffset.cpp16
2 files changed, 14 insertions, 4 deletions
diff --git a/src/sp-fecomposite.cpp b/src/sp-fecomposite.cpp
index 68312aa1b..b191f9826 100644
--- a/src/sp-fecomposite.cpp
+++ b/src/sp-fecomposite.cpp
@@ -122,6 +122,8 @@ sp_feComposite_release(SPObject *object)
static double
sp_feComposite_read_number(gchar const *value) {
+ if (!value) return 0;
+
char *end;
double ret = g_ascii_strtod(value, &end);
if (*end) {
diff --git a/src/sp-feoffset.cpp b/src/sp-feoffset.cpp
index 284846855..03d8b6227 100644
--- a/src/sp-feoffset.cpp
+++ b/src/sp-feoffset.cpp
@@ -111,6 +111,7 @@ sp_feOffset_release(SPObject *object)
static double
sp_feOffset_read_number(gchar const *value) {
+ if (!value) return 0;
char *end;
double ret = g_ascii_strtod(value, &end);
if (*end) {
@@ -130,14 +131,21 @@ sp_feOffset_set(SPObject *object, unsigned int key, gchar const *value)
{
SPFeOffset *feOffset = SP_FEOFFSET(object);
+ double read_num;
switch(key) {
case SP_ATTR_DX:
- feOffset->dx = sp_feOffset_read_number(value);
- object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ read_num = sp_feOffset_read_number(value);
+ if (read_num != feOffset->dx) {
+ feOffset->dx = read_num;
+ object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ }
break;
case SP_ATTR_DY:
- feOffset->dy = sp_feOffset_read_number(value);
- object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ read_num = sp_feOffset_read_number(value);
+ if (read_num != feOffset->dy) {
+ feOffset->dy = read_num;
+ object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ }
break;
/*DEAL WITH SETTING ATTRIBUTES HERE*/