From: Uli Schlachter <psychon@znc.in>
Date: Thu, 17 May 2012 10:51:11 +0200
Subject: Bug 722975 - Make system cairo work again
---
gfx/thebes/gfxPlatform.cpp | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp
index de598fe..f9c21a3 100644
a
|
b
|
void SourceBufferDestroy(void *srcSurfUD)
|
507 | 507 | delete static_cast<SourceSurfaceUserData*>(srcSurfUD); |
508 | 508 | } |
509 | 509 | |
510 | | void SourceSnapshotDetached(cairo_surface_t *nullSurf) |
| 510 | void SourceSnapshotDetached(void *nullSurf) |
511 | 511 | { |
512 | | gfxImageSurface* origSurf = |
513 | | static_cast<gfxImageSurface*>(cairo_surface_get_user_data(nullSurf, &kSourceSurface)); |
514 | | |
| 512 | gfxImageSurface *origSurf = static_cast<gfxImageSurface*>(nullSurf); |
515 | 513 | origSurf->SetData(&kSourceSurface, NULL, NULL); |
516 | 514 | } |
517 | 515 | |
… |
… |
gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurfa
|
626 | 624 | |
627 | 625 | } |
628 | 626 | |
629 | | cairo_surface_t *nullSurf = |
630 | | cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA); |
631 | | cairo_surface_set_user_data(nullSurf, |
632 | | &kSourceSurface, |
633 | | imgSurface, |
634 | | NULL); |
635 | | cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached); |
636 | | cairo_surface_destroy(nullSurf); |
| 627 | cairo_surface_set_mime_data(imgSurface->CairoSurface(), "mozilla/magic", |
| 628 | (const unsigned char *) "data", 4, SourceSnapshotDetached, imgSurface.get()); |
637 | 629 | } |
638 | 630 | |
639 | 631 | SourceSurfaceUserData *srcSurfUD = new SourceSurfaceUserData; |