Closed Bug 947847 Opened 12 years ago Closed 12 years ago

frequent warnings about empty rectangle with nsRegion::Copy(const nsRect&) on --enable-system-cairo

Categories

(Core :: Graphics, defect)

x86_64
FreeBSD
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla29

People

(Reporter: jbeich, Assigned: jrmuizel)

References

Details

(Whiteboard: [not-fixed-in-holly])

Attachments

(6 files)

When building against vanilla cairo-1.10.2 or cairo-1.12.16 firefox shows the following messages to stderr. This doesn't happen with just --enable-system-pixman. $ firefox -P test -no-remote www.mozilla.org *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffffa550, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 0, y1 = 0, x2 = 0, y2 = 0 } *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffff7578, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 480, y1 = 0, x2 = 480, y2 = 960 } *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffff9d08, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 0, y1 = 5640, x2 = 0, y2 = 5640 } *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffff9d08, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 0, y1 = 5640, x2 = 0, y2 = 5640 } *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffff9d08, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 0, y1 = 5640, x2 = 0, y2 = 5640 } *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffff8e48, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 480, y1 = 0, x2 = 480, y2 = 960 } *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffff9d08, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 0, y1 = 5640, x2 = 0, y2 = 5640 } *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffff9d08, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 28362, y1 = 19722, x2 = 28362, y2 = 19722 } *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffff9d08, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 28362, y1 = 19722, x2 = 28362, y2 = 19722 } *** BUG *** In void pixman_region32_reset(region_type_t *, box_type_t *): The expression GOOD_RECT (box) was false Set a breakpoint on '_pixman_log_error' to debug #2 0x00000008047c83b6 in nsRegion::Copy (this=0x7fffffff9d08, aRect=...) at gfx/src/nsRegion.h:260 box = { x1 = 28362, y1 = 19722, x2 = 28362, y2 = 19722 } etc...
Can you get a backtrace from the point when this happens?
Attached file one —
Attaching 5 backtraces in hope you can see the pattern.
Attached file two —
Attached file three —
Attached file four —
Attached file five —
pixman_region32_reset will give an error if the rectangle you pass to it is empty. We can just check before hand if the rect is empty and in that case just call pixman_region32_clear instead of pixman_region32_reset.
Attachment #8344922 - Flags: review?(bgirard)
Attachment #8344922 - Flags: review?(bgirard) → review+
Confirming, with the above patch no BUG messages are printed to stderr. The landing link Jeff forgot is https://hg.mozilla.org/integration/mozilla-inbound/rev/982d8e522f18
Assignee: nobody → jmuizelaar
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
This patch is conflicting when we attempt to merge mozilla-central into holly. Can it be backed out of Holly, or can an alternative patch for Holly be generated?
Flags: needinfo?(jmuizelaar)
(In reply to Mike Conley (:mconley) from comment #10) > This patch is conflicting when we attempt to merge mozilla-central into > holly. > > Can it be backed out of Holly, or can an alternative patch for Holly be > generated? This patch can be dropped completely from Holly
Flags: needinfo?(jmuizelaar)
Whiteboard: [not-fixed-in-holly]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: