gdip-pixbuf-loader r17 - trunk/src



Author: doml
Date: Mon Feb 18 23:44:55 2008
New Revision: 17
URL: http://svn.gnome.org/viewvc/gdip-pixbuf-loader?rev=17&view=rev

Log:
don't write out of bounds

Modified:
   trunk/src/io-gdip.c

Modified: trunk/src/io-gdip.c
==============================================================================
--- trunk/src/io-gdip.c	(original)
+++ trunk/src/io-gdip.c	Mon Feb 18 23:44:55 2008
@@ -185,18 +185,22 @@
                                         guchar *b = cursor + (y * rowstride + (x * n_channels));
                                         
                                         pixel = io_gdip_bitmap_get_pixel (bitmap, x, y);
-                                        
+
                                         /* un-premultiply alpha */
                                         alpha = (pixel & 0xff000000) >> 24;
                                         if (alpha == 0) 
                                                 {
-                                                        b[0] = b[1] = b[2] = b[3] = 0;
+                                                        b[0] = b[1] = b[2];
                                                 } 
                                         else 
                                                 {
                                                         b[0] = (((pixel & 0xff0000) >> 16) * 255 + alpha / 2) / alpha;
                                                         b[1] = (((pixel & 0x00ff00) >> 8) * 255 + alpha / 2) / alpha;
                                                         b[2] = (((pixel & 0x0000ff) >> 0) * 255 + alpha / 2) / alpha;
+                                                }
+
+                                        if (has_alpha)
+                                                {
                                                         b[3] = alpha;
                                                 }
                                 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]