From c62c7f1fdfb69f51f8ee83a917a2469df36810a2 Mon Sep 17 00:00:00 2001 From: tsauerbeck Date: Sun, 2 May 2004 08:41:11 +0000 Subject: [PATCH] Initialize image data to zero if we're running under Valgrind's control. This means the suppression file is no longer needed. SVN revision: 10000 --- legacy/evas/configure.in | 12 +++++++++++ legacy/evas/evas.supp | 12 ----------- .../evas/src/lib/engines/common/Makefile.am | 4 ++-- .../src/lib/engines/common/evas_image_main.c | 20 ++++++++++++++++++- 4 files changed, 33 insertions(+), 15 deletions(-) delete mode 100644 legacy/evas/evas.supp diff --git a/legacy/evas/configure.in b/legacy/evas/configure.in index eb41aead4a..4eb357a19d 100644 --- a/legacy/evas/configure.in +++ b/legacy/evas/configure.in @@ -1373,9 +1373,21 @@ AC_ARG_ENABLE(convert-32-rgb-rot-90, ] ) +# Setting have_valgrind to "no" seems pointless, but we just need to +# put something in as the 4th parameter, so configure doesn't abort +# when valgrind.pc isn't found. +PKG_CHECK_MODULES(VALGRIND, valgrind, have_valgrind=yes, have_valgrind=no) + +if test x$have_valgrind = "xyes"; then + AC_DEFINE(HAVE_VALGRIND, 1, [Valgrind support]) +fi + ##################################################################### ## Fill in flags +AC_SUBST(VALGRIND_CFLAGS) +AC_SUBST(VALGRIND_LIBS) + AC_SUBST(freetype_cflags) AC_SUBST(freetype_libs) diff --git a/legacy/evas/evas.supp b/legacy/evas/evas.supp deleted file mode 100644 index 05da5a2acb..0000000000 --- a/legacy/evas/evas.supp +++ /dev/null @@ -1,12 +0,0 @@ -# $Id$ -# valgrind suppression file for Evas. -# -{ - It's safe to ignore this one - Memcheck:Param - writev(vector[...]) - obj:/lib/libc-2.3.2.so - obj:/usr/X11R6/lib/libX11.so.6.2 - fun:_X11TransWritev - fun:_XSend -} diff --git a/legacy/evas/src/lib/engines/common/Makefile.am b/legacy/evas/src/lib/engines/common/Makefile.am index bd91da5e91..4d6f46a3d7 100644 --- a/legacy/evas/src/lib/engines/common/Makefile.am +++ b/legacy/evas/src/lib/engines/common/Makefile.am @@ -5,8 +5,8 @@ AUTOMAKE_OPTIONS = 1.4 foreign # A list of all the files in the current directory which can be regenerated MAINTAINERCLEANFILES = Makefile.in -LDFLAGS = -INCLUDES = @freetype_cflags@ \ +LDFLAGS = @VALGRIND_LIBS@ +INCLUDES = @freetype_cflags@ @VALGRIND_CFLAGS@ \ -I. \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/lib/include diff --git a/legacy/evas/src/lib/engines/common/evas_image_main.c b/legacy/evas/src/lib/engines/common/evas_image_main.c index ad47bd94d0..c69b6a39e9 100644 --- a/legacy/evas/src/lib/engines/common/evas_image_main.c +++ b/legacy/evas/src/lib/engines/common/evas_image_main.c @@ -5,6 +5,10 @@ #include #endif +#ifdef HAVE_VALGRIND +#include +#endif + static Evas_Hash * images = NULL; static Evas_Object_List * cache = NULL; static int cache_size = 0; @@ -91,7 +95,21 @@ evas_common_image_surface_free(RGBA_Surface *is) void evas_common_image_surface_alloc(RGBA_Surface *is) { - is->data = malloc(is->w * is->h * sizeof(DATA32)); + size_t siz = is->w * is->h * sizeof(DATA32); + static int on_valgrind; + + /* init data when we're under Valgrind's control */ +#ifdef HAVE_VALGRIND + static int init; + + if (!init) + { + on_valgrind = RUNNING_ON_VALGRIND; + init = 1; + } +#endif + + is->data = on_valgrind ? calloc(1, siz) : malloc(siz); } void