]>
Commit | Line | Data |
---|---|---|
169fe701 JR |
1 | diff -r baec1efc87a4 gfx/thebes/gfxPlatform.cpp |
2 | --- a/mozilla/gfx/thebes/gfxPlatform.cpp Sun Mar 04 00:38:41 2012 +0000 | |
3 | +++ b/mozilla/gfx/thebes/gfxPlatform.cpp Wed May 16 17:37:10 2012 +0200 | |
4 | @@ -448,21 +448,19 @@ gfxPlatform::CreateDrawTargetForSurface( | |
5 | ||
6 | cairo_user_data_key_t kSourceSurface; | |
7 | ||
8 | void SourceBufferDestroy(void *srcBuffer) | |
9 | { | |
10 | static_cast<SourceSurface*>(srcBuffer)->Release(); | |
11 | } | |
12 | ||
13 | -void SourceSnapshotDetached(cairo_surface_t *nullSurf) | |
14 | +void SourceSnapshotDetached(void *nullSurf) | |
15 | { | |
16 | - gfxImageSurface* origSurf = | |
17 | - static_cast<gfxImageSurface*>(cairo_surface_get_user_data(nullSurf, &kSourceSurface)); | |
18 | - | |
19 | + gfxImageSurface *origSurf = static_cast<gfxImageSurface*>(nullSurf); | |
20 | origSurf->SetData(&kSourceSurface, NULL, NULL); | |
21 | } | |
22 | ||
23 | RefPtr<SourceSurface> | |
24 | gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface) | |
25 | { | |
26 | void *userData = aSurface->GetData(&kSourceSurface); | |
27 | ||
03be87a5 | 28 | @@ -524,14 +522,8 @@ gfxPlatform::GetSourceSurfaceForSurface( |
169fe701 | 29 | |
03be87a5 | 30 | } |
169fe701 JR |
31 | |
32 | - cairo_surface_t *nullSurf = | |
33 | - cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA); | |
34 | - cairo_surface_set_user_data(nullSurf, | |
03be87a5 JR |
35 | - &kSourceSurface, |
36 | - imgSurface, | |
37 | - NULL); | |
169fe701 JR |
38 | - cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached); |
39 | - cairo_surface_destroy(nullSurf); | |
40 | + cairo_surface_set_mime_data(imgSurface->CairoSurface(), "mozilla/magic", | |
41 | + (const unsigned char *) "data", 4, SourceSnapshotDetached, imgSurface.get()); | |
42 | } | |
43 | ||
44 | srcBuffer->AddRef(); |