Closed Bug 699563 Opened 11 years ago Closed 7 years ago

"ABORT: Failed to create pixman images?"

Categories

(Core :: Graphics, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: jruderman, Assigned: mattwoodrow)

References

Details

(Keywords: assertion, testcase)

Attachments

(3 files)

Attached file testcase
###!!! ABORT: Failed to create pixman images?: 'src && dest', file gfx/layers/basic/BasicLayers.cpp, line 1701
Attached file stack trace
This is caused by a crazy transform giving us an infinite sized transformed rect.

Our call to surfaceRect.Intersect(transformedRect) isn't handling the infinite values correctly, so instead of being clamped to the surface rect we end up attempting to allocate an infinite sized destination surface.

roc: Do you have any suggestions on how you'd prefer to handle this?

My two ideas so far were to make BaseRect::Intersect correctly handle infinite float/double values or add a BaseRect::IsValid method which looks for inf/nan and we can skip the intersection.
Assignee: nobody → matt.woodrow
That latter sounds better. The former is unnecessary overhead in most cases.
This one crashes during a drawWindow call.  If you use a blank profile, Firefox's thumbnail service is likely to call drawWindow.
No longer asserts on trunk. The second testcase will require some help to land (to remove the fuzzer dependency), however.
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: in-testsuite+
Resolution: --- → WORKSFORME
removing the b2g 2.5 flag since this commit has been reverted due to an incorrect merge, sorry for the confusion
You need to log in before you can comment on or make changes to this bug.