[core] put back REF_COUNT_INVALID to be -1, fix finish

Previous commit broke cairo_surface_finish, since it was checking for
ref_count == CAIRO_REF_COUNT_INVALID and bailing.  But, that condition
was reached from destroy, so finish was bailing out early.
This commit is contained in:
Vladimir Vukicevic 2007-02-23 14:24:04 -08:00 committed by Vladimir Vukicevic
parent cf73118522
commit 5a72aac598
6 changed files with 16 additions and 1 deletions

View file

@ -178,6 +178,9 @@ cairo_font_face_get_type (cairo_font_face_t *font_face)
unsigned int
cairo_font_face_get_reference_count (cairo_font_face_t *font_face)
{
if (font_face->ref_count == CAIRO_REF_COUNT_INVALID)
return 0;
return font_face->ref_count;
}

View file

@ -592,6 +592,9 @@ slim_hidden_def (cairo_pattern_destroy);
unsigned int
cairo_pattern_get_reference_count (cairo_pattern_t *pattern)
{
if (pattern->ref_count == CAIRO_REF_COUNT_INVALID)
return 0;
return pattern->ref_count;
}

View file

@ -638,6 +638,9 @@ slim_hidden_def (cairo_scaled_font_destroy);
unsigned int
cairo_scaled_font_get_reference_count (cairo_scaled_font_t *scaled_font)
{
if (scaled_font->ref_count == CAIRO_REF_COUNT_INVALID)
return 0;
return scaled_font->ref_count;
}

View file

@ -405,6 +405,9 @@ slim_hidden_def(cairo_surface_destroy);
unsigned int
cairo_surface_get_reference_count (cairo_surface_t *surface)
{
if (surface->ref_count == CAIRO_REF_COUNT_INVALID)
return 0;
return surface->ref_count;
}

View file

@ -345,6 +345,9 @@ cairo_set_user_data (cairo_t *cr,
unsigned int
cairo_get_reference_count (cairo_t *cr)
{
if (cr->ref_count == CAIRO_REF_COUNT_INVALID)
return 0;
return cr->ref_count;
}

View file

@ -241,7 +241,7 @@ do { \
assert (NOT_REACHED); \
} while (0)
#define CAIRO_REF_COUNT_INVALID (0)
#define CAIRO_REF_COUNT_INVALID ((unsigned int) -1)
#include "cairo-wideint-private.h"