Index: ChangeLog =================================================================== RCS file: /mirrors/freedesktop/cairo/cairo/ChangeLog,v retrieving revision 1.953 diff -u -p -r1.953 ChangeLog --- ChangeLog 23 Aug 2005 07:03:09 -0000 1.953 +++ ChangeLog 23 Aug 2005 07:07:12 -0000 @@ -1,3 +1,16 @@ +2005-08-23 Carl Worth + + * src/cairo-font.c: (cairo_font_face_reference), + (cairo_font_face_destroy), (cairo_scaled_font_reference), + (cairo_scaled_font_destroy): + * src/cairo-pattern.c: (cairo_pattern_reference), + (cairo_pattern_destroy): + * src/cairo-surface.c: (cairo_surface_reference), + (cairo_surface_destroy): + * src/cairo.c: (cairo_reference), (cairo_destroy): + Treat a 0 reference count identically to a -1 reference count, + (ie. do nothing). + 2005-08-22 Carl Worth * src/cairo.c (cairo_create): Remove discussion of the BAD_NESTING Index: src/cairo-font.c =================================================================== RCS file: /mirrors/freedesktop/cairo/cairo/src/cairo-font.c,v retrieving revision 1.73 diff -u -p -r1.73 cairo-font.c --- src/cairo-font.c 23 Aug 2005 03:43:23 -0000 1.73 +++ src/cairo-font.c 23 Aug 2005 07:05:39 -0000 @@ -82,7 +82,7 @@ cairo_font_face_reference (cairo_font_fa if (font_face == NULL) return NULL; - if (font_face->ref_count == (unsigned int)-1) + if (font_face->ref_count <= 0) return font_face; font_face->ref_count++; @@ -104,7 +104,7 @@ cairo_font_face_destroy (cairo_font_face if (font_face == NULL) return; - if (font_face->ref_count == (unsigned int)-1) + if (font_face->ref_count <= 0) return; if (--(font_face->ref_count) > 0) @@ -757,7 +757,7 @@ cairo_scaled_font_reference (cairo_scale if (scaled_font == NULL) return NULL; - if (scaled_font->ref_count == (unsigned int)-1) + if (scaled_font->ref_count <= 0) return scaled_font; /* If the original reference count is 0, then this font must have @@ -804,7 +804,7 @@ cairo_scaled_font_destroy (cairo_scaled_ if (scaled_font == NULL) return; - if (scaled_font->ref_count == (unsigned int)-1) + if (scaled_font->ref_count <= 0) return; if (--(scaled_font->ref_count) > 0) Index: src/cairo-pattern.c =================================================================== RCS file: /mirrors/freedesktop/cairo/cairo/src/cairo-pattern.c,v retrieving revision 1.61 diff -u -p -r1.61 cairo-pattern.c --- src/cairo-pattern.c 23 Aug 2005 03:43:23 -0000 1.61 +++ src/cairo-pattern.c 23 Aug 2005 07:04:57 -0000 @@ -529,7 +529,7 @@ cairo_pattern_reference (cairo_pattern_t if (pattern == NULL) return NULL; - if (pattern->ref_count == (unsigned int)-1) + if (pattern->ref_count <= 0) return pattern; pattern->ref_count++; @@ -567,7 +567,7 @@ cairo_pattern_destroy (cairo_pattern_t * if (pattern == NULL) return; - if (pattern->ref_count == (unsigned int)-1) + if (pattern->ref_count <= 0) return; pattern->ref_count--; Index: src/cairo-surface.c =================================================================== RCS file: /mirrors/freedesktop/cairo/cairo/src/cairo-surface.c,v retrieving revision 1.97 diff -u -p -r1.97 cairo-surface.c --- src/cairo-surface.c 21 Aug 2005 19:13:17 -0000 1.97 +++ src/cairo-surface.c 23 Aug 2005 07:05:59 -0000 @@ -265,7 +265,7 @@ cairo_surface_reference (cairo_surface_t if (surface == NULL) return NULL; - if (surface->ref_count == (unsigned int)-1) + if (surface->ref_count <= 0) return surface; surface->ref_count++; @@ -287,7 +287,7 @@ cairo_surface_destroy (cairo_surface_t * if (surface == NULL) return; - if (surface->ref_count == (unsigned int)-1) + if (surface->ref_count <= 0) return; surface->ref_count--; Index: src/cairo.c =================================================================== RCS file: /mirrors/freedesktop/cairo/cairo/src/cairo.c,v retrieving revision 1.130 diff -u -p -r1.130 cairo.c --- src/cairo.c 23 Aug 2005 07:03:10 -0000 1.130 +++ src/cairo.c 23 Aug 2005 07:02:29 -0000 @@ -220,7 +220,7 @@ cairo_create (cairo_surface_t *target) cairo_t * cairo_reference (cairo_t *cr) { - if (cr->ref_count == (unsigned int)-1) + if (cr->ref_count <= 0) return cr; cr->ref_count++; @@ -239,7 +239,7 @@ cairo_reference (cairo_t *cr) void cairo_destroy (cairo_t *cr) { - if (cr->ref_count == (unsigned int)-1) + if (cr->ref_count <= 0) return; cr->ref_count--;