Skip to content

Commit

Permalink
Merge branch '1.8'
Browse files Browse the repository at this point in the history
Conflicts:

	NEWS
	cairo-version.h
  • Loading branch information
Carl Worth committed Nov 14, 2008
2 parents 3b11997 + ab61544 commit 456252a
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 20 deletions.
55 changes: 52 additions & 3 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
Release 1.9.2 (2008-11-08?)
===========================

Release 1.9.2 (2008-11-??)
==========================
API additions:

cairo_surface_set_mime_data()
Expand Down Expand Up @@ -38,7 +37,57 @@ EXTEND_PAD.
Better handling of large scale-factors on image patterns.
Emit /Interpolate for PS,PDF images.

Release 1.8.4 (2008-11-14 Carl Worth <cworth@cworth.org>)
=========================================================
The cairo community is pleased to announce the 1.8.4 release of the
cairo graphics library. This is the second update to cairo's stable
1.8 series and contains a small number of bug fixes, (in particular a
few fixes for build failures of cairo 1.8.2 on various systems). This
is being released just over two weeks after cairo 1.8.2.

We recommend that everyone using cairo upgrade to 1.8.4.

-Carl

Build fixes
-----------
Fix build with older XRender that doesn't define RepeatNone:

Build of xlib backend fails against old XRender (RepeatNone undeclared)
https://bugs.freedesktop.org/show_bug.cgi?id=18385

Fix build with bash version <= 3.0:

doltlibtool broken on linux with bash 3.00.0
https://bugs.freedesktop.org/show_bug.cgi?id=18363

Bug fixes
---------
Avoid triggering a bug in X.org server 6.9 resulting in a hung machine
requiring a reboot:

https://bugs.freedesktop.org/show_bug.cgi?id=15628#c2

Fix display of user fonts as exercised by proposed support for type3
fonts in poppler (unsigned promotion fixes):

Use cairo user-font for Type 3 fonts
http://lists.freedesktop.org/archives/poppler/2008-October/004181.html

Avoid miscomputing size of fallback images required when rendering
with CLEAR, IN, or SOURCE operator to vector surfaces, (PS, PDF, SVG,
etc.).

Be more tolerant of broken fonts when subsetting type1 fonts:

Error handling in cairo_type1_font_subset_get_glyph_names_and_widths
http://lists.cairographics.org/archives/cairo/2008-October/015569.html

Fix cairo_fill_extents, cairo_stroke_extents, cairo_path_extents, to
correctly allow NULL parameters as documented.

Fix potential crash on emitting a type3 glyph after having drawn text
paths from the same font, (for example with cairo_text_path).

Release 1.8.2 (2008-10-29 Carl Worth <cworth@cworth.org>)
=========================================================
Expand Down
63 changes: 46 additions & 17 deletions src/cairo-xlib-display.c
Original file line number Diff line number Diff line change
Expand Up @@ -287,25 +287,54 @@ _cairo_xlib_display_get (Display *dpy,
sizeof (display->cached_xrender_formats));

display->buggy_repeat = FALSE;

/* This buggy_repeat condition is very complicated because there
* are multiple X server code bases (with multiple versioning
* schemes within a code base), and multiple bugs.
*
* The X servers:
*
* 1. The Vendor=="XFree86" code base with release numbers such
* as 4.7.0 (VendorRelease==40700000).
*
* 2. The Vendor=="X.Org" code base (a descendant of the
* XFree86 code base). It originally had things like
* VendorRelease==60700000 for release 6.7.0 but then changed
* its versioning scheme so that, for example,
* VendorRelease==10400000 for the 1.4.0 X server within the
* X.Org 7.3 release.
*
* The bugs:
*
* 1. The original bug that led to the buggy_repeat
* workaround. This was a bug that Owen Taylor investigated,
* understood well, and characterized against carious X
* servers. Confirmed X servers with this bug include:
*
* "XFree86" <= 40500000
* "X.Org" <= 60802000 (only with old numbering >= 60700000)
*
* 2. A separate bug resulting in a crash of the X server when
* using cairo's extend-reflect test case, (which, surprisingly
* enough was not passing RepeatReflect to the X server, but
* instead using RepeatNormal in a workaround). Nobody to date
* has understood the bug well, but it appears to be gone as of
* the X.Org 1.4.0 server. This bug is coincidentally avoided
* by using the same buggy_repeat workaround. Confirmed X
* servers with this bug include:
*
* "X.org" == 60900000 (old versioning scheme)
* "X.org" < 10400000 (new numbering scheme)
*
* For the old-versioning-scheme X servers we don't know
* exactly when second the bug started, but since bug 1 is
* present through 6.8.2 and bug 2 is present in 6.9.0 it seems
* safest to just blacklist all old-versioning-scheme X servers,
* (just using VendorRelase < 70000000), as buggy_repeat=TRUE.
*/
if (strstr (ServerVendor (dpy), "X.Org") != NULL) {
/* When modularized, the X.Org server VendorRelease was
* bogusly reset to a very small number, without any change in
* the ServerVendor string. We avoid considering the new
* servers with the small number as buggy by restricting the
* test to known bad releases. But there could be a problem
* again in the future if X.Org server versions ever climb
* back up to 6.7 or 6.8. */
if (VendorRelease (dpy) >= 60700000 && VendorRelease (dpy) <= 60802000)
if (VendorRelease (dpy) >= 60700000 && VendorRelease (dpy) < 70000000)
display->buggy_repeat = TRUE;

/* But even the new modular server has bugs, (bad enough to
* crash the X server), that it so happens we can avoid with
* the exact same buggy_repeat workaround. We've verified that
* this bug exists as least as late as version 1.3.0.0, (which
* is in Fedora 8), and is gone again in version 1.4.99.901
* (from a Fedora 9 Beta). Versions between those are still
* unknown, but until we learn more, we'll assume that any 1.3
* version is buggy. */
if (VendorRelease (dpy) < 10400000)
display->buggy_repeat = TRUE;
} else if (strstr (ServerVendor (dpy), "XFree86") != NULL) {
Expand Down

0 comments on commit 456252a

Please sign in to comment.