summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDom Lachowicz <doml@src.gnome.org>2004-07-09 12:31:49 +0000
committerDom Lachowicz <doml@src.gnome.org>2004-07-09 12:31:49 +0000
commit5a9615a6c626e35751ae5024d6ce2e5269b66e7d (patch)
treef3e63e307b900c1fbf3c426d228d834920eed9e6
parent581349fd61215dc658e55e0efcaa8199769f1405 (diff)
downloadlibrsvg-5a9615a6c626e35751ae5024d6ce2e5269b66e7d.tar.gz
fix bug #145426
-rw-r--r--ChangeLog4
-rw-r--r--rsvg-paint-server.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 23e9c968..0ebae0e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2004-07-09 Dom Lachowicz <cinamod@hotmail.com>
+
+ * rsvg-paint-server.c: Fix bug #145426
+
2004-06-30 Dom Lachowicz <cinamod@hotmail.com>
* rsvg-css.h: Fix bug #145173
diff --git a/rsvg-paint-server.c b/rsvg-paint-server.c
index 3549bcb2..133bff07 100644
--- a/rsvg-paint-server.c
+++ b/rsvg-paint-server.c
@@ -227,8 +227,12 @@ rsvg_paint_server_lin_grad_render (RsvgPaintServer *self, ArtRender *ar,
ychange = y2 - y1;
unitlen = sqrt(xchange*xchange + ychange*ychange);
- x2 = x1 + ychange / unitlen * pointlen;
- y2 = y1 - xchange / unitlen * pointlen;
+ if (unitlen == 0 || pointlen == 0) {
+ x2 = y2 = 0;
+ } else {
+ x2 = x1 + ychange / unitlen * pointlen;
+ y2 = y1 - xchange / unitlen * pointlen;
+ }
/* solve a, b, c so ax1 + by1 + c = 0 and ax2 + by2 + c = 1, maximum
gradient is in x1,y1 to x2,y2 dir */