Re: [PATCH] perf: Refactor some common macros to cairo-perf.h

"Bryce W. Harrington" <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
On Thu, Apr 17, 2014 at 08:33:33PM +0000, Bryce W. Harrington wrote:
> These macros are standard in src's cairoint.h and test's cairo-test.h
> internal header files, so for consistency do the same thing with perf's
> cairo-perf.h.

Btw, I verified the code compiled, and ran make perf for a while (tests
a through f).  I think it's a trivial enough patch I'll go ahead and
land it.

Bryce
 
> Signed-off-by: Bryce Harrington <[email protected]>
> ---
>  perf/cairo-perf-chart.c            |    2 --
>  perf/cairo-perf-compare-backends.c |    1 -
>  perf/cairo-perf-trace.c            |    5 ++---
>  perf/cairo-perf.h                  |   12 ++++++++++++
>  perf/micro/cairo-perf-cover.c      |    5 ++---
>  perf/micro/dragon.c                |    8 --------
>  perf/micro/zrusin.c                |    4 +---
>  7 files changed, 17 insertions(+), 20 deletions(-)
> 
> diff --git a/perf/cairo-perf-chart.c b/perf/cairo-perf-chart.c
> index 1faa964..738fe5c 100644
> --- a/perf/cairo-perf-chart.c
> +++ b/perf/cairo-perf-chart.c
> @@ -57,8 +57,6 @@ struct color {
>  #define FONT_SIZE 12
>  #define PAD (4)
>  
> -#define MAX(a,b) ((a) > (b) ? (a) : (b))
> -
>  static double
>  to_factor (double x)
>  {
> diff --git a/perf/cairo-perf-compare-backends.c b/perf/cairo-perf-compare-backends.c
> index 2cbb24c..ff7359e 100644
> --- a/perf/cairo-perf-compare-backends.c
> +++ b/perf/cairo-perf-compare-backends.c
> @@ -149,7 +149,6 @@ test_diff_print (test_diff_t		     *diff,
>      printf("\n");
>  }
>  
> -#define MAX(a,b) ((a) > (b) ? (a) : (b))
>  static void
>  cairo_perf_reports_compare (cairo_perf_report_t 	*reports,
>  			    int 			 num_reports,
> diff --git a/perf/cairo-perf-trace.c b/perf/cairo-perf-trace.c
> index f27f8e4..02e0e29 100644
> --- a/perf/cairo-perf-trace.c
> +++ b/perf/cairo-perf-trace.c
> @@ -199,7 +199,6 @@ scache_equal (const void *A,
>      return a->entry.hash == b->entry.hash;
>  }
>  
> -#define ARRAY_SIZE(A) (sizeof(A)/sizeof(A[0]))
>  static void
>  scache_mark_active (cairo_surface_t *surface)
>  {
> @@ -210,7 +209,7 @@ scache_mark_active (cairo_surface_t *surface)
>  	return;
>  
>      t0 = cairo_surface_reference (surface);
> -    for (n = 0; n < ARRAY_SIZE (surface_holdovers); n++) {
> +    for (n = 0; n < ARRAY_LENGTH (surface_holdovers); n++) {
>  	if (surface_holdovers[n] == surface) {
>  	    surface_holdovers[n] = t0;
>  	    t0 = surface;
> @@ -232,7 +231,7 @@ scache_clear (void)
>      if (surface_cache == NULL)
>  	return;
>  
> -    for (n = 0; n < ARRAY_SIZE (surface_holdovers); n++) {
> +    for (n = 0; n < ARRAY_LENGTH (surface_holdovers); n++) {
>  	cairo_surface_destroy (surface_holdovers[n]);
>  	surface_holdovers[n] = NULL;
>      }
> diff --git a/perf/cairo-perf.h b/perf/cairo-perf.h
> index 4e898ac..b32b0e0 100644
> --- a/perf/cairo-perf.h
> +++ b/perf/cairo-perf.h
> @@ -195,6 +195,18 @@ test_report_cmp_name (const void *a,
>  
>  #define CAIRO_PERF_DECL(func) CAIRO_PERF_RUN_DECL(func); CAIRO_PERF_ENABLED_DECL(func)
>  
> +#ifndef MIN
> +#define MIN(a, b) ((a) < (b) ? (a) : (b))
> +#endif
> +
> +#ifndef MAX
> +#define MAX(a, b) ((a) > (b) ? (a) : (b))
> +#endif
> +
> +#ifndef ARRAY_LENGTH
> +#define ARRAY_LENGTH(__array) ((int) (sizeof (__array) / sizeof (__array[0])))
> +#endif
> +
>  CAIRO_PERF_DECL (fill);
>  CAIRO_PERF_DECL (paint);
>  CAIRO_PERF_DECL (paint_with_alpha);
> diff --git a/perf/micro/cairo-perf-cover.c b/perf/micro/cairo-perf-cover.c
> index 151a2e6..c249902 100644
> --- a/perf/micro/cairo-perf-cover.c
> +++ b/perf/micro/cairo-perf-cover.c
> @@ -290,7 +290,6 @@ set_source_radial_rgba (cairo_t *cr,
>  }
>  
>  typedef void (*set_source_func_t) (cairo_t *cr, int width, int height);
> -#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof((arr)[0]))
>  
>  void
>  cairo_perf_cover_sources_and_operators (cairo_perf_t		*perf,
> @@ -325,10 +324,10 @@ cairo_perf_cover_sources_and_operators (cairo_perf_t		*perf,
>  	{ CAIRO_OPERATOR_SOURCE, "source" }
>      };
>  
> -    for (i = 0; i < ARRAY_SIZE (sources); i++) {
> +    for (i = 0; i < ARRAY_LENGTH (sources); i++) {
>  	(sources[i].set_source) (perf->cr, perf->size, perf->size);
>  
> -	for (j = 0; j < ARRAY_SIZE (operators); j++) {
> +	for (j = 0; j < ARRAY_LENGTH (operators); j++) {
>  	    cairo_set_operator (perf->cr, operators[j].op);
>  
>  	    xasprintf (&expanded_name, "%s_%s_%s",
> diff --git a/perf/micro/dragon.c b/perf/micro/dragon.c
> index e215eac..aa5daf5 100644
> --- a/perf/micro/dragon.c
> +++ b/perf/micro/dragon.c
> @@ -28,14 +28,6 @@
>  
>  #include "cairo-perf.h"
>  
> -#ifndef MIN
> -#define MIN(a,b) (((a) < (b)) ? (a) : (b))
> -#endif
> -
> -#ifndef MAX
> -#define MAX(a,b) (((a) > (b)) ? (a) : (b))
> -#endif
> -
>  static inline int
>  next_pot (int v)
>  {
> diff --git a/perf/micro/zrusin.c b/perf/micro/zrusin.c
> index 7d8b004..3dee74d 100644
> --- a/perf/micro/zrusin.c
> +++ b/perf/micro/zrusin.c
> @@ -33,14 +33,12 @@ typedef struct {
>  
>  #include "zrusin-another.h"
>  
> -#define ARRAY_SIZE(arr) sizeof(arr)/sizeof(arr[0])
> -
>  static void
>  zrusin_another_path (cairo_t *cr)
>  {
>      unsigned int i;
>  
> -    for (i=0; i < ARRAY_SIZE (zrusin_another); i++)
> +    for (i=0; i < ARRAY_LENGTH (zrusin_another); i++)
>  	cairo_line_to (cr, zrusin_another[i].x, zrusin_another[i].y);
>  }
>  
> -- 
> 1.7.9.5
-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.