As a security precaution, we have turned on the setting "Require API key authentication for API requests" for everyone. If this has broken something, please contact
Last Comment Bug 700179 - [Skia] Crash in GetSourceSurfaceForSurface on windows
: [Skia] Crash in GetSourceSurfaceForSurface on windows
: crash
Product: Core
Classification: Components
Component: Graphics (show other bugs)
: unspecified
: x86 Mac OS X
: -- critical (vote)
: mozilla11
Assigned To: Matt Woodrow (:mattwoodrow)
: Milan Sreckovic [:milan]
Depends on: 699258
  Show dependency treegraph
Reported: 2011-11-06 14:38 PST by Matt Woodrow (:mattwoodrow)
Modified: 2012-02-01 13:59 PST (History)
2 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

Add GetSize() support for the windows surfaces (6.79 KB, patch)
2011-11-06 16:34 PST, Matt Woodrow (:mattwoodrow)
bas: review+
Details | Diff | Splinter Review

Description User image Matt Woodrow (:mattwoodrow) 2011-11-06 14:38:51 PST
Stack is:

 0  xul.dll!gfxPlatform::GetSourceSurfaceForSurface(mozilla::gfx::DrawTarget *,gfxASurface *) [gfxPlatform.cpp:8c1234d5877e : 506 + 0x0]
    eip = 0x017b994f   esp = 0x0012c0a4   ebp = 0x0012c0d8   ebx = 0x0655d400
    esi = 0x00000000   edi = 0x0d2fbfa0   eax = 0x00000000   ecx = 0x10454eb0
    edx = 0x00ab0040   efl = 0x00210246
    Found by: given as instruction pointer in context
 1  xul.dll!nsCanvasRenderingContext2DAzure::DrawImage(nsIDOMElement *,float,float,float,float,float,float,float,float,unsigned char) [nsCanvasRenderingContext2DAzure.cpp:8c1234d5877e : 3664 + 0x14]
    eip = 0x01251b21   esp = 0x0012c0e0   ebp = 0x0012c168
    Found by: call frame info
 2  xul.dll!nsIDOMCanvasRenderingContext2D_DrawImage [dom_quickstubs.cpp:8c1234d5877e : 2772 + 0x62]
    eip = 0x0150565c   esp = 0x0012c1bc   ebp = 0x0012c26c   ebx = 0x06479040
    Found by: call frame info
Comment 1 User image Matt Woodrow (:mattwoodrow) 2011-11-06 16:34:44 PST
Created attachment 572358 [details] [diff] [review]
Add GetSize() support for the windows surfaces

I believe this is because the GetSize() call here is returning { -1, -1}.

It would be interesting to know why GetAsImageSurface is failing for these surfaces though. I don't know enough about the windows cairo backend to tell from looking at the source.
Comment 2 User image Marco Castelluccio [:marco] 2011-11-07 13:09:31 PST
You were right, the path of the crash is the if (!imgSurface) {, gfx\thebes\gfxPlatform.cpp, line 474
Comment 3 User image Matt Woodrow (:mattwoodrow) 2011-11-17 20:09:48 PST
Comment 4 User image Ed Morley [:emorley] 2011-11-18 02:56:17 PST

Note You need to log in before you can comment on or make changes to this bug.