diff src/paint.c @ 1092:e9f617b21db1

Merge from openvg branch
author Thinker K.F. Li <thinker@codemud.net>
date Fri, 03 Dec 2010 22:24:42 +0800
parents cd34de1a6960
children c18ad321844d
line wrap: on
line diff
--- a/src/paint.c	Thu Dec 02 08:23:08 2010 +0800
+++ b/src/paint.c	Fri Dec 03 22:24:42 2010 +0800
@@ -182,6 +182,11 @@
 
 #define RDF_DIRTY 0x1
 
+#define pnt_radial_clear_flags(radial, _flags)	\
+    do {					\
+	(radial)->flags &= ~(_flags);		\
+    } while(0)
+
 int _paint_radial_size = sizeof(paint_radial_t);
 
 static void paint_radial_prepare(paint_t *paint, mbe_t *cr, shape_t *sh) {
@@ -202,8 +207,11 @@
 					radial->stops,
 					radial->n_stops);
 	ASSERT(ptn != NULL);
-	mbe_pattern_destroy(radial->ptn);
+	if(radial->ptn)
+	    mbe_pattern_destroy(radial->ptn);
 	radial->ptn = ptn;
+	
+	pnt_radial_clear_flags(radial, RDF_DIRTY);
     }
     mbe_set_source(cr, radial->ptn);
 }