When we created a DC/bitmap pair, delete the DC before the Bitmap so that the Bitmap will be released from the DC and can be destroyed. (Reported by Hans Breuer)

configure.in cairo.pc.in: Only require fontconfig if building FreeType font backend.
Fix output when reporting Win32 font backend.
This commit is contained in:
Owen Taylor 2005-02-24 08:20:14 +00:00
parent b210c00c30
commit 724cf1ce71
5 changed files with 29 additions and 11 deletions

View file

@ -1,3 +1,15 @@
2005-02-24 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_surface.c (_cairo_win32_surface_destroy):
When we created a DC/bitmap pair, delete the DC before
the Bitmap so that the Bitmap will be released from the
DC and can be destroyed. (Reported by Hans Breuer)
* configure.in cairo.pc.in: Only require fontconfig
if building FreeType font backend.
* configure.in: Fix output when reporting Win32 font backend.
2005-02-24 Carl Worth <cworth@cworth.org>
* TODO: Remove many TODO items that have now been absorbed by the

View file

@ -7,6 +7,6 @@ Name: cairo
Description: Multi-platform 2D graphics library
Version: @VERSION@
Requires: fontconfig libpixman @XRENDER_REQUIRES@ @PNG_REQUIRES@ @GLITZ_REQUIRES@
Requires: @FREETYPE_REQUIRES@ libpixman @XRENDER_REQUIRES@ @PNG_REQUIRES@ @GLITZ_REQUIRES@
Libs: @FREETYPE_LIBS@ -L${libdir} -lcairo
Cflags: @FREETYPE_CFLAGS@ -I${includedir}/cairo

View file

@ -323,9 +323,11 @@ if test "x$use_freetype" = "xyes"; then
AC_MSG_RESULT($FREETYPE_VERSION - OK)
FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
FREETYPE_REQUIRES=fontconfig
AC_SUBST(FREETYPE_CFLAGS)
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(FREETYPE_REQUIRES)
fi
CAIRO_CFLAGS="$CAIRO_CFLAGS $FREETYPE_CFLAGS"
@ -438,7 +440,7 @@ echo " glitz: $use_glitz"
echo ""
echo "and the following font backends:"
echo " FreeType: $use_freetype"
echo " Win32: false"
echo " Win32: $use_win32"
echo " ATSUI: $use_atsui"
echo ""

View file

@ -240,12 +240,12 @@ _create_dc_and_bitmap (HDC original_dc,
if (bitmap_info && num_palette > 2)
free (bitmap_info);
if (bitmap)
DeleteObject (bitmap);
if (dc)
DeleteDC (dc);
if (bitmap)
DeleteObject (bitmap);
return status;
}
@ -350,8 +350,10 @@ _cairo_win32_surface_destroy (void *abstract_surface)
if (surface->saved_clip)
DeleteObject (surface->saved_clip);
if (surface->bitmap)
if (surface->bitmap) {
DeleteDC (surface->dc);
DeleteObject (surface->bitmap);
}
free (surface);
}

View file

@ -240,12 +240,12 @@ _create_dc_and_bitmap (HDC original_dc,
if (bitmap_info && num_palette > 2)
free (bitmap_info);
if (bitmap)
DeleteObject (bitmap);
if (dc)
DeleteDC (dc);
if (bitmap)
DeleteObject (bitmap);
return status;
}
@ -350,8 +350,10 @@ _cairo_win32_surface_destroy (void *abstract_surface)
if (surface->saved_clip)
DeleteObject (surface->saved_clip);
if (surface->bitmap)
if (surface->bitmap) {
DeleteDC (surface->dc);
DeleteObject (surface->bitmap);
}
free (surface);
}