mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 21:31:04 +00:00
Bug 751668. Avoid incorrectly using EXTEND_NONE. r=joe
It seems like we sometimes end up using EXTEND_NONE unintentionally, this is likely caused by different rounding between cairo and pixman. Pixman already does a similar reduction to EXTEND_NONE so there's not point in duplicating it here. --HG-- extra : rebase_source : 5649a2583a8a01084567bfb06cb3c788437210f5
This commit is contained in:
parent
1f23b935c5
commit
85c4b8f292
@ -178,6 +178,8 @@ expose-snapshot.patch: Make functions to add snapshots public, as well as allow
|
||||
|
||||
fix-build-with-Werror=return-type.patch: Fix builds with -Werror=return-type (bug 737909)
|
||||
|
||||
avoid-extend-none.patch: Avoid incorrectly using EXTEND_NONE (bug 751668)
|
||||
|
||||
==== pixman patches ====
|
||||
|
||||
pixman-android-cpu-detect.patch: Add CPU detection support for Android, where we can't reliably access /proc/self/auxv.
|
||||
|
39
gfx/cairo/avoid-extend-none.patch
Normal file
39
gfx/cairo/avoid-extend-none.patch
Normal file
@ -0,0 +1,39 @@
|
||||
changeset: 93076:25d0c8a38d7d
|
||||
tag: none
|
||||
tag: qbase
|
||||
tag: qtip
|
||||
tag: tip
|
||||
user: Jeff Muizelaar <jmuizelaar@mozilla.com>
|
||||
date: Thu May 03 15:21:52 2012 -0400
|
||||
summary: Bug 751668. Avoid incorrectly using EXTEND_NONE. r=joe
|
||||
|
||||
diff --git a/gfx/cairo/cairo/src/cairo-image-surface.c b/gfx/cairo/cairo/src/cairo-image-surface.c
|
||||
--- a/gfx/cairo/cairo/src/cairo-image-surface.c
|
||||
+++ b/gfx/cairo/cairo/src/cairo-image-surface.c
|
||||
@@ -1390,25 +1390,16 @@ static pixman_image_t *
|
||||
cairo_image_surface_t *source = (cairo_image_surface_t *) pattern->surface;
|
||||
cairo_surface_type_t type;
|
||||
|
||||
if (source->base.backend->type == CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT)
|
||||
source = (cairo_image_surface_t *) ((cairo_surface_snapshot_t *) pattern->surface)->target;
|
||||
|
||||
type = source->base.backend->type;
|
||||
if (type == CAIRO_SURFACE_TYPE_IMAGE) {
|
||||
- if (extend != CAIRO_EXTEND_NONE &&
|
||||
- sample.x >= 0 &&
|
||||
- sample.y >= 0 &&
|
||||
- sample.x + sample.width <= source->width &&
|
||||
- sample.y + sample.height <= source->height)
|
||||
- {
|
||||
- extend = CAIRO_EXTEND_NONE;
|
||||
- }
|
||||
-
|
||||
if (sample.width == 1 && sample.height == 1) {
|
||||
if (sample.x < 0 ||
|
||||
sample.y < 0 ||
|
||||
sample.x >= source->width ||
|
||||
sample.y >= source->height)
|
||||
{
|
||||
if (extend == CAIRO_EXTEND_NONE)
|
||||
return _pixman_transparent_image ();
|
||||
|
@ -1395,15 +1395,6 @@ _pixman_image_for_surface (const cairo_surface_pattern_t *pattern,
|
||||
|
||||
type = source->base.backend->type;
|
||||
if (type == CAIRO_SURFACE_TYPE_IMAGE) {
|
||||
if (extend != CAIRO_EXTEND_NONE &&
|
||||
sample.x >= 0 &&
|
||||
sample.y >= 0 &&
|
||||
sample.x + sample.width <= source->width &&
|
||||
sample.y + sample.height <= source->height)
|
||||
{
|
||||
extend = CAIRO_EXTEND_NONE;
|
||||
}
|
||||
|
||||
if (sample.width == 1 && sample.height == 1) {
|
||||
if (sample.x < 0 ||
|
||||
sample.y < 0 ||
|
||||
|
Loading…
Reference in New Issue
Block a user