From 6efdd851978c5713318feb2470521309343126c9 Mon Sep 17 00:00:00 2001 From: Ian MacArthur Date: Thu, 13 May 2010 07:47:30 +0000 Subject: Make sure that "transparent_c" is not NULL before it is used in win32 builds. Prevents segfault when loading pixmpas that have no transparent cell set. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7605 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/fl_draw_pixmap.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/fl_draw_pixmap.cxx b/src/fl_draw_pixmap.cxx index f6dd07b3c..f68237a62 100644 --- a/src/fl_draw_pixmap.cxx +++ b/src/fl_draw_pixmap.cxx @@ -222,7 +222,7 @@ int fl_draw_pixmap(const char*const* cdata, int x, int y, Fl_Color bg) { if (!fl_measure_pixmap(cdata, d.w, d.h)) return 0; const uchar*const* data = (const uchar*const*)(cdata+1); int transparent_index = -1; - uchar *transparent_c; // such that transparent_c[0,1,2] are the RGB of the transparent color + uchar *transparent_c = (uchar *)0; // such that transparent_c[0,1,2] are the RGB of the transparent color #ifdef WIN32 color_count = 0; used_colors = (uchar *)malloc(abs(ncolors)*3*sizeof(uchar)); @@ -335,7 +335,10 @@ int fl_draw_pixmap(const char*const* cdata, int x, int y, Fl_Color bg) { } d.data = data; #ifdef WIN32 - make_unused_color(transparent_c[0], transparent_c[1], transparent_c[2]); + if(transparent_c){ + // only make a transparent color if one is defined + make_unused_color(transparent_c[0], transparent_c[1], transparent_c[2]); + } #endif #ifndef __APPLE_QUARTZ__ -- cgit v1.2.3