Bug 2037700: Use MakeRefPtr and MakeAndAddRef instead of 'new' to allocate gfxDrawable instances. r=media-playback-reviewers,layout-reviewers,emilio,padenot

I'm using MakeRefPtr nearly everywhere, except when the old code was
immediately returning foo.forget() - in those spots, I'm using MakeAndAddRef
for brevity (since that function does the forget() internally).

Differential Revision: https://phabricator.services.mozilla.com/D299013
This commit is contained in:
Daniel Holbert
2026-05-11 19:15:07 +00:00
committed by dholbert@mozilla.com
parent 26ad6d0139
commit edd61684e6
8 changed files with 12 additions and 20 deletions
+1 -2
View File
@@ -9632,8 +9632,7 @@ already_AddRefed<imgIContainer> nsContentUtils::IPCImageToImage(
return nullptr;
}
RefPtr<gfxDrawable> drawable =
new gfxSurfaceDrawable(surface, surface->GetSize());
auto drawable = MakeRefPtr<gfxSurfaceDrawable>(surface, surface->GetSize());
nsCOMPtr<imgIContainer> imageContainer =
image::ImageOps::CreateFromDrawable(drawable);
return imageContainer.forget();
+1 -2
View File
@@ -105,8 +105,7 @@ inline nsresult GetEncodedImageBuffer(gfx::DataSourceSurface* aSurface,
return NS_ERROR_FAILURE;
}
RefPtr<gfxDrawable> drawable =
new gfxSurfaceDrawable(aSurface, aSurface->GetSize());
auto drawable = MakeRefPtr<gfxSurfaceDrawable>(aSurface, aSurface->GetSize());
nsCOMPtr<imgIContainer> image = image::ImageOps::CreateFromDrawable(drawable);
nsCOMPtr<nsIInputStream> inputStream;
+1 -3
View File
@@ -112,9 +112,7 @@ already_AddRefed<gfxSurfaceDrawable> gfxCallbackDrawable::MakeSurfaceDrawable(
RefPtr<SourceSurface> surface = dt->Snapshot();
if (surface) {
RefPtr<gfxSurfaceDrawable> drawable =
new gfxSurfaceDrawable(surface, mSize);
return drawable.forget();
return MakeAndAddRef<gfxSurfaceDrawable>(surface, mSize);
}
return nullptr;
}
+1 -2
View File
@@ -356,8 +356,7 @@ ClippedImage::Draw(gfxContext* aContext, const nsIntSize& aSize,
}
// Create a drawable from that surface.
RefPtr<gfxSurfaceDrawable> drawable =
new gfxSurfaceDrawable(surface, aSize);
auto drawable = MakeRefPtr<gfxSurfaceDrawable>(surface, aSize);
// Draw.
gfxUtils::DrawPixelSnapped(aContext, drawable, SizeDouble(aSize), aRegion,
+1 -1
View File
@@ -88,7 +88,7 @@ already_AddRefed<SourceSurface> OrientedImage::OrientSurface(
}
// Create our drawable.
RefPtr<gfxDrawable> drawable = new gfxSurfaceDrawable(aSurface, originalSize);
auto drawable = MakeRefPtr<gfxSurfaceDrawable>(aSurface, originalSize);
// Determine an appropriate format for the surface.
gfx::SurfaceFormat surfaceFormat = IsOpaque(aSurface->GetFormat())
+2 -4
View File
@@ -956,8 +956,7 @@ VectorImage::Draw(gfxContext* aContext, const nsIntSize& aSize,
std::tie(sourceSurface, params.size) =
LookupCachedSurface(aSize, params.svgContext, aFlags);
if (sourceSurface) {
RefPtr<gfxDrawable> drawable =
new gfxSurfaceDrawable(sourceSurface, params.size);
auto drawable = MakeRefPtr<gfxSurfaceDrawable>(sourceSurface, params.size);
Show(drawable, params);
return ImgDrawResult::SUCCESS;
}
@@ -980,8 +979,7 @@ VectorImage::Draw(gfxContext* aContext, const nsIntSize& aSize,
return ImgDrawResult::SUCCESS;
}
RefPtr<gfxDrawable> drawable =
new gfxSurfaceDrawable(sourceSurface, params.size);
auto drawable = MakeRefPtr<gfxSurfaceDrawable>(sourceSurface, params.size);
Show(drawable, params);
SendFrameComplete(didCache, params.flags);
return ImgDrawResult::SUCCESS;
+4 -5
View File
@@ -109,7 +109,7 @@ static already_AddRefed<imgIContainer> GetSymbolicIconImage(nsAtom* aName,
if (NS_WARN_IF(!surface)) {
return nullptr;
}
RefPtr drawable = new gfxSurfaceDrawable(surface, surface->GetSize());
auto drawable = MakeRefPtr<gfxSurfaceDrawable>(surface, surface->GetSize());
nsCOMPtr<imgIContainer> container = ImageOps::CreateFromDrawable(drawable);
MOZ_ASSERT(container);
lookup.Set(SymbolicImageEntry{std::move(key), std::move(container)});
@@ -809,10 +809,9 @@ already_AddRefed<gfxDrawable> nsImageRenderer::DrawableForElement(
}
NS_ASSERTION(mImageElementSurface.GetSourceSurface(),
"Surface should be ready.");
RefPtr<gfxDrawable> drawable =
new gfxSurfaceDrawable(mImageElementSurface.GetSourceSurface().get(),
mImageElementSurface.mSize);
return drawable.forget();
return MakeAndAddRef<gfxSurfaceDrawable>(
mImageElementSurface.GetSourceSurface().get(),
mImageElementSurface.mSize);
}
ImgDrawResult nsImageRenderer::DrawLayer(
@@ -215,7 +215,7 @@ void MediaHardwareKeysEventSourceMacMediaCenter::SetMediaMetadata(
break;
}
RefPtr<gfxDrawable> drawable = new gfxSurfaceDrawable(
auto drawable = MakeRefPtr<gfxSurfaceDrawable>(
imageData.mDataSurface, imageData.mDataSurface->GetSize());
nsCOMPtr<imgIContainer> imageContainer =
image::ImageOps::CreateFromDrawable(drawable);