$OpenBSD: patch-mozilla_gfx_thebes_gfxPlatform_cpp,v 1.10 2013/07/11 16:23:39 landry Exp $
--- mozilla/gfx/thebes/gfxPlatform.cpp.orig	Thu Jun 20 06:35:04 2013
+++ mozilla/gfx/thebes/gfxPlatform.cpp	Sat Jun 22 14:48:38 2013
@@ -543,6 +543,7 @@ void SourceBufferDestroy(void *srcSurfUD)
   delete static_cast<SourceSurfaceUserData*>(srcSurfUD);
 }
 
+#ifdef MOZ_TREE_CAIRO
 void SourceSnapshotDetached(cairo_surface_t *nullSurf)
 {
   gfxImageSurface* origSurf =
@@ -550,6 +551,13 @@ void SourceSnapshotDetached(cairo_surface_t *nullSurf)
 
   origSurf->SetData(&kSourceSurface, NULL, NULL);
 }
+#else
+void SourceSnapshotDetached(void *nullSurf)
+{
+  gfxImageSurface* origSurf = static_cast<gfxImageSurface*>(nullSurf);
+  origSurf->SetData(&kSourceSurface, NULL, NULL);
+}
+#endif
 
 RefPtr<SourceSurface>
 gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface)
@@ -662,6 +670,7 @@ gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aT
 
     }
 
+    #ifdef MOZ_TREE_CAIRO
     cairo_surface_t *nullSurf =
 	cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
     cairo_surface_set_user_data(nullSurf,
@@ -670,6 +679,9 @@ gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aT
                                 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;
