[cairo-commit] 2 commits - autogen.sh util/cairo-trace
M. Joonas Pihlaja
joonas at kemper.freedesktop.org
Sun Jul 11 14:51:52 PDT 2010
autogen.sh | 3
util/cairo-trace/trace.c | 184 ++++++++++++++++++++++++-----------------------
2 files changed, 96 insertions(+), 91 deletions(-)
New commits:
commit 1e7485f8e5b6fd9b26f06838d8e7a35e073c394b
Author: M Joonas Pihlaja <jpihlaja at cc.helsinki.fi>
Date: Mon Jul 12 00:23:11 2010 +0300
trace: Avoid stdbool.h C99ism.
There is no <stdbool.h> on old Solaris without invoking
c99 mode explicitly.
diff --git a/util/cairo-trace/trace.c b/util/cairo-trace/trace.c
index 971fa43..acdde93 100644
--- a/util/cairo-trace/trace.c
+++ b/util/cairo-trace/trace.c
@@ -29,7 +29,6 @@
#endif
#include <dlfcn.h>
-#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
@@ -51,6 +50,11 @@
# include <cairo-ft.h>
#endif
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
#ifndef CAIRO_TRACE_OUTDIR
#define CAIRO_TRACE_OUTDIR "."
#endif
@@ -157,8 +161,8 @@ struct _object {
Type *type;
unsigned long int token;
int width, height;
- bool foreign;
- bool defined;
+ cairo_bool_t foreign;
+ cairo_bool_t defined;
int operand;
void *data;
void (*destroy)(void *);
@@ -196,10 +200,10 @@ static struct _type_table {
} Types;
static FILE *logfile;
-static bool _flush;
-static bool _error;
-static bool _line_info;
-static bool _mark_dirty;
+static cairo_bool_t _flush;
+static cairo_bool_t _error;
+static cairo_bool_t _line_info;
+static cairo_bool_t _mark_dirty;
static const cairo_user_data_key_t destroy_key;
static pthread_once_t once_control = PTHREAD_ONCE_INIT;
static pthread_key_t counter_key;
@@ -216,7 +220,7 @@ static void _init_trace (void);
#else
static void _enter_trace (void);
static void _exit_trace (void);
-static bool _should_trace (void);
+static cairo_bool_t _should_trace (void);
# define USE_ENTER_EXIT 1
#endif
@@ -418,8 +422,8 @@ _object_create (Type *type, const void *ptr)
int bucket = BUCKET (type->objects, ptr);
obj = malloc (sizeof (Object));
- obj->defined = false;
- obj->foreign = false;
+ obj->defined = FALSE;
+ obj->foreign = FALSE;
obj->operand = -1;
obj->type = type;
obj->addr = ptr;
@@ -460,7 +464,7 @@ _exit_trace (void)
_get_counter ()[0]--;
}
-static bool
+static cairo_bool_t
_should_trace (void)
{
return _get_counter ()[0] <= 1;
@@ -768,28 +772,28 @@ _emit_header (void)
_trace_printf ("%%*** Warning CairoScript is still a new tracing format, and is subject to change.\n");
}
-static bool
+static cairo_bool_t
_init_logfile (void)
{
- static bool initialized;
+ static cairo_bool_t initialized;
const char *filename;
const char *env;
if (initialized)
return logfile != NULL;
- initialized = true;
+ initialized = TRUE;
env = getenv ("CAIRO_TRACE_FLUSH");
if (env != NULL)
_flush = atoi (env);
- _line_info = true;
+ _line_info = TRUE;
env = getenv ("CAIRO_TRACE_LINE_INFO");
if (env != NULL)
_line_info = atoi (env);
- _mark_dirty = true;
+ _mark_dirty = TRUE;
env = getenv ("CAIRO_TRACE_MARK_DIRTY");
if (env != NULL)
_mark_dirty = atoi (env);
@@ -798,13 +802,13 @@ _init_logfile (void)
if (filename != NULL) {
int fd = atoi (filename);
if (fd == -1)
- return false;
+ return FALSE;
logfile = fdopen (fd, "w");
if (logfile == NULL) {
fprintf (stderr, "Failed to open trace file descriptor '%s': %s\n",
filename, strerror (errno));
- return false;
+ return FALSE;
}
setenv ("CAIRO_TRACE_FD", "-1", 1);
@@ -835,7 +839,7 @@ _init_logfile (void)
if (logfile == NULL) {
fprintf (stderr, "Failed to open trace file '%s': %s\n",
filename, strerror (errno));
- return false;
+ return FALSE;
}
fprintf (stderr, "cairo-trace: Recording cairo trace data to %s\n",
@@ -844,25 +848,25 @@ _init_logfile (void)
done:
atexit (_close_trace);
_emit_header ();
- return true;
+ return TRUE;
}
-static bool
+static cairo_bool_t
_write_lock (void)
{
if (_error)
- return false;
+ return FALSE;
if (! _should_trace ())
- return false;
+ return FALSE;
if (! _init_logfile ())
- return false;
+ return FALSE;
#if HAVE_FLOCKFILE && HAVE_FUNLOCKFILE
flockfile (logfile);
#endif
- return true;
+ return TRUE;
}
static void
@@ -942,7 +946,7 @@ _consume_operand (void)
_trace_printf ("dup /%s%ld exch def\n",
obj->type->op_code,
obj->token);
- obj->defined = true;
+ obj->defined = TRUE;
}
obj->operand = -1;
}
@@ -961,16 +965,16 @@ _exch_operands (void)
tmp->operand++;
}
-static bool
+static cairo_bool_t
_pop_operands_to_object (Object *obj)
{
if (obj->operand == -1)
- return false;
+ return FALSE;
if (obj->operand == current_stack_depth - 2) {
_exch_operands ();
_trace_printf ("exch ");
- return true;
+ return TRUE;
}
while (current_stack_depth > obj->operand + 1) {
@@ -983,31 +987,31 @@ _pop_operands_to_object (Object *obj)
_trace_printf ("/%s%ld exch def\n",
c_obj->type->op_code,
c_obj->token);
- c_obj->defined = true;
+ c_obj->defined = TRUE;
} else {
_trace_printf ("pop %% %s%ld\n",
c_obj->type->op_code, c_obj->token);
}
}
- return true;
+ return TRUE;
}
-static bool
+static cairo_bool_t
_pop_operands_to (enum operand_type t, const void *ptr)
{
return _pop_operands_to_object (_get_object (t, ptr));
}
-static bool
+static cairo_bool_t
_is_current_object (Object *obj, int depth)
{
if (current_stack_depth <= depth)
- return false;
+ return FALSE;
return current_object[current_stack_depth-depth-1] == obj;
}
-static bool
+static cairo_bool_t
_is_current (enum operand_type type, const void *ptr, int depth)
{
return _is_current_object (_get_object (type, ptr), depth);
@@ -1110,14 +1114,14 @@ _get_id (enum operand_type op_type, const void *ptr)
_trace_printf ("%% Unknown object of type %s, trace is incomplete.",
_get_type (op_type)->name);
}
- _error = true;
+ _error = TRUE;
return -1;
}
return obj->token;
}
-static bool
+static cairo_bool_t
_has_id (enum operand_type op_type, const void *ptr)
{
return _get_object (op_type, ptr) != NULL;
@@ -1165,7 +1169,7 @@ _emit_font_face_id (cairo_font_face_t *font_face)
}
}
-static bool
+static cairo_bool_t
_has_pattern_id (cairo_pattern_t *pattern)
{
return _has_id (PATTERN, pattern);
@@ -1223,13 +1227,13 @@ _get_scaled_font_id (const cairo_scaled_font_t *font)
return _get_id (SCALED_FONT, font);
}
-static bool
+static cairo_bool_t
_has_scaled_font_id (const cairo_scaled_font_t *font)
{
return _has_id (SCALED_FONT, font);
}
-static bool
+static cairo_bool_t
_has_surface_id (const cairo_surface_t *surface)
{
return _has_id (SURFACE, surface);
@@ -1256,7 +1260,7 @@ _get_surface_id (cairo_surface_t *surface)
return _get_id (SURFACE, surface);
}
-static bool
+static cairo_bool_t
_matrix_is_identity (const cairo_matrix_t *m)
{
return m->xx == 1. && m->yx == 0. &&
@@ -1294,13 +1298,13 @@ _write_base85_data_start (struct _data_stream *stream)
stream->base85_pending = 0;
}
-static bool
+static cairo_bool_t
_expand_four_tuple_to_five (unsigned char four_tuple[4],
unsigned char five_tuple[5])
{
uint32_t value;
int digit, i;
- bool all_zero = true;
+ cairo_bool_t all_zero = TRUE;
value = four_tuple[0] << 24 |
four_tuple[1] << 16 |
@@ -1309,7 +1313,7 @@ _expand_four_tuple_to_five (unsigned char four_tuple[4],
for (i = 0; i < 5; i++) {
digit = value % 85;
if (digit != 0 && all_zero)
- all_zero = false;
+ all_zero = FALSE;
five_tuple[4-i] = digit + 33;
value = value / 85;
}
@@ -1340,9 +1344,9 @@ _write_base85_data (struct _data_stream *stream,
}
static void
-_write_zlib_data (struct _data_stream *stream, bool flush)
+_write_zlib_data (struct _data_stream *stream, cairo_bool_t flush)
{
- bool finished;
+ cairo_bool_t finished;
do {
int ret = deflate (&stream->zlib_stream, flush ? Z_FINISH : Z_NO_FLUSH);
@@ -1354,11 +1358,11 @@ _write_zlib_data (struct _data_stream *stream, bool flush)
stream->zlib_stream.avail_out = BUFFER_SIZE;
}
- finished = true;
+ finished = TRUE;
if (stream->zlib_stream.avail_in != 0)
- finished = false;
+ finished = FALSE;
if (flush && ret != Z_STREAM_END)
- finished = false;
+ finished = FALSE;
} while (! finished);
stream->zlib_stream.next_in = stream->zin_buf;
@@ -1393,14 +1397,14 @@ _write_data (struct _data_stream *stream,
length -= count;
if (stream->zlib_stream.avail_in == BUFFER_SIZE)
- _write_zlib_data (stream, false);
+ _write_zlib_data (stream, FALSE);
}
}
static void
_write_zlib_data_end (struct _data_stream *stream)
{
- _write_zlib_data (stream, true);
+ _write_zlib_data (stream, TRUE);
deflateEnd (&stream->zlib_stream);
}
@@ -1899,7 +1903,7 @@ cairo_create (cairo_surface_t *target)
if (target != NULL && _write_lock ()) {
surface_id = _get_surface_id (target);
if (surface_id != -1) {
- _get_object (SURFACE, target)->foreign = false;
+ _get_object (SURFACE, target)->foreign = FALSE;
/* we presume that we will continue to use the context */
if (_pop_operands_to (SURFACE, target)){
@@ -2089,7 +2093,7 @@ _emit_source_image (cairo_surface_t *surface)
_trace_printf (" set-source-image ");
DLCALL (cairo_surface_destroy, image);
- obj->foreign = false;
+ obj->foreign = FALSE;
}
static void
@@ -2169,14 +2173,14 @@ cairo_set_source (cairo_t *cr, cairo_pattern_t *source)
_emit_line_info ();
if (cr != NULL && source != NULL && _write_lock ()) {
Object *obj = _get_object (PATTERN, source);
- bool need_context_and_pattern = true;
+ cairo_bool_t need_context_and_pattern = TRUE;
if (_is_current (PATTERN, source, 0) &&
_is_current (CONTEXT, cr, 1))
{
if (obj->defined) {
_consume_operand ();
- need_context_and_pattern = false;
+ need_context_and_pattern = FALSE;
}
}
else if (_is_current (PATTERN, source, 1) &&
@@ -2186,7 +2190,7 @@ cairo_set_source (cairo_t *cr, cairo_pattern_t *source)
_trace_printf ("exch ");
_exch_operands ();
_consume_operand ();
- need_context_and_pattern = false;
+ need_context_and_pattern = FALSE;
}
}
@@ -2215,7 +2219,7 @@ cairo_get_source (cairo_t *cr)
if (! _has_pattern_id (ret)) {
_emit_cairo_op (cr, "/source get /p%ld exch def\n",
_create_pattern_id (ret));
- _get_object (PATTERN, ret)->defined = true;
+ _get_object (PATTERN, ret)->defined = TRUE;
}
_exit_trace ();
@@ -2445,7 +2449,7 @@ cairo_get_target (cairo_t *cr)
if (cr != NULL && ! _has_surface_id (ret)) {
_emit_cairo_op (cr, "/target get /s%ld exch def\n", surface_id);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
}
_exit_trace ();
@@ -2465,7 +2469,7 @@ cairo_get_group_target (cairo_t *cr)
if (cr != NULL && ! _has_surface_id (ret)) {
_emit_cairo_op (cr, "/group-target get /s%ld exch def\n", surface_id);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
}
_exit_trace ();
@@ -2620,14 +2624,14 @@ cairo_mask (cairo_t *cr, cairo_pattern_t *pattern)
_emit_line_info ();
if (cr != NULL && pattern != NULL && _write_lock ()) {
Object *obj = _get_object (PATTERN, pattern);
- bool need_context_and_pattern = true;
+ cairo_bool_t need_context_and_pattern = TRUE;
if (_is_current (PATTERN, pattern, 0) &&
_is_current (CONTEXT, cr, 1))
{
if (obj->defined) {
_consume_operand ();
- need_context_and_pattern = false;
+ need_context_and_pattern = FALSE;
}
}
else if (_is_current (PATTERN, pattern, 1) &&
@@ -2637,7 +2641,7 @@ cairo_mask (cairo_t *cr, cairo_pattern_t *pattern)
_trace_printf ("exch ");
_exch_operands ();
_consume_operand ();
- need_context_and_pattern = false;
+ need_context_and_pattern = FALSE;
}
}
@@ -3001,7 +3005,7 @@ cairo_get_scaled_font (cairo_t *cr)
if (cr != NULL && ! _has_scaled_font_id (ret)) {
_emit_cairo_op (cr, "/scaled-font get /sf%ld exch def\n",
_create_scaled_font_id (ret));
- _get_object (SCALED_FONT, ret)->defined = true;
+ _get_object (SCALED_FONT, ret)->defined = TRUE;
}
_exit_trace ();
@@ -3101,7 +3105,7 @@ cairo_scaled_font_create (cairo_font_face_t *font_face,
scaled_font_id);
_push_operand (SCALED_FONT, ret);
- _get_object (SCALED_FONT, ret)->defined = true;
+ _get_object (SCALED_FONT, ret)->defined = TRUE;
}
_write_unlock ();
@@ -3160,10 +3164,10 @@ _emit_glyphs (cairo_scaled_font_t *font,
x = glyphs->x;
y = glyphs->y;
if (n < num_glyphs) { /* need full glyph range */
- bool first;
+ cairo_bool_t first;
_trace_printf ("[%g %g [", x, y);
- first = true;
+ first = TRUE;
while (num_glyphs--) {
if (fabs (glyphs->x - x) > TOLERANCE ||
fabs (glyphs->y - y) > TOLERANCE)
@@ -3171,13 +3175,13 @@ _emit_glyphs (cairo_scaled_font_t *font,
x = glyphs->x;
y = glyphs->y;
_trace_printf ("] %g %g [", x, y);
- first = true;
+ first = TRUE;
}
if (! first)
_trace_printf (" ");
_trace_printf ("%lu", glyphs->index);
- first = false;
+ first = FALSE;
_glyph_advance (font, glyphs, &x, &y);
glyphs++;
@@ -3397,7 +3401,7 @@ cairo_image_surface_create (cairo_format_t format, int width, int height)
width, height, format_str, surface_id);
_get_object (SURFACE, ret)->width = width;
_get_object (SURFACE, ret)->height = height;
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -3442,12 +3446,12 @@ cairo_image_surface_create_for_data (unsigned char *data, cairo_format_t format,
_format_to_string (format),
surface_id);
- _get_object (SURFACE, ret)->foreign = true;
+ _get_object (SURFACE, ret)->foreign = TRUE;
}
_get_object (SURFACE, ret)->width = width;
_get_object (SURFACE, ret)->height = height;
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -3756,7 +3760,7 @@ cairo_pattern_create_rgb (double red, double green, double blue)
if (_write_lock ()) {
_trace_printf ("/p%ld %g %g %g rgb def\n",
pattern_id, red, green, blue);
- _get_object (PATTERN, ret)->defined = true;
+ _get_object (PATTERN, ret)->defined = TRUE;
_write_unlock ();
}
@@ -3779,7 +3783,7 @@ cairo_pattern_create_rgba (double red, double green, double blue, double alpha)
if (_write_lock ()) {
_trace_printf ("/p%ld %g %g %g %g rgba def\n",
pattern_id, red, green, blue, alpha);
- _get_object (PATTERN, ret)->defined = true;
+ _get_object (PATTERN, ret)->defined = TRUE;
_write_unlock ();
}
@@ -4060,7 +4064,7 @@ cairo_ft_font_face_create_for_ft_face (FT_Face face, int load_flags)
return ret;
}
-static bool
+static cairo_bool_t
_ft_read_file (FtFaceData *data, const char *path)
{
char buf[8192];
@@ -4084,7 +4088,7 @@ _ft_read_file (FtFaceData *data, const char *path)
allocated *= 2;
data->data = realloc (data->data, allocated);
}
- } while (true);
+ } while (TRUE);
fclose (file);
}
@@ -4458,7 +4462,7 @@ cairo_image_surface_create_from_png (const char *filename)
_trace_printf (" dup /s%ld exch def\n",
surface_id);
_surface_object_set_size_from_surface (ret);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4484,7 +4488,7 @@ cairo_image_surface_create_from_png_stream (cairo_read_func_t read_func, void *c
_trace_printf (" dup /s%ld exch def\n",
surface_id);
_surface_object_set_size_from_surface (ret);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4532,9 +4536,9 @@ cairo_xlib_surface_create (Display *dpy,
width,
height,
surface_id);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_surface_object_set_size (ret, width, height);
- _get_object (SURFACE, ret)->foreign = true;
+ _get_object (SURFACE, ret)->foreign = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4573,9 +4577,9 @@ cairo_xlib_surface_create_for_bitmap (Display *dpy,
width,
height,
surface_id);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_surface_object_set_size (ret, width, height);
- _get_object (SURFACE, ret)->foreign = true;
+ _get_object (SURFACE, ret)->foreign = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4618,9 +4622,9 @@ cairo_xlib_surface_create_with_xrender_format (Display *dpy,
height,
format->depth,
surface_id);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_surface_object_set_size (ret, width, height);
- _get_object (SURFACE, ret)->foreign = true;
+ _get_object (SURFACE, ret)->foreign = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4659,7 +4663,7 @@ cairo_script_surface_create (cairo_device_t *device,
width, height,
surface_id);
_surface_object_set_size (ret, width, height);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4686,7 +4690,7 @@ cairo_script_surface_create_for_target (cairo_device_t *device,
" /type /script set\n"
" surface dup /s%ld exch def\n",
surface_id);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4723,7 +4727,7 @@ _cairo_test_fallback_surface_create (cairo_content_t content,
width, height,
surface_id);
_surface_object_set_size (ret, width, height);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4782,7 +4786,7 @@ _cairo_test_null_surface_create (cairo_content_t content)
" surface dup /s%ld exch def\n",
_content_to_string (content),
surface_id);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4825,7 +4829,7 @@ cairo_recording_surface_create (cairo_content_t content,
_content_to_string (content),
surface_id);
}
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4861,7 +4865,7 @@ cairo_vg_surface_create (cairo_vg_context_t *context,
width, height,
surface_id);
_surface_object_set_size (ret, width, height);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
@@ -4900,7 +4904,7 @@ cairo_vg_surface_create_for_image (cairo_vg_context_t *context,
width, height,
surface_id);
_surface_object_set_size (ret, width, height);
- _get_object (SURFACE, ret)->defined = true;
+ _get_object (SURFACE, ret)->defined = TRUE;
_push_operand (SURFACE, ret);
_write_unlock ();
}
commit 97529a3713d899468fb3ca7a1c3f75a09bd1b215
Author: M Joonas Pihlaja <jpihlaja at cc.helsinki.fi>
Date: Sun Jul 11 23:54:21 2010 +0300
build: Avoid shifting shell parameters that aren't there.
The shift primitive of the Solaris 9 Bourne shell doesn't like
it if we try to shift more formal arguments than are there.
This causes the compare_versions function in autogen.sh to croak when
the actual and compared versions differ in the number of
components.
diff --git a/autogen.sh b/autogen.sh
index 3edbe81..10c2832 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -72,7 +72,8 @@ compare_versions() {
IFS="${IFS= }"; ch_save_IFS="$IFS"; IFS="."
set $ch_actual_version
for ch_min in $ch_min_version; do
- ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; shift # remove letter suffixes
+ ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; # remove letter suffixes
+ if [ $# -gt 0 ]; then shift; fi
if [ -z "$ch_min" ]; then break; fi
if [ -z "$ch_cur" ]; then ch_status=1; break; fi
if [ $ch_cur -gt $ch_min ]; then break; fi
More information about the cairo-commit
mailing list