Bug 1453090. Don't PopClip on a different DT. r=mstange
Make sure we PushClip on the same DT as we PopClip
--- a/gfx/webrender_bindings/Moz2DImageRenderer.cpp
+++ b/gfx/webrender_bindings/Moz2DImageRenderer.cpp
@@ -236,33 +236,33 @@ static bool Moz2DRenderCallback(const Ra
aFormat,
uninitialized
);
if (!dt) {
return false;
}
- if (aDirtyRect) {
- Rect dirty(aDirtyRect->origin.x, aDirtyRect->origin.y, aDirtyRect->size.width, aDirtyRect->size.height);
- dt->PushClipRect(dirty);
- }
-
if (aTileOffset) {
// It's overkill to use a TiledDrawTarget for a single tile
// but it was the easiest way to get the offset handling working
gfx::TileSet tileset;
gfx::Tile tile;
tile.mDrawTarget = dt;
tile.mTileOrigin = gfx::IntPoint(aTileOffset->x * *aTileSize, aTileOffset->y * *aTileSize);
tileset.mTiles = &tile;
tileset.mTileCount = 1;
dt = gfx::Factory::CreateTiledDrawTarget(tileset);
}
+ if (aDirtyRect) {
+ Rect dirty(aDirtyRect->origin.x, aDirtyRect->origin.y, aDirtyRect->size.width, aDirtyRect->size.height);
+ dt->PushClipRect(dirty);
+ }
+
struct Reader {
const uint8_t *buf;
size_t len;
size_t pos;
Reader(const uint8_t *buf, size_t len) : buf(buf), len(len), pos(0) {}
size_t ReadSize() {