--- a/gfx/thebes/gfxPlatform.cpp 2013-05-22 17:28:19.000000000 -0700 +++ b/gfx/thebes/gfxPlatform.cpp 2013-05-23 21:20:16.000000000 -0700 @@ -535,6 +535,7 @@ void SourceBufferDestroy(void *srcSurfUD delete static_cast(srcSurfUD); } +#if MOZ_TREE_CAIRO void SourceSnapshotDetached(cairo_surface_t *nullSurf) { gfxImageSurface* origSurf = @@ -542,6 +543,13 @@ void SourceSnapshotDetached(cairo_surfac origSurf->SetData(&kSourceSurface, NULL, NULL); } +#else +void SourceSnapshotDetached(void *nullSurf) +{ + gfxImageSurface* origSurf = static_cast(nullSurf); + origSurf->SetData(&kSourceSurface, NULL, NULL); +} +#endif RefPtr gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface) @@ -654,6 +662,7 @@ gfxPlatform::GetSourceSurfaceForSurface( } +#if MOZ_TREE_CAIRO cairo_surface_t *nullSurf = cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA); cairo_surface_set_user_data(nullSurf, @@ -662,6 +671,9 @@ gfxPlatform::GetSourceSurfaceForSurface( NULL); cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached); cairo_surface_destroy(nullSurf); +#else + cairo_surface_set_mime_data(imgSurface->CairoSurface(), "mozilla/magic", (const unsigned char*) "data", 4, SourceSnapshotDetached, imgSurface.get()); +#endif } SourceSurfaceUserData *srcSurfUD = new SourceSurfaceUserData;