Bug 703463 - Let SourceSurfaceSkia snapshots take ownership of DrawTargetSkia pixel data when it is destroyed. r=jrmuizel

This commit is contained in:
Matt Woodrow 2011-11-18 17:00:38 +13:00
Родитель 823bce8cd1
Коммит 1fe8fa86c4
3 изменённых файлов: 15 добавлений и 2 удалений

Просмотреть файл

@ -171,7 +171,14 @@ DrawTargetSkia::DrawTargetSkia()
DrawTargetSkia::~DrawTargetSkia()
{
MarkChanged();
if (mSnapshots.size()) {
for (std::vector<SourceSurfaceSkia*>::iterator iter = mSnapshots.begin();
iter != mSnapshots.end(); iter++) {
(*iter)->DrawTargetDestroyed();
}
// All snapshots will now have copied data.
mSnapshots.clear();
}
}
TemporaryRef<SourceSurface>

Просмотреть файл

@ -129,6 +129,12 @@ SourceSurfaceSkia::DrawTargetWillChange()
}
}
void
SourceSurfaceSkia::DrawTargetDestroyed()
{
mDrawTarget = NULL;
}
void
SourceSurfaceSkia::MarkIndependent()
{
@ -138,6 +144,5 @@ SourceSurfaceSkia::MarkIndependent()
}
}
}
}

Просмотреть файл

@ -82,6 +82,7 @@ private:
friend class DrawTargetSkia;
void DrawTargetWillChange();
void DrawTargetDestroyed();
void MarkIndependent();
SkBitmap mBitmap;