diff options
author | 2022-08-01 16:18:03 -0700 | |
---|---|---|
committer | 2022-08-01 16:23:25 -0700 | |
commit | d11bade4e5d7b7818090d775f0bb4dea9d719206 (patch) | |
tree | fc49aea275d69b819644224dea38d39a1802d1a0 | |
parent | c525efb611803c572e2f1154655e1e8fcdfeef30 (diff) |
SF: build with ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION
Change-Id: I347b2cf57f1df426d11d07a84075419597d4a442
Test: presubmit
98 files changed, 542 insertions, 474 deletions
diff --git a/libs/gui/include/gui/BLASTBufferQueue.h b/libs/gui/include/gui/BLASTBufferQueue.h index 2ed526096d..95df811927 100644 --- a/libs/gui/include/gui/BLASTBufferQueue.h +++ b/libs/gui/include/gui/BLASTBufferQueue.h @@ -233,7 +233,7 @@ private: // Queues up transactions using this token in SurfaceFlinger. This prevents queued up // transactions from other parts of the client from blocking this transaction. - const sp<IBinder> mApplyToken GUARDED_BY(mMutex) = new BBinder(); + const sp<IBinder> mApplyToken GUARDED_BY(mMutex) = sp<BBinder>::make(); // Guards access to mDequeueTimestamps since we cannot hold to mMutex in onFrameDequeued or // we will deadlock. diff --git a/libs/gui/include/gui/LayerState.h b/libs/gui/include/gui/LayerState.h index f3701e8522..759fcc6c53 100644 --- a/libs/gui/include/gui/LayerState.h +++ b/libs/gui/include/gui/LayerState.h @@ -250,7 +250,7 @@ struct layer_state_t { mat4 colorTransform; std::vector<BlurRegion> blurRegions; - sp<gui::WindowInfoHandle> windowInfoHandle = new gui::WindowInfoHandle(); + sp<gui::WindowInfoHandle> windowInfoHandle = sp<gui::WindowInfoHandle>::make(); LayerMetadata metadata; diff --git a/libs/renderengine/benchmark/RenderEngineBench.cpp b/libs/renderengine/benchmark/RenderEngineBench.cpp index ead97cf5df..7bcfff5348 100644 --- a/libs/renderengine/benchmark/RenderEngineBench.cpp +++ b/libs/renderengine/benchmark/RenderEngineBench.cpp @@ -117,11 +117,12 @@ static std::shared_ptr<ExternalTexture> allocateBuffer(RenderEngine& re, uint32_ uint64_t extraUsageFlags = 0, std::string name = "output") { return std::make_shared< - impl::ExternalTexture>(new GraphicBuffer(width, height, HAL_PIXEL_FORMAT_RGBA_8888, 1, - GRALLOC_USAGE_HW_RENDER | - GRALLOC_USAGE_HW_TEXTURE | - extraUsageFlags, - std::move(name)), + impl::ExternalTexture>(sp<GraphicBuffer>::make(width, height, + HAL_PIXEL_FORMAT_RGBA_8888, 1u, + GRALLOC_USAGE_HW_RENDER | + GRALLOC_USAGE_HW_TEXTURE | + extraUsageFlags, + std::move(name)), re, impl::ExternalTexture::Usage::READABLE | impl::ExternalTexture::Usage::WRITEABLE); diff --git a/libs/renderengine/gl/GLESRenderEngine.cpp b/libs/renderengine/gl/GLESRenderEngine.cpp index 6dc01b916e..9a5ff54ac7 100644 --- a/libs/renderengine/gl/GLESRenderEngine.cpp +++ b/libs/renderengine/gl/GLESRenderEngine.cpp @@ -454,8 +454,9 @@ GLESRenderEngine::GLESRenderEngine(const RenderEngineCreationArgs& args, EGLDisp mImageManager->initThread(); mDrawingBuffer = createFramebuffer(); sp<GraphicBuffer> buf = - new GraphicBuffer(1, 1, PIXEL_FORMAT_RGBA_8888, 1, - GRALLOC_USAGE_HW_RENDER | GRALLOC_USAGE_HW_TEXTURE, "placeholder"); + sp<GraphicBuffer>::make(1, 1, PIXEL_FORMAT_RGBA_8888, 1, + GRALLOC_USAGE_HW_RENDER | GRALLOC_USAGE_HW_TEXTURE, + "placeholder"); const status_t err = buf->initCheck(); if (err != OK) { diff --git a/libs/renderengine/skia/Cache.cpp b/libs/renderengine/skia/Cache.cpp index c39f0a97fd..f6b91839a3 100644 --- a/libs/renderengine/skia/Cache.cpp +++ b/libs/renderengine/skia/Cache.cpp @@ -364,8 +364,8 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine) { const int64_t usage = GRALLOC_USAGE_HW_RENDER | GRALLOC_USAGE_HW_TEXTURE; sp<GraphicBuffer> dstBuffer = - new GraphicBuffer(displayRect.width(), displayRect.height(), PIXEL_FORMAT_RGBA_8888, - 1, usage, "primeShaderCache_dst"); + sp<GraphicBuffer>::make(displayRect.width(), displayRect.height(), + PIXEL_FORMAT_RGBA_8888, 1, usage, "primeShaderCache_dst"); const auto dstTexture = std::make_shared<impl::ExternalTexture>(dstBuffer, *renderengine, @@ -375,8 +375,8 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine) { // something, but the details are not important. Make use of the shadow layer drawing step // to populate it. sp<GraphicBuffer> srcBuffer = - new GraphicBuffer(displayRect.width(), displayRect.height(), PIXEL_FORMAT_RGBA_8888, - 1, usage, "drawImageLayer_src"); + sp<GraphicBuffer>::make(displayRect.width(), displayRect.height(), + PIXEL_FORMAT_RGBA_8888, 1, usage, "drawImageLayer_src"); const auto srcTexture = std::make_shared< impl::ExternalTexture>(srcBuffer, *renderengine, @@ -398,8 +398,9 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine) { // GRALLOC_USAGE_HW_TEXTURE should be the same as AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE. const int64_t usageExternal = GRALLOC_USAGE_HW_TEXTURE; sp<GraphicBuffer> externalBuffer = - new GraphicBuffer(displayRect.width(), displayRect.height(), PIXEL_FORMAT_RGBA_8888, - 1, usageExternal, "primeShaderCache_external"); + sp<GraphicBuffer>::make(displayRect.width(), displayRect.height(), + PIXEL_FORMAT_RGBA_8888, 1, usageExternal, + "primeShaderCache_external"); const auto externalTexture = std::make_shared<impl::ExternalTexture>(externalBuffer, *renderengine, impl::ExternalTexture::Usage::READABLE); @@ -409,8 +410,9 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine) { // Another external texture with a different pixel format triggers useIsOpaqueWorkaround. // It doesn't have to be f16, but it can't be the usual 8888. sp<GraphicBuffer> f16ExternalBuffer = - new GraphicBuffer(displayRect.width(), displayRect.height(), PIXEL_FORMAT_RGBA_FP16, - 1, usageExternal, "primeShaderCache_external_f16"); + sp<GraphicBuffer>::make(displayRect.width(), displayRect.height(), + PIXEL_FORMAT_RGBA_FP16, 1, usageExternal, + "primeShaderCache_external_f16"); // The F16 texture may not be usable on all devices, so check first that it was created. status_t error = f16ExternalBuffer->initCheck(); if (!error) { diff --git a/libs/renderengine/tests/RenderEngineTest.cpp b/libs/renderengine/tests/RenderEngineTest.cpp index f2897308af..d23063c84d 100644 --- a/libs/renderengine/tests/RenderEngineTest.cpp +++ b/libs/renderengine/tests/RenderEngineTest.cpp @@ -232,14 +232,14 @@ public: std::shared_ptr<renderengine::ExternalTexture> allocateDefaultBuffer() { return std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(DEFAULT_DISPLAY_WIDTH, - DEFAULT_DISPLAY_HEIGHT, - HAL_PIXEL_FORMAT_RGBA_8888, 1, - GRALLOC_USAGE_SW_READ_OFTEN | - GRALLOC_USAGE_SW_WRITE_OFTEN | - GRALLOC_USAGE_HW_RENDER | - GRALLOC_USAGE_HW_TEXTURE, - "output"), + ExternalTexture>(sp<GraphicBuffer>:: + make(DEFAULT_DISPLAY_WIDTH, DEFAULT_DISPLAY_HEIGHT, + HAL_PIXEL_FORMAT_RGBA_8888, 1, + GRALLOC_USAGE_SW_READ_OFTEN | + GRALLOC_USAGE_SW_WRITE_OFTEN | + GRALLOC_USAGE_HW_RENDER | + GRALLOC_USAGE_HW_TEXTURE, + "output"), *mRE, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage:: @@ -251,12 +251,12 @@ public: uint32_t height) { return std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(width, height, - HAL_PIXEL_FORMAT_RGBA_8888, 1, - GRALLOC_USAGE_SW_READ_OFTEN | - GRALLOC_USAGE_SW_WRITE_OFTEN | - GRALLOC_USAGE_HW_TEXTURE, - "input"), + ExternalTexture>(sp<GraphicBuffer>:: + make(width, height, HAL_PIXEL_FORMAT_RGBA_8888, 1, + GRALLOC_USAGE_SW_READ_OFTEN | + GRALLOC_USAGE_SW_WRITE_OFTEN | + GRALLOC_USAGE_HW_TEXTURE, + "input"), *mRE, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage:: @@ -285,10 +285,12 @@ public: } std::shared_ptr<renderengine::ExternalTexture> allocateR8Buffer(int width, int height) { - auto buffer = new GraphicBuffer(width, height, android::PIXEL_FORMAT_R_8, 1, - GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN | - GRALLOC_USAGE_HW_TEXTURE, - "r8"); + const auto kUsageFlags = + static_cast<uint64_t>(GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN | + GRALLOC_USAGE_HW_TEXTURE); + auto buffer = + sp<GraphicBuffer>::make(static_cast<uint32_t>(width), static_cast<uint32_t>(height), + android::PIXEL_FORMAT_R_8, 1u, kUsageFlags, "r8"); if (buffer->initCheck() != 0) { // Devices are not required to support R8. return nullptr; @@ -1496,13 +1498,13 @@ void RenderEngineTest::tonemap(ui::Dataspace sourceDataspace, std::function<vec3 auto buf = std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(kGreyLevels, 1, HAL_PIXEL_FORMAT_RGBA_8888, - 1, - GRALLOC_USAGE_SW_READ_OFTEN | - GRALLOC_USAGE_SW_WRITE_OFTEN | - GRALLOC_USAGE_HW_RENDER | - GRALLOC_USAGE_HW_TEXTURE, - "input"), + ExternalTexture>(sp<GraphicBuffer>::make(kGreyLevels, 1, + HAL_PIXEL_FORMAT_RGBA_8888, 1, + GRALLOC_USAGE_SW_READ_OFTEN | + GRALLOC_USAGE_SW_WRITE_OFTEN | + GRALLOC_USAGE_HW_RENDER | + GRALLOC_USAGE_HW_TEXTURE, + "input"), *mRE, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage::WRITEABLE); @@ -1529,13 +1531,13 @@ void RenderEngineTest::tonemap(ui::Dataspace sourceDataspace, std::function<vec3 mBuffer = std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(kGreyLevels, 1, HAL_PIXEL_FORMAT_RGBA_8888, - 1, - GRALLOC_USAGE_SW_READ_OFTEN | - GRALLOC_USAGE_SW_WRITE_OFTEN | - GRALLOC_USAGE_HW_RENDER | - GRALLOC_USAGE_HW_TEXTURE, - "output"), + ExternalTexture>(sp<GraphicBuffer>::make(kGreyLevels, 1, + HAL_PIXEL_FORMAT_RGBA_8888, 1, + GRALLOC_USAGE_SW_READ_OFTEN | + GRALLOC_USAGE_SW_WRITE_OFTEN | + GRALLOC_USAGE_HW_RENDER | + GRALLOC_USAGE_HW_TEXTURE, + "output"), *mRE, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage::WRITEABLE); diff --git a/libs/renderengine/tests/RenderEngineThreadedTest.cpp b/libs/renderengine/tests/RenderEngineThreadedTest.cpp index 96851892b4..909ded3a78 100644 --- a/libs/renderengine/tests/RenderEngineThreadedTest.cpp +++ b/libs/renderengine/tests/RenderEngineThreadedTest.cpp @@ -176,7 +176,7 @@ TEST_F(RenderEngineThreadedTest, drawLayers) { std::vector<renderengine::LayerSettings> layers; std::shared_ptr<renderengine::ExternalTexture> buffer = std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(), *mRenderEngine, + ExternalTexture>(sp<GraphicBuffer>::make(), *mRenderEngine, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage::WRITEABLE); diff --git a/services/surfaceflinger/Android.bp b/services/surfaceflinger/Android.bp index c162487f63..76429ff44b 100644 --- a/services/surfaceflinger/Android.bp +++ b/services/surfaceflinger/Android.bp @@ -18,6 +18,7 @@ cc_defaults { "-Wunused", "-Wunreachable-code", "-Wconversion", + "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION", ], } diff --git a/services/surfaceflinger/BufferStateLayer.cpp b/services/surfaceflinger/BufferStateLayer.cpp index 5656e05605..51a54455d1 100644 --- a/services/surfaceflinger/BufferStateLayer.cpp +++ b/services/surfaceflinger/BufferStateLayer.cpp @@ -134,7 +134,7 @@ BufferStateLayer::BufferStateLayer(const LayerCreationArgs& args) : Layer(args), mTextureName(args.textureName), mCompositionState{mFlinger->getCompositionEngine().createLayerFECompositionState()}, - mHwcSlotGenerator(new HwcSlotGenerator()) { + mHwcSlotGenerator(sp<HwcSlotGenerator>::make()) { ALOGV("Creating Layer %s", getDebugName()); mPremultipliedAlpha = !(args.flags & ISurfaceComposerClient::eNonPremultiplied); @@ -812,7 +812,7 @@ sp<Layer> BufferStateLayer::createClone() { args.textureName = mTextureName; sp<BufferStateLayer> layer = mFlinger->getFactory().createBufferStateLayer(args); layer->mHwcSlotGenerator = mHwcSlotGenerator; - layer->setInitialValuesForClone(this); + layer->setInitialValuesForClone(sp<Layer>::fromExisting(this)); return layer; } @@ -1573,7 +1573,8 @@ void BufferStateLayer::getDrawingTransformMatrix(bool filteringEnabled, float ou void BufferStateLayer::setInitialValuesForClone(const sp<Layer>& clonedFrom) { Layer::setInitialValuesForClone(clonedFrom); - sp<BufferStateLayer> bufferClonedFrom = static_cast<BufferStateLayer*>(clonedFrom.get()); + sp<BufferStateLayer> bufferClonedFrom = + sp<BufferStateLayer>::fromExisting(static_cast<BufferStateLayer*>(clonedFrom.get())); mPremultipliedAlpha = bufferClonedFrom->mPremultipliedAlpha; mPotentialCursor = bufferClonedFrom->mPotentialCursor; mProtectedByApp = bufferClonedFrom->mProtectedByApp; @@ -1586,7 +1587,8 @@ void BufferStateLayer::updateCloneBufferInfo() { return; } - sp<BufferStateLayer> clonedFrom = static_cast<BufferStateLayer*>(getClonedFrom().get()); + sp<BufferStateLayer> clonedFrom = sp<BufferStateLayer>::fromExisting( + static_cast<BufferStateLayer*>(getClonedFrom().get())); mBufferInfo = clonedFrom->mBufferInfo; mSidebandStream = clonedFrom->mSidebandStream; surfaceDamageRegion = clonedFrom->surfaceDamageRegion; diff --git a/services/surfaceflinger/Client.cpp b/services/surfaceflinger/Client.cpp index b27055d57a..ceded9358d 100644 --- a/services/surfaceflinger/Client.cpp +++ b/services/surfaceflinger/Client.cpp @@ -83,8 +83,8 @@ binder::Status Client::createSurface(const std::string& name, int32_t flags, sp<IBinder> handle; int32_t layerId; uint32_t transformHint; - LayerCreationArgs args(mFlinger.get(), this, name.c_str(), static_cast<uint32_t>(flags), - std::move(metadata)); + LayerCreationArgs args(mFlinger.get(), sp<Client>::fromExisting(this), name.c_str(), + static_cast<uint32_t>(flags), std::move(metadata)); const status_t status = mFlinger->createLayer(args, &handle, parent, &layerId, nullptr, &transformHint); if (status == NO_ERROR) { @@ -137,7 +137,8 @@ binder::Status Client::mirrorSurface(const sp<IBinder>& mirrorFromHandle, gui::MirrorSurfaceResult* outResult) { sp<IBinder> handle; int32_t layerId; - LayerCreationArgs args(mFlinger.get(), this, "MirrorRoot", 0 /* flags */, gui::LayerMetadata()); + LayerCreationArgs args(mFlinger.get(), sp<Client>::fromExisting(this), "MirrorRoot", + 0 /* flags */, gui::LayerMetadata()); status_t status = mFlinger->mirrorLayer(args, mirrorFromHandle, &handle, &layerId); if (status == NO_ERROR) { outResult->handle = handle; diff --git a/services/surfaceflinger/ClientCache.cpp b/services/surfaceflinger/ClientCache.cpp index 3c7b9d93aa..cf932a86c2 100644 --- a/services/surfaceflinger/ClientCache.cpp +++ b/services/surfaceflinger/ClientCache.cpp @@ -30,7 +30,7 @@ namespace android { ANDROID_SINGLETON_STATIC_INSTANCE(ClientCache); -ClientCache::ClientCache() : mDeathRecipient(new CacheDeathRecipient) {} +ClientCache::ClientCache() : mDeathRecipient(sp<CacheDeathRecipient>::make()) {} bool ClientCache::getBuffer(const client_cache_t& cacheId, ClientCacheBuffer** outClientCacheBuffer) { diff --git a/services/surfaceflinger/CompositionEngine/src/Display.cpp b/services/surfaceflinger/CompositionEngine/src/Display.cpp index ea856e4859..09adaed6fc 100644 --- a/services/surfaceflinger/CompositionEngine/src/Display.cpp +++ b/services/surfaceflinger/CompositionEngine/src/Display.cpp @@ -196,7 +196,7 @@ void Display::setReleasedLayers(const compositionengine::CompositionRefreshArgs& }); if (hasQueuedFrames) { - releasedLayers.emplace_back(layerFE); + releasedLayers.emplace_back(wp<LayerFE>::fromExisting(layerFE)); } } diff --git a/services/surfaceflinger/CompositionEngine/src/Output.cpp b/services/surfaceflinger/CompositionEngine/src/Output.cpp index 72922bb4ee..a98aed2ec1 100644 --- a/services/surfaceflinger/CompositionEngine/src/Output.cpp +++ b/services/surfaceflinger/CompositionEngine/src/Output.cpp @@ -1160,7 +1160,8 @@ void Output::finishFrame(const CompositionRefreshArgs& refreshArgs, GpuCompositi if (isPowerHintSessionEnabled()) { // get fence end time to know when gpu is complete in display - setHintSessionGpuFence(std::make_unique<FenceTime>(new Fence(dup(optReadyFence->get())))); + setHintSessionGpuFence( + std::make_unique<FenceTime>(sp<Fence>::make(dup(optReadyFence->get())))); } // swap buffers (presentation) mRenderSurface->queueBuffer(std::move(*optReadyFence)); diff --git a/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp b/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp index 344fea3331..51ca213f52 100644 --- a/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp @@ -194,7 +194,7 @@ struct DisplayTestCommon : public testing::Test { StrictMock<Hwc2::mock::PowerAdvisor> mPowerAdvisor; StrictMock<renderengine::mock::RenderEngine> mRenderEngine; StrictMock<mock::CompositionEngine> mCompositionEngine; - sp<mock::NativeWindow> mNativeWindow = new StrictMock<mock::NativeWindow>(); + sp<mock::NativeWindow> mNativeWindow = sp<StrictMock<mock::NativeWindow>>::make(); }; struct PartialMockDisplayTestCommon : public DisplayTestCommon { @@ -524,7 +524,7 @@ TEST_F(DisplaySetReleasedLayersTest, doesNothingIfGpuDisplay) { auto args = getDisplayCreationArgsForGpuVirtualDisplay(); std::shared_ptr<impl::Display> gpuDisplay = impl::createDisplay(mCompositionEngine, args); - sp<mock::LayerFE> layerXLayerFE = new StrictMock<mock::LayerFE>(); + sp<mock::LayerFE> layerXLayerFE = sp<StrictMock<mock::LayerFE>>::make(); { Output::ReleasedLayers releasedLayers; @@ -542,7 +542,7 @@ TEST_F(DisplaySetReleasedLayersTest, doesNothingIfGpuDisplay) { } TEST_F(DisplaySetReleasedLayersTest, doesNothingIfNoLayersWithQueuedFrames) { - sp<mock::LayerFE> layerXLayerFE = new StrictMock<mock::LayerFE>(); + sp<mock::LayerFE> layerXLayerFE = sp<StrictMock<mock::LayerFE>>::make(); { Output::ReleasedLayers releasedLayers; @@ -558,7 +558,7 @@ TEST_F(DisplaySetReleasedLayersTest, doesNothingIfNoLayersWithQueuedFrames) { } TEST_F(DisplaySetReleasedLayersTest, setReleasedLayers) { - sp<mock::LayerFE> unknownLayer = new StrictMock<mock::LayerFE>(); + sp<mock::LayerFE> unknownLayer = sp<StrictMock<mock::LayerFE>>::make(); CompositionRefreshArgs refreshArgs; refreshArgs.layersWithQueuedFrames.push_back(mLayer1.layerFE); @@ -897,9 +897,9 @@ TEST_F(DisplayPresentAndGetFrameFencesTest, returnsNoFencesOnGpuDisplay) { } TEST_F(DisplayPresentAndGetFrameFencesTest, returnsPresentAndLayerFences) { - sp<Fence> presentFence = new Fence(); - sp<Fence> layer1Fence = new Fence(); - sp<Fence> layer2Fence = new Fence(); + sp<Fence> presentFence = sp<Fence>::make(); + sp<Fence> layer1Fence = sp<Fence>::make(); + sp<Fence> layer2Fence = sp<Fence>::make(); EXPECT_CALL(mHwComposer, presentAndGetReleaseFences(HalDisplayId(DEFAULT_DISPLAY_ID), _, _)) .Times(1); @@ -1018,8 +1018,8 @@ struct DisplayFunctionalTest : public testing::Test { NiceMock<android::mock::HWComposer> mHwComposer; NiceMock<Hwc2::mock::PowerAdvisor> mPowerAdvisor; NiceMock<mock::CompositionEngine> mCompositionEngine; - sp<mock::NativeWindow> mNativeWindow = new NiceMock<mock::NativeWindow>(); - sp<mock::DisplaySurface> mDisplaySurface = new NiceMock<mock::DisplaySurface>(); + sp<mock::NativeWindow> mNativeWindow = sp<NiceMock<mock::NativeWindow>>::make(); + sp<mock::DisplaySurface> mDisplaySurface = sp<NiceMock<mock::DisplaySurface>>::make(); std::shared_ptr<Display> mDisplay; impl::RenderSurface* mRenderSurface; diff --git a/services/surfaceflinger/CompositionEngine/tests/HwcBufferCacheTest.cpp b/services/surfaceflinger/CompositionEngine/tests/HwcBufferCacheTest.cpp index 00eafb15f5..7197780c17 100644 --- a/services/surfaceflinger/CompositionEngine/tests/HwcBufferCacheTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/HwcBufferCacheTest.cpp @@ -66,8 +66,10 @@ public: } impl::HwcBufferCache mCache; - sp<GraphicBuffer> mBuffer1{new GraphicBuffer(1, 1, HAL_PIXEL_FORMAT_RGBA_8888, 1, 0)}; - sp<GraphicBuffer> mBuffer2{new GraphicBuffer(1, 1, HAL_PIXEL_FORMAT_RGBA_8888, 1, 0)}; + sp<GraphicBuffer> mBuffer1 = + sp<GraphicBuffer>::make(1u, 1u, HAL_PIXEL_FORMAT_RGBA_8888, 1u, 0u); + sp<GraphicBuffer> mBuffer2 = + sp<GraphicBuffer>::make(1u, 1u, HAL_PIXEL_FORMAT_RGBA_8888, 1u, 0u); }; TEST_F(HwcBufferCacheTest, cacheWorksForSlotZero) { diff --git a/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp b/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp index 5290bd9cba..0f7dce896c 100644 --- a/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp @@ -955,11 +955,11 @@ native_handle_t* OutputLayerWriteStateToHWCTest::kSidebandStreamHandle = reinterpret_cast<native_handle_t*>(1031); const sp<GraphicBuffer> OutputLayerWriteStateToHWCTest::kBuffer; const sp<GraphicBuffer> OutputLayerWriteStateToHWCTest::kOverrideBuffer = - new GraphicBuffer(4, 5, PIXEL_FORMAT_RGBA_8888, - AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN | - AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN); + sp<GraphicBuffer>::make(4, 5, PIXEL_FORMAT_RGBA_8888, + AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN | + AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN); const sp<Fence> OutputLayerWriteStateToHWCTest::kFence; -const sp<Fence> OutputLayerWriteStateToHWCTest::kOverrideFence = new Fence(); +const sp<Fence> OutputLayerWriteStateToHWCTest::kOverrideFence = sp<Fence>::make(); const std::string OutputLayerWriteStateToHWCTest::kLayerGenericMetadata1Key = "com.example.metadata.1"; const std::vector<uint8_t> OutputLayerWriteStateToHWCTest::kLayerGenericMetadata1Value{{1, 2, 3}}; diff --git a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp index cf12890310..657084a005 100644 --- a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp @@ -293,7 +293,7 @@ TEST_F(OutputTest, setLayerCachingEnabled_disablesCachingAndResetsOverrideInfo) InjectedLayer layer; layer.outputLayerState.overrideInfo.buffer = std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(), renderEngine, + ExternalTexture>(sp<GraphicBuffer>::make(), renderEngine, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage::WRITEABLE); injectOutputLayer(layer); @@ -1017,7 +1017,7 @@ TEST_F(OutputUpdateAndWriteCompositionStateTest, peekThroughLayerChangesOrder) { std::shared_ptr<renderengine::ExternalTexture> buffer = std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(), renderEngine, + ExternalTexture>(sp<GraphicBuffer>::make(), renderEngine, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage::WRITEABLE); layer1.outputLayerState.overrideInfo.buffer = buffer; @@ -3449,7 +3449,7 @@ struct OutputComposeSurfacesTest : public testing::Test { StrictMock<OutputPartialMock> mOutput; std::shared_ptr<renderengine::ExternalTexture> mOutputBuffer = std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(), mRenderEngine, + ExternalTexture>(sp<GraphicBuffer>::make(), mRenderEngine, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage::WRITEABLE); @@ -3687,7 +3687,7 @@ TEST_F(OutputComposeSurfacesTest, clientCompositionIfBufferChanges) { const auto otherOutputBuffer = std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(), mRenderEngine, + ExternalTexture>(sp<GraphicBuffer>::make(), mRenderEngine, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage::WRITEABLE); EXPECT_CALL(*mRenderSurface, dequeueBuffer(_)) diff --git a/services/surfaceflinger/CompositionEngine/tests/RenderSurfaceTest.cpp b/services/surfaceflinger/CompositionEngine/tests/RenderSurfaceTest.cpp index e5f9ebfbeb..8c793b0290 100644 --- a/services/surfaceflinger/CompositionEngine/tests/RenderSurfaceTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/RenderSurfaceTest.cpp @@ -61,8 +61,8 @@ public: StrictMock<renderengine::mock::RenderEngine> mRenderEngine; StrictMock<mock::CompositionEngine> mCompositionEngine; StrictMock<mock::Display> mDisplay; - sp<mock::NativeWindow> mNativeWindow = new StrictMock<mock::NativeWindow>(); - sp<mock::DisplaySurface> mDisplaySurface = new StrictMock<mock::DisplaySurface>(); + sp<mock::NativeWindow> mNativeWindow = sp<StrictMock<mock::NativeWindow>>::make(); + sp<mock::DisplaySurface> mDisplaySurface = sp<StrictMock<mock::DisplaySurface>>::make(); impl::RenderSurface mSurface{mCompositionEngine, mDisplay, RenderSurfaceCreationArgsBuilder() .setDisplayWidth(DEFAULT_DISPLAY_WIDTH) @@ -109,7 +109,7 @@ TEST_F(RenderSurfaceTest, sizeReturnsConstructedSize) { */ TEST_F(RenderSurfaceTest, getClientTargetAcquireFenceForwardsCall) { - sp<Fence> fence = new Fence(); + sp<Fence> fence = sp<Fence>::make(); EXPECT_CALL(*mDisplaySurface, getClientTargetAcquireFence()).WillOnce(ReturnRef(fence)); @@ -234,7 +234,7 @@ TEST_F(RenderSurfaceTest, prepareFrameHandlesNoComposition) { */ TEST_F(RenderSurfaceTest, dequeueBufferObtainsABuffer) { - sp<GraphicBuffer> buffer = new GraphicBuffer(); + sp<GraphicBuffer> buffer = sp<GraphicBuffer>::make(); EXPECT_CALL(*mNativeWindow, dequeueBuffer(_, _)) .WillOnce( @@ -253,7 +253,7 @@ TEST_F(RenderSurfaceTest, dequeueBufferObtainsABuffer) { TEST_F(RenderSurfaceTest, queueBufferHandlesNoClientComposition) { const auto buffer = std::make_shared< renderengine::impl:: - ExternalTexture>(new GraphicBuffer(), mRenderEngine, + ExternalTexture>(sp<GraphicBuffer>::make(), mRenderEngine, renderengine::impl::ExternalTexture::Usage::READABLE | renderengine::impl::ExternalTexture::Usage::WRITEABLE); mSurface.mutableTextureForTest() = buffer; @@ -271,8 +271,9 @@ TEST_F(RenderSurfaceTest, queueBufferHandlesNoClientComposition) { } TEST_F(RenderSurfaceTest, queueBufferHandlesClientComposition) { - const auto buffer = std::make_shared<renderengine::impl::ExternalTexture>(new GraphicBuffer(), - mRenderEngine, false); + const auto buffer = + std::make_shared<renderengine::impl::ExternalTexture>(sp<GraphicBuffer>::make(), + mRenderEngine, false); mSurface.mutableTextureForTest() = buffer; impl::OutputCompositionState state; @@ -290,8 +291,9 @@ TEST_F(RenderSurfaceTest, queueBufferHandlesClientComposition) { } TEST_F(RenderSurfaceTest, queueBufferHandlesFlipClientTargetRequest) { - const auto buffer = std::make_shared<renderengine::impl::ExternalTexture>(new GraphicBuffer(), - mRenderEngine, false); + const auto buffer = + std::make_shared<renderengine::impl::ExternalTexture>(sp<GraphicBuffer>::make(), + mRenderEngine, false); mSurface.mutableTextureForTest() = buffer; impl::OutputCompositionState state; @@ -309,7 +311,7 @@ TEST_F(RenderSurfaceTest, queueBufferHandlesFlipClientTargetRequest) { } TEST_F(RenderSurfaceTest, queueBufferHandlesFlipClientTargetRequestWithNoBufferYetDequeued) { - sp<GraphicBuffer> buffer = new GraphicBuffer(); + sp<GraphicBuffer> buffer = sp<GraphicBuffer>::make(); impl::OutputCompositionState state; state.usesClientComposition = false; @@ -329,8 +331,9 @@ TEST_F(RenderSurfaceTest, queueBufferHandlesFlipClientTargetRequestWithNoBufferY } TEST_F(RenderSurfaceTest, queueBufferHandlesNativeWindowQueueBufferFailureOnVirtualDisplay) { - const auto buffer = std::make_shared<renderengine::impl::ExternalTexture>(new GraphicBuffer(), - mRenderEngine, false); + const auto buffer = + std::make_shared<renderengine::impl::ExternalTexture>(sp<GraphicBuffer>::make(), + mRenderEngine, false); mSurface.mutableTextureForTest() = buffer; impl::OutputCompositionState state; diff --git a/services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp b/services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp index 50e3a288cb..200278cb84 100644 --- a/services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp @@ -108,11 +108,12 @@ void FlattenerTest::SetUp() { testLayer->outputLayerCompositionState.visibleRegion = Region(Rect(pos + 1, pos + 1, pos + 2, pos + 2)); + const auto kUsageFlags = + static_cast<uint64_t>(GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN | + GRALLOC_USAGE_HW_RENDER | GRALLOC_USAGE_HW_TEXTURE); testLayer->layerFECompositionState.buffer = - new GraphicBuffer(100, 100, HAL_PIXEL_FORMAT_RGBA_8888, 1, - GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN | - GRALLOC_USAGE_HW_RENDER | GRALLOC_USAGE_HW_TEXTURE, - "output"); + sp<GraphicBuffer>::make(100u, 100u, HAL_PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, + "output"); testLayer->layerFE = sp<mock::LayerFE>::make(); diff --git a/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp b/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp index 5c6e8da58c..47b682059f 100644 --- a/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp @@ -112,6 +112,9 @@ struct LayerStateTest : public testing::Test { sp<mock::LayerFE> mLayerFE = sp<mock::LayerFE>::make(); mock::OutputLayer mOutputLayer; std::unique_ptr<LayerState> mLayerState; + + static constexpr auto kUsageFlags = static_cast<uint32_t>( + AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN); }; TEST_F(LayerStateTest, getOutputLayer) { @@ -346,7 +349,7 @@ TEST_F(LayerStateTest, compareCompositionType) { TEST_F(LayerStateTest, updateBuffer) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - layerFECompositionState.buffer = new GraphicBuffer(); + layerFECompositionState.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); @@ -354,7 +357,7 @@ TEST_F(LayerStateTest, updateBuffer) { mock::OutputLayer newOutputLayer; sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.buffer = new GraphicBuffer(); + layerFECompositionStateTwo.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); ftl::Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); @@ -364,7 +367,7 @@ TEST_F(LayerStateTest, updateBuffer) { TEST_F(LayerStateTest, updateBufferSingleBufferedLegacy) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - layerFECompositionState.buffer = new GraphicBuffer(); + layerFECompositionState.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); @@ -372,7 +375,7 @@ TEST_F(LayerStateTest, updateBufferSingleBufferedLegacy) { mock::OutputLayer newOutputLayer; sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.buffer = new GraphicBuffer(); + layerFECompositionStateTwo.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); @@ -388,7 +391,7 @@ TEST_F(LayerStateTest, updateBufferSingleBufferedLegacy) { TEST_F(LayerStateTest, updateBufferSingleBufferedUsage) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - layerFECompositionState.buffer = new GraphicBuffer(); + layerFECompositionState.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); @@ -396,7 +399,7 @@ TEST_F(LayerStateTest, updateBufferSingleBufferedUsage) { mock::OutputLayer newOutputLayer; sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.buffer = new GraphicBuffer(); + layerFECompositionStateTwo.buffer = sp<GraphicBuffer>::make(); layerFECompositionStateTwo.buffer->usage = static_cast<uint64_t>(BufferUsage::FRONT_BUFFER); setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); @@ -412,14 +415,14 @@ TEST_F(LayerStateTest, updateBufferSingleBufferedUsage) { TEST_F(LayerStateTest, compareBuffer) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - layerFECompositionState.buffer = new GraphicBuffer(); + layerFECompositionState.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.buffer = new GraphicBuffer(); + layerFECompositionStateTwo.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -720,10 +723,7 @@ TEST_F(LayerStateTest, updatePixelFormat) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.buffer = - new GraphicBuffer(1, 1, PIXEL_FORMAT_RGBA_8888, - AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | - AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN, - "buffer1"); + sp<GraphicBuffer>::make(1u, 1u, PIXEL_FORMAT_RGBA_8888, kUsageFlags, "buffer1"); setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); @@ -732,10 +732,7 @@ TEST_F(LayerStateTest, updatePixelFormat) { sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.buffer = - new GraphicBuffer(1, 1, PIXEL_FORMAT_RGBX_8888, - AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | - AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN, - "buffer2"); + sp<GraphicBuffer>::make(1u, 1u, PIXEL_FORMAT_RGBX_8888, kUsageFlags, "buffer2"); setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); ftl::Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); @@ -748,10 +745,7 @@ TEST_F(LayerStateTest, comparePixelFormat) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.buffer = - new GraphicBuffer(1, 1, PIXEL_FORMAT_RGBA_8888, - AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | - AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN, - "buffer1"); + sp<GraphicBuffer>::make(1u, 1u, PIXEL_FORMAT_RGBA_8888, kUsageFlags, "buffer1"); setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); @@ -759,10 +753,7 @@ TEST_F(LayerStateTest, comparePixelFormat) { sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.buffer = - new GraphicBuffer(1, 1, PIXEL_FORMAT_RGBX_8888, - AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | - AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN, - "buffer2"); + sp<GraphicBuffer>::make(1u, 1u, PIXEL_FORMAT_RGBX_8888, kUsageFlags, "buffer2"); setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -1069,7 +1060,7 @@ TEST_F(LayerStateTest, getNonBufferHash_isIdempotent) { TEST_F(LayerStateTest, getNonBufferHash_filtersOutBuffers) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - layerFECompositionState.buffer = new GraphicBuffer(); + layerFECompositionState.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); @@ -1077,7 +1068,7 @@ TEST_F(LayerStateTest, getNonBufferHash_filtersOutBuffers) { mock::OutputLayer newOutputLayer; sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.buffer = new GraphicBuffer(); + layerFECompositionStateTwo.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); diff --git a/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp b/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp index 68c72e0945..35d0ffb6e9 100644 --- a/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp @@ -228,7 +228,7 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchManyDifferences) { } TEST_F(LayerStackTest, getApproximateMatch_exactMatchesSameBuffer) { - sp<GraphicBuffer> buffer = new GraphicBuffer(); + sp<GraphicBuffer> buffer = sp<GraphicBuffer>::make(); mock::OutputLayer outputLayerOne; sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne; @@ -268,7 +268,7 @@ TEST_F(LayerStackTest, getApproximateMatch_alwaysMatchesClientComposition) { .dataspace = ui::Dataspace::SRGB, }; LayerFECompositionState layerFECompositionStateOne; - layerFECompositionStateOne.buffer = new GraphicBuffer(); + layerFECompositionStateOne.buffer = sp<GraphicBuffer>::make(); layerFECompositionStateOne.alpha = sAlphaOne; layerFECompositionStateOne.colorTransformIsIdentity = true; setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, @@ -285,7 +285,7 @@ TEST_F(LayerStackTest, getApproximateMatch_alwaysMatchesClientComposition) { .dataspace = ui::Dataspace::DISPLAY_P3, }; LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.buffer = new GraphicBuffer(); + layerFECompositionStateTwo.buffer = sp<GraphicBuffer>::make(); layerFECompositionStateTwo.alpha = sAlphaTwo; layerFECompositionStateTwo.colorTransformIsIdentity = false; layerFECompositionStateTwo.colorTransform = sMat4One; @@ -310,7 +310,7 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchMultipleApproximations) { .sourceCrop = sFloatRectOne, }; LayerFECompositionState layerFECompositionStateOne; - layerFECompositionStateOne.buffer = new GraphicBuffer(); + layerFECompositionStateOne.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); @@ -321,7 +321,7 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchMultipleApproximations) { .sourceCrop = sFloatRectTwo, }; LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.buffer = new GraphicBuffer(); + layerFECompositionStateTwo.buffer = sp<GraphicBuffer>::make(); setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); diff --git a/services/surfaceflinger/DisplayHardware/HWC2.cpp b/services/surfaceflinger/DisplayHardware/HWC2.cpp index c52e96d146..16d398474d 100644 --- a/services/surfaceflinger/DisplayHardware/HWC2.cpp +++ b/services/surfaceflinger/DisplayHardware/HWC2.cpp @@ -369,7 +369,7 @@ Error Display::getReleaseFences(std::unordered_map<HWC2::Layer*, sp<Fence>>* out for (uint32_t element = 0; element < numElements; ++element) { auto layer = getLayerById(layerIds[element]); if (layer) { - sp<Fence> fence(new Fence(fenceFds[element])); + sp<Fence> fence(sp<Fence>::make(fenceFds[element])); releaseFences.emplace(layer.get(), fence); } else { ALOGE("getReleaseFences: invalid layer %" PRIu64 @@ -394,7 +394,7 @@ Error Display::present(sp<Fence>* outPresentFence) return error; } - *outPresentFence = new Fence(presentFenceFd); + *outPresentFence = sp<Fence>::make(presentFenceFd); return Error::NONE; } @@ -532,7 +532,7 @@ Error Display::presentOrValidate(nsecs_t expectedPresentTime, uint32_t* outNumTy } if (*state == 1) { - *outPresentFence = new Fence(presentFenceFd); + *outPresentFence = sp<Fence>::make(presentFenceFd); } if (*state == 0) { diff --git a/services/surfaceflinger/EffectLayer.cpp b/services/surfaceflinger/EffectLayer.cpp index 44e45f479c..d8bbc306e4 100644 --- a/services/surfaceflinger/EffectLayer.cpp +++ b/services/surfaceflinger/EffectLayer.cpp @@ -144,7 +144,7 @@ ui::Dataspace EffectLayer::getDataSpace() const { sp<Layer> EffectLayer::createClone() { sp<EffectLayer> layer = mFlinger->getFactory().createEffectLayer( LayerCreationArgs(mFlinger.get(), nullptr, mName + " (Mirror)", 0, LayerMetadata())); - layer->setInitialValuesForClone(this); + layer->setInitialValuesForClone(sp<Layer>::fromExisting(this)); return layer; } diff --git a/services/surfaceflinger/FpsReporter.cpp b/services/surfaceflinger/FpsReporter.cpp index c89c9ffcd4..155cf4da58 100644 --- a/services/surfaceflinger/FpsReporter.cpp +++ b/services/surfaceflinger/FpsReporter.cpp @@ -63,7 +63,8 @@ void FpsReporter::dispatchLayerFps() { for (TrackedListener& listener : localListeners) { if (listener.taskId == taskId) { seenTasks.insert(taskId); - listenersAndLayersToReport.push_back({listener, sp<Layer>(layer)}); + listenersAndLayersToReport.push_back( + {listener, sp<Layer>::fromExisting(layer)}); break; } } @@ -90,7 +91,7 @@ void FpsReporter::binderDied(const wp<IBinder>& who) { void FpsReporter::addListener(const sp<gui::IFpsListener>& listener, int32_t taskId) { sp<IBinder> asBinder = IInterface::asBinder(listener); - asBinder->linkToDeath(this); + asBinder->linkToDeath(sp<DeathRecipient>::fromExisting(this)); std::lock_guard lock(mMutex); mListeners.emplace(wp<IBinder>(asBinder), TrackedListener{listener, taskId}); } diff --git a/services/surfaceflinger/HdrLayerInfoReporter.cpp b/services/surfaceflinger/HdrLayerInfoReporter.cpp index c06e300cdc..c88554ee52 100644 --- a/services/surfaceflinger/HdrLayerInfoReporter.cpp +++ b/services/surfaceflinger/HdrLayerInfoReporter.cpp @@ -51,7 +51,7 @@ void HdrLayerInfoReporter::binderDied(const wp<IBinder>& who) { void HdrLayerInfoReporter::addListener(const sp<gui::IHdrLayerInfoListener>& listener) { sp<IBinder> asBinder = IInterface::asBinder(listener); - asBinder->linkToDeath(this); + asBinder->linkToDeath(sp<DeathRecipient>::fromExisting(this)); std::lock_guard lock(mMutex); mListeners.emplace(wp<IBinder>(asBinder), TrackedListener{listener, HdrLayerInfo{}}); } diff --git a/services/surfaceflinger/HwcSlotGenerator.cpp b/services/surfaceflinger/HwcSlotGenerator.cpp index b7e9607c4b..939c35b8b3 100644 --- a/services/surfaceflinger/HwcSlotGenerator.cpp +++ b/services/surfaceflinger/HwcSlotGenerator.cpp @@ -56,7 +56,8 @@ int HwcSlotGenerator::addCachedBuffer(const client_cache_t& clientCacheId) REQUI return BufferQueue::INVALID_BUFFER_SLOT; } - ClientCache::getInstance().registerErasedRecipient(clientCacheId, wp<ErasedRecipient>(this)); + ClientCache::getInstance().registerErasedRecipient(clientCacheId, + wp<ErasedRecipient>::fromExisting(this)); int hwcCacheSlot = getFreeHwcCacheSlot(); mCachedBuffers[clientCacheId] = {hwcCacheSlot, mCounter++}; @@ -85,7 +86,8 @@ void HwcSlotGenerator::evictLeastRecentlyUsed() REQUIRES(mMutex) { } eraseBufferLocked(minClientCacheId); - ClientCache::getInstance().unregisterErasedRecipient(minClientCacheId, this); + ClientCache::getInstance().unregisterErasedRecipient(minClientCacheId, + wp<ErasedRecipient>::fromExisting(this)); } void HwcSlotGenerator::eraseBufferLocked(const client_cache_t& clientCacheId) REQUIRES(mMutex) { diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index d68f287604..5e1a858d0e 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -94,7 +94,7 @@ std::atomic<int32_t> Layer::sSequence{1}; Layer::Layer(const LayerCreationArgs& args) : sequence(args.sequence.value_or(sSequence++)), - mFlinger(args.flinger), + mFlinger(sp<SurfaceFlinger>::fromExisting(args.flinger)), mName(base::StringPrintf("%s#%d", args.name.c_str(), sequence)), mClientRef(args.client), mWindowType(static_cast<WindowInfo::Type>( @@ -228,7 +228,7 @@ void Layer::removeRelativeZ(const std::vector<Layer*>& layersInTree) { } if (!std::binary_search(layersInTree.begin(), layersInTree.end(), strongRelative.get())) { - strongRelative->removeZOrderRelative(this); + strongRelative->removeZOrderRelative(wp<Layer>::fromExisting(this)); mFlinger->setTransactionFlags(eTraversalNeeded); setZOrderRelativeOf(nullptr); } @@ -240,13 +240,13 @@ void Layer::removeFromCurrentState() { mFlinger->mScheduler->deregisterLayer(this); } - mFlinger->markLayerPendingRemovalLocked(this); + mFlinger->markLayerPendingRemovalLocked(sp<Layer>::fromExisting(this)); } sp<Layer> Layer::getRootLayer() { sp<Layer> parent = getParent(); if (parent == nullptr) { - return this; + return sp<Layer>::fromExisting(this); } return parent->getRootLayer(); } @@ -289,7 +289,7 @@ sp<IBinder> Layer::getHandle() { return nullptr; } mGetHandleCalled = true; - return new Handle(mFlinger, this); + return sp<Handle>::make(mFlinger, sp<Layer>::fromExisting(this)); } // --------------------------------------------------------------------------- @@ -521,8 +521,9 @@ void Layer::prepareCursorCompositionState() { } sp<compositionengine::LayerFE> Layer::asLayerFE() const { - return const_cast<compositionengine::LayerFE*>( + compositionengine::LayerFE* layerFE = const_cast<compositionengine::LayerFE*>( static_cast<const compositionengine::LayerFE*>(this)); + return sp<compositionengine::LayerFE>::fromExisting(layerFE); } sp<compositionengine::LayerFE> Layer::getCompositionEngineLayerFE() const { @@ -813,7 +814,7 @@ bool Layer::setLayer(int32_t z) { if (mDrawingState.zOrderRelativeOf != nullptr) { sp<Layer> strongRelative = mDrawingState.zOrderRelativeOf.promote(); if (strongRelative != nullptr) { - strongRelative->removeZOrderRelative(this); + strongRelative->removeZOrderRelative(wp<Layer>::fromExisting(this)); } setZOrderRelativeOf(nullptr); } @@ -871,10 +872,10 @@ bool Layer::setRelativeLayer(const sp<IBinder>& relativeToHandle, int32_t relati auto oldZOrderRelativeOf = mDrawingState.zOrderRelativeOf.promote(); if (oldZOrderRelativeOf != nullptr) { - oldZOrderRelativeOf->removeZOrderRelative(this); + oldZOrderRelativeOf->removeZOrderRelative(wp<Layer>::fromExisting(this)); } setZOrderRelativeOf(relative); - relative->addZOrderRelative(this); + relative->addZOrderRelative(wp<Layer>::fromExisting(this)); setTransactionFlags(eTransactionNeeded); @@ -1241,7 +1242,7 @@ bool Layer::propagateFrameRateForLayerTree(FrameRate parentFrameRate, bool* tran void Layer::updateTreeHasFrameRateVote() { const auto root = [&]() -> sp<Layer> { - sp<Layer> layer = this; + sp<Layer> layer = sp<Layer>::fromExisting(this); while (auto parent = layer->getParent()) { layer = parent; } @@ -1614,7 +1615,7 @@ void Layer::addChild(const sp<Layer>& layer) { setTransactionFlags(eTransactionNeeded); mCurrentChildren.add(layer); - layer->setParent(this); + layer->setParent(sp<Layer>::fromExisting(this)); layer->setGameModeForTree(mGameMode); updateTreeHasFrameRateVote(); } @@ -1659,11 +1660,11 @@ bool Layer::reparent(const sp<IBinder>& newParentHandle) { sp<Layer> parent = getParent(); if (parent != nullptr) { - parent->removeChild(this); + parent->removeChild(sp<Layer>::fromExisting(this)); } if (newParentHandle != nullptr) { - newParent->addChild(this); + newParent->addChild(sp<Layer>::fromExisting(this)); if (!newParent->isRemovedFromCurrentState()) { addToCurrentState(); } else { @@ -2064,7 +2065,7 @@ void Layer::commitChildList() { zOrderRelativeOf->mName.c_str()); ALOGE("Severing rel Z loop, potentially dangerous"); mDrawingState.isRelativeOf = false; - zOrderRelativeOf->removeZOrderRelative(this); + zOrderRelativeOf->removeZOrderRelative(wp<Layer>::fromExisting(this)); } } } @@ -2342,7 +2343,7 @@ void Layer::fillInputFrameInfo(WindowInfo& info, const ui::Transform& screenToDi } void Layer::fillTouchOcclusionMode(WindowInfo& info) { - sp<Layer> p = this; + sp<Layer> p = sp<Layer>::fromExisting(this); while (p != nullptr && !p->hasInputInfo()) { p = p->mDrawingParent.promote(); } @@ -2494,7 +2495,7 @@ WindowInfo Layer::fillInputInfo(const InputDisplayArgs& displayArgs) { sp<Layer> Layer::getClonedRoot() { if (mClonedChild != nullptr) { - return this; + return sp<Layer>::fromExisting(this); } if (mDrawingParent == nullptr || mDrawingParent.promote() == nullptr) { return nullptr; @@ -2548,7 +2549,7 @@ void Layer::updateMirrorInfo() { } mClonedChild->updateClonedDrawingState(clonedLayersMap); - mClonedChild->updateClonedChildren(this, clonedLayersMap); + mClonedChild->updateClonedChildren(sp<Layer>::fromExisting(this), clonedLayersMap); mClonedChild->updateClonedRelatives(clonedLayersMap); } @@ -2559,7 +2560,7 @@ void Layer::updateClonedDrawingState(std::map<sp<Layer>, sp<Layer>>& clonedLayer if (isClonedFromAlive()) { sp<Layer> clonedFrom = getClonedFrom(); cloneDrawingState(clonedFrom.get()); - clonedLayersMap.emplace(clonedFrom, this); + clonedLayersMap.emplace(clonedFrom, sp<Layer>::fromExisting(this)); } // The clone layer may have children in drawingState since they may have been created and @@ -2603,7 +2604,7 @@ void Layer::updateClonedInputInfo(const std::map<sp<Layer>, sp<Layer>>& clonedLa if (clonedLayersMap.count(cropLayer) == 0) { // Real layer had a crop layer but it's not in the cloned hierarchy. Just set to // self as crop layer to avoid going outside bounds. - mDrawingState.touchableRegionCrop = this; + mDrawingState.touchableRegionCrop = wp<Layer>::fromExisting(this); } else { const sp<Layer>& clonedCropLayer = clonedLayersMap.at(cropLayer); mDrawingState.touchableRegionCrop = clonedCropLayer; @@ -2615,7 +2616,7 @@ void Layer::updateClonedInputInfo(const std::map<sp<Layer>, sp<Layer>>& clonedLa } void Layer::updateClonedRelatives(const std::map<sp<Layer>, sp<Layer>>& clonedLayersMap) { - mDrawingState.zOrderRelativeOf = nullptr; + mDrawingState.zOrderRelativeOf = wp<Layer>(); mDrawingState.zOrderRelatives.clear(); if (!isClonedFromAlive()) { @@ -2651,7 +2652,7 @@ void Layer::updateClonedRelatives(const std::map<sp<Layer>, sp<Layer>>& clonedLa void Layer::addChildToDrawing(const sp<Layer>& layer) { mDrawingChildren.add(layer); - layer->mDrawingParent = this; + layer->mDrawingParent = sp<Layer>::fromExisting(this); } Layer::FrameRateCompatibility Layer::FrameRate::convertCompatibility(int8_t compatibility) { @@ -2713,7 +2714,7 @@ wp<Layer> Layer::fromHandle(const sp<IBinder>& handleBinder) { } // We can safely cast this binder since its local and we verified its interface descriptor. - sp<Handle> handle = static_cast<Handle*>(handleBinder.get()); + sp<Handle> handle = sp<Handle>::cast(handleBinder); return handle->owner; } diff --git a/services/surfaceflinger/NativeWindowSurface.cpp b/services/surfaceflinger/NativeWindowSurface.cpp index 3fff9283ee..a6a3eec8ff 100644 --- a/services/surfaceflinger/NativeWindowSurface.cpp +++ b/services/surfaceflinger/NativeWindowSurface.cpp @@ -30,7 +30,7 @@ std::unique_ptr<surfaceflinger::NativeWindowSurface> createNativeWindowSurface( class NativeWindowSurface final : public surfaceflinger::NativeWindowSurface { public: explicit NativeWindowSurface(const sp<IGraphicBufferProducer>& producer) - : mSurface(new Surface(producer, /* controlledByApp */ false)) {} + : mSurface(sp<Surface>::make(producer, /* controlledByApp */ false)) {} ~NativeWindowSurface() override = default; diff --git a/services/surfaceflinger/RefreshRateOverlay.cpp b/services/surfaceflinger/RefreshRateOverlay.cpp index a9180d4483..9b19afbdac 100644 --- a/services/surfaceflinger/RefreshRateOverlay.cpp +++ b/services/surfaceflinger/RefreshRateOverlay.cpp @@ -152,13 +152,13 @@ auto RefreshRateOverlay::SevenSegmentDrawer::draw(int number, SkColor color, } }(); - sp<GraphicBuffer> buffer = - new GraphicBuffer(static_cast<uint32_t>(bufferWidth), - static_cast<uint32_t>(bufferHeight), HAL_PIXEL_FORMAT_RGBA_8888, - 1, - GRALLOC_USAGE_SW_WRITE_RARELY | GRALLOC_USAGE_HW_COMPOSER | - GRALLOC_USAGE_HW_TEXTURE, - "RefreshRateOverlayBuffer"); + const auto kUsageFlags = + static_cast<uint64_t>(GRALLOC_USAGE_SW_WRITE_RARELY | GRALLOC_USAGE_HW_COMPOSER | + GRALLOC_USAGE_HW_TEXTURE); + sp<GraphicBuffer> buffer = sp<GraphicBuffer>::make(static_cast<uint32_t>(bufferWidth), + static_cast<uint32_t>(bufferHeight), + HAL_PIXEL_FORMAT_RGBA_8888, 1u, + kUsageFlags, "RefreshRateOverlayBuffer"); const status_t bufferStatus = buffer->initCheck(); LOG_ALWAYS_FATAL_IF(bufferStatus != OK, "RefreshRateOverlay: Buffer failed to allocate: %d", diff --git a/services/surfaceflinger/RegionSamplingThread.cpp b/services/surfaceflinger/RegionSamplingThread.cpp index 2487dbd793..570525598e 100644 --- a/services/surfaceflinger/RegionSamplingThread.cpp +++ b/services/surfaceflinger/RegionSamplingThread.cpp @@ -132,7 +132,7 @@ RegionSamplingThread::~RegionSamplingThread() { void RegionSamplingThread::addListener(const Rect& samplingArea, const wp<Layer>& stopLayer, const sp<IRegionSamplingListener>& listener) { sp<IBinder> asBinder = IInterface::asBinder(listener); - asBinder->linkToDeath(this); + asBinder->linkToDeath(sp<DeathRecipient>::fromExisting(this)); std::lock_guard lock(mSamplingMutex); mDescriptors.emplace(wp<IBinder>(asBinder), Descriptor{samplingArea, stopLayer, listener}); } @@ -344,8 +344,8 @@ void RegionSamplingThread::captureSample() { const uint32_t usage = GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_HW_RENDER | GRALLOC_USAGE_HW_TEXTURE; sp<GraphicBuffer> graphicBuffer = - new GraphicBuffer(sampledBounds.getWidth(), sampledBounds.getHeight(), - PIXEL_FORMAT_RGBA_8888, 1, usage, "RegionSamplingThread"); + sp<GraphicBuffer>::make(sampledBounds.getWidth(), sampledBounds.getHeight(), + PIXEL_FORMAT_RGBA_8888, 1, usage, "RegionSamplingThread"); const status_t bufferStatus = graphicBuffer->initCheck(); LOG_ALWAYS_FATAL_IF(bufferStatus != OK, "captureSample: Buffer failed to allocate: %d", bufferStatus); diff --git a/services/surfaceflinger/Scheduler/EventThread.cpp b/services/surfaceflinger/Scheduler/EventThread.cpp index d152ab2544..d3f53c11e4 100644 --- a/services/surfaceflinger/Scheduler/EventThread.cpp +++ b/services/surfaceflinger/Scheduler/EventThread.cpp @@ -173,7 +173,7 @@ EventThreadConnection::~EventThreadConnection() { void EventThreadConnection::onFirstRef() { // NOTE: mEventThread doesn't hold a strong reference on us - mEventThread->registerDisplayEventConnection(this); + mEventThread->registerDisplayEventConnection(sp<EventThreadConnection>::fromExisting(this)); } binder::Status EventThreadConnection::stealReceiveChannel(gui::BitTube* outChannel) { @@ -188,20 +188,22 @@ binder::Status EventThreadConnection::stealReceiveChannel(gui::BitTube* outChann } binder::Status EventThreadConnection::setVsyncRate(int rate) { - mEventThread->setVsyncRate(static_cast<uint32_t>(rate), this); + mEventThread->setVsyncRate(static_cast<uint32_t>(rate), + sp<EventThreadConnection>::fromExisting(this)); return binder::Status::ok(); } binder::Status EventThreadConnection::requestNextVsync() { ATRACE_CALL(); - mEventThread->requestNextVsync(this); + mEventThread->requestNextVsync(sp<EventThreadConnection>::fromExisting(this)); return binder::Status::ok(); } binder::Status EventThreadConnection::getLatestVsyncEventData( ParcelableVsyncEventData* outVsyncEventData) { ATRACE_CALL(); - outVsyncEventData->vsync = mEventThread->getLatestVsyncEventData(this); + outVsyncEventData->vsync = + mEventThread->getLatestVsyncEventData(sp<EventThreadConnection>::fromExisting(this)); return binder::Status::ok(); } @@ -289,9 +291,9 @@ void EventThread::setDuration(std::chrono::nanoseconds workDuration, sp<EventThreadConnection> EventThread::createEventConnection( ResyncCallback resyncCallback, EventRegistrationFlags eventRegistration) const { - return new EventThreadConnection(const_cast<EventThread*>(this), - IPCThreadState::self()->getCallingUid(), - std::move(resyncCallback), eventRegistration); + return sp<EventThreadConnection>::make(const_cast<EventThread*>(this), + IPCThreadState::self()->getCallingUid(), + std::move(resyncCallback), eventRegistration); } status_t EventThread::registerDisplayEventConnection(const sp<EventThreadConnection>& connection) { diff --git a/services/surfaceflinger/Scheduler/MessageQueue.cpp b/services/surfaceflinger/Scheduler/MessageQueue.cpp index f2af85e94a..e90e387e4b 100644 --- a/services/surfaceflinger/Scheduler/MessageQueue.cpp +++ b/services/surfaceflinger/Scheduler/MessageQueue.cpp @@ -34,7 +34,7 @@ void MessageQueue::Handler::dispatchFrame(int64_t vsyncId, nsecs_t expectedVsync if (!mFramePending.exchange(true)) { mVsyncId = vsyncId; mExpectedVsyncTime = expectedVsyncTime; - mQueue.mLooper->sendMessage(this, Message()); + mQueue.mLooper->sendMessage(sp<MessageHandler>::fromExisting(this), Message()); } } diff --git a/services/surfaceflinger/Scheduler/MessageQueue.h b/services/surfaceflinger/Scheduler/MessageQueue.h index 4082e26874..d3c1e7a2db 100644 --- a/services/surfaceflinger/Scheduler/MessageQueue.h +++ b/services/surfaceflinger/Scheduler/MessageQueue.h @@ -25,6 +25,7 @@ #include <android/gui/IDisplayEventConnection.h> #include <private/gui/BitTube.h> #include <utils/Looper.h> +#include <utils/StrongPointer.h> #include <utils/Timers.h> #include "EventThread.h" @@ -47,6 +48,9 @@ class Task : public MessageHandler { template <typename G> friend auto makeTask(G&&); + template <typename... Args> + friend sp<Task<F>> sp<Task<F>>::make(Args&&... args); + explicit Task(F&& f) : mTask(std::move(f)) {} void handleMessage(const Message&) override { mTask(); } @@ -57,7 +61,7 @@ class Task : public MessageHandler { template <typename F> inline auto makeTask(F&& f) { - sp<Task<F>> task = new Task<F>(std::move(f)); + sp<Task<F>> task = sp<Task<F>>::make(std::move(f)); return std::make_pair(task, task->mTask.get_future()); } diff --git a/services/surfaceflinger/Scheduler/VsyncModulator.cpp b/services/surfaceflinger/Scheduler/VsyncModulator.cpp index be57b2acd7..138d8d65f7 100644 --- a/services/surfaceflinger/Scheduler/VsyncModulator.cpp +++ b/services/surfaceflinger/Scheduler/VsyncModulator.cpp @@ -53,14 +53,14 @@ VsyncModulator::VsyncConfigOpt VsyncModulator::setTransactionSchedule(Transactio case Schedule::EarlyStart: if (token) { mEarlyWakeupRequests.emplace(token); - token->linkToDeath(this); + token->linkToDeath(sp<DeathRecipient>::fromExisting(this)); } else { ALOGW("%s: EarlyStart requested without a valid token", __func__); } break; case Schedule::EarlyEnd: { if (token && mEarlyWakeupRequests.erase(token) > 0) { - token->unlinkToDeath(this); + token->unlinkToDeath(sp<DeathRecipient>::fromExisting(this)); } else { ALOGW("%s: Unexpected EarlyEnd", __func__); } diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index d5a3ebc78a..c99c40ef84 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -334,7 +334,7 @@ SurfaceFlinger::SurfaceFlinger(Factory& factory, SkipInitializationTag) mFrameTimeline(mFactory.createFrameTimeline(mTimeStats, mPid)), mCompositionEngine(mFactory.createCompositionEngine()), mHwcServiceName(base::GetProperty("debug.sf.hwc_service_name"s, "default"s)), - mTunnelModeEnabledReporter(new TunnelModeEnabledReporter()), + mTunnelModeEnabledReporter(sp<TunnelModeEnabledReporter>::make()), mInternalDisplayDensity(getDensityFromProperty("ro.sf.lcd_density", true)), mEmulatedDisplayDensity(getDensityFromProperty("qemu.sf.lcd_density", false)), mPowerAdvisor(std::make_unique<Hwc2::impl::PowerAdvisor>(*this)), @@ -477,7 +477,8 @@ void SurfaceFlinger::binderDied(const wp<IBinder>&) { mBootFinished = false; // Sever the link to inputflinger since it's gone as well. - static_cast<void>(mScheduler->schedule([=] { mInputFlinger = nullptr; })); + static_cast<void>(mScheduler->schedule( + [=] { mInputFlinger = sp<os::IInputFlinger>::fromExisting(nullptr); })); // restore initial conditions (default device unblank, etc) initializeDisplays(); @@ -505,7 +506,7 @@ sp<IBinder> SurfaceFlinger::createDisplay(const String8& displayName, bool secur virtual ~DisplayToken() { // no more references, this display must be terminated Mutex::Autolock _l(flinger->mStateLock); - flinger->mCurrentState.displays.removeItem(this); + flinger->mCurrentState.displays.removeItem(wp<IBinder>::fromExisting(this)); flinger->setTransactionFlags(eDisplayTransactionNeeded); } public: @@ -514,7 +515,7 @@ sp<IBinder> SurfaceFlinger::createDisplay(const String8& displayName, bool secur } }; - sp<BBinder> token = new DisplayToken(this); + sp<BBinder> token = sp<DisplayToken>::make(sp<SurfaceFlinger>::fromExisting(this)); Mutex::Autolock _l(mStateLock); // Display ID is assigned when virtual display is allocated by HWC. @@ -662,7 +663,7 @@ void SurfaceFlinger::bootFinished() { const String16 name("window"); mWindowManager = defaultServiceManager()->getService(name); if (mWindowManager != 0) { - mWindowManager->linkToDeath(static_cast<IBinder::DeathRecipient*>(this)); + mWindowManager->linkToDeath(sp<IBinder::DeathRecipient>::fromExisting(this)); } // stop boot animation @@ -2697,7 +2698,7 @@ void SurfaceFlinger::processDisplayHotplugEventsLocked() { state.isSecure = true; // All physical displays are currently considered secure. state.displayName = std::move(info->name); - sp<IBinder> token = new BBinder(); + sp<IBinder> token = sp<BBinder>::make(); mCurrentState.displays.add(token, state); mPhysicalDisplayTokens.try_emplace(displayId, std::move(token)); mInterceptor->saveDisplayCreation(state); @@ -2743,7 +2744,8 @@ sp<DisplayDevice> SurfaceFlinger::setupNewDisplayDeviceInternal( const DisplayDeviceState& state, const sp<compositionengine::DisplaySurface>& displaySurface, const sp<IGraphicBufferProducer>& producer) { - DisplayDeviceCreationArgs creationArgs(this, getHwComposer(), displayToken, compositionDisplay); + DisplayDeviceCreationArgs creationArgs(sp<SurfaceFlinger>::fromExisting(this), getHwComposer(), + displayToken, compositionDisplay); creationArgs.sequenceId = state.sequenceId; creationArgs.isSecure = state.isSecure; creationArgs.displaySurface = displaySurface; @@ -3142,11 +3144,11 @@ void SurfaceFlinger::commitTransactionsLocked(uint32_t transactionFlags) { mVisibleRegionsDirty = true; mUpdateInputInfo = true; mDrawingState.traverseInZOrder([&](Layer* layer) { - if (mLayersPendingRemoval.indexOf(layer) >= 0) { + if (mLayersPendingRemoval.indexOf(sp<Layer>::fromExisting(layer)) >= 0) { // this layer is not visible anymore Region visibleReg; visibleReg.set(layer->getScreenBounds()); - invalidateLayerStack(layer, visibleReg); + invalidateLayerStack(sp<Layer>::fromExisting(layer), visibleReg); } }); } @@ -3381,8 +3383,9 @@ void SurfaceFlinger::initScheduler(const sp<DisplayDevice>& display) { *mFrameTimeline->getTokenManager(), configs.late.sfWorkDuration); mRegionSamplingThread = - new RegionSamplingThread(*this, RegionSamplingThread::EnvironmentTimingTunables()); - mFpsReporter = new FpsReporter(*mFrameTimeline, *this); + sp<RegionSamplingThread>::make(*this, + RegionSamplingThread::EnvironmentTimingTunables()); + mFpsReporter = sp<FpsReporter>::make(*mFrameTimeline, *this); // Dispatch a mode change request for the primary display on scheduler // initialization, so that the EventThreads always contain a reference to a // prior configuration. @@ -3504,7 +3507,7 @@ bool SurfaceFlinger::latchBuffers() { if (layer->hasReadyFrame()) { frameQueued = true; - mLayersWithQueuedFrames.emplace(layer); + mLayersWithQueuedFrames.emplace(sp<Layer>::fromExisting(layer)); } else { layer->useEmptyDamage(); } @@ -4286,7 +4289,7 @@ uint32_t SurfaceFlinger::setClientStateLocked(const FrameTimelineInfo& frameTime if (layer == nullptr) { for (auto& [listener, callbackIds] : s.listeners) { mTransactionCallbackInvoker.registerUnpresentedCallbackHandle( - new CallbackHandle(listener, callbackIds, s.surface)); + sp<CallbackHandle>::make(listener, callbackIds, s.surface)); } return 0; } @@ -4540,7 +4543,8 @@ uint32_t SurfaceFlinger::setClientStateLocked(const FrameTimelineInfo& frameTime std::vector<sp<CallbackHandle>> callbackHandles; if ((what & layer_state_t::eHasListenerCallbacksChanged) && (!filteredListeners.empty())) { for (auto& [listener, callbackIds] : filteredListeners) { - callbackHandles.emplace_back(new CallbackHandle(listener, callbackIds, s.surface)); + callbackHandles.emplace_back( + sp<CallbackHandle>::make(listener, callbackIds, s.surface)); } } @@ -6404,7 +6408,7 @@ status_t SurfaceFlinger::captureLayers(const LayerCaptureArgs& args, return; } - sp<Layer> p = layer; + auto p = sp<Layer>::fromExisting(layer); while (p != nullptr) { if (excludeLayers.count(p) != 0) { return; @@ -7181,7 +7185,7 @@ binder::Status SurfaceComposerAIDL::createDisplayEventConnection( } binder::Status SurfaceComposerAIDL::createConnection(sp<gui::ISurfaceComposerClient>* outClient) { - const sp<Client> client = new Client(mFlinger); + const sp<Client> client = sp<Client>::make(mFlinger); if (client->initCheck() == NO_ERROR) { *outClient = client; return binder::Status::ok(); diff --git a/services/surfaceflinger/SurfaceFlingerDefaultFactory.cpp b/services/surfaceflinger/SurfaceFlingerDefaultFactory.cpp index eb4c83927c..5c96f35ae7 100644 --- a/services/surfaceflinger/SurfaceFlingerDefaultFactory.cpp +++ b/services/surfaceflinger/SurfaceFlingerDefaultFactory.cpp @@ -56,22 +56,22 @@ std::unique_ptr<scheduler::VsyncConfiguration> DefaultFactory::createVsyncConfig } sp<SurfaceInterceptor> DefaultFactory::createSurfaceInterceptor() { - return new android::impl::SurfaceInterceptor(); + return sp<android::impl::SurfaceInterceptor>::make(); } sp<StartPropertySetThread> DefaultFactory::createStartPropertySetThread( bool timestampPropertyValue) { - return new StartPropertySetThread(timestampPropertyValue); + return sp<StartPropertySetThread>::make(timestampPropertyValue); } sp<DisplayDevice> DefaultFactory::createDisplayDevice(DisplayDeviceCreationArgs& creationArgs) { - return new DisplayDevice(creationArgs); + return sp<DisplayDevice>::make(creationArgs); } sp<GraphicBuffer> DefaultFactory::createGraphicBuffer(uint32_t width, uint32_t height, PixelFormat format, uint32_t layerCount, uint64_t usage, std::string requestorName) { - return new GraphicBuffer(width, height, format, layerCount, usage, requestorName); + return sp<GraphicBuffer>::make(width, height, format, layerCount, usage, requestorName); } void DefaultFactory::createBufferQueue(sp<IGraphicBufferProducer>* outProducer, @@ -90,11 +90,11 @@ std::unique_ptr<compositionengine::CompositionEngine> DefaultFactory::createComp } sp<BufferStateLayer> DefaultFactory::createBufferStateLayer(const LayerCreationArgs& args) { - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); } sp<EffectLayer> DefaultFactory::createEffectLayer(const LayerCreationArgs& args) { - return new EffectLayer(args); + return sp<EffectLayer>::make(args); } std::unique_ptr<FrameTracer> DefaultFactory::createFrameTracer() { diff --git a/services/surfaceflinger/SurfaceFlingerFactory.cpp b/services/surfaceflinger/SurfaceFlingerFactory.cpp index 3997b04f5f..7bd6cf69f3 100644 --- a/services/surfaceflinger/SurfaceFlingerFactory.cpp +++ b/services/surfaceflinger/SurfaceFlingerFactory.cpp @@ -26,7 +26,7 @@ namespace android::surfaceflinger { sp<SurfaceFlinger> createSurfaceFlinger() { static DefaultFactory factory; - return new SurfaceFlinger(factory); + return sp<SurfaceFlinger>::make(factory); } } // namespace android::surfaceflinger diff --git a/services/surfaceflinger/SurfaceInterceptor.cpp b/services/surfaceflinger/SurfaceInterceptor.cpp index 0782fef8ea..66691c2a31 100644 --- a/services/surfaceflinger/SurfaceInterceptor.cpp +++ b/services/surfaceflinger/SurfaceInterceptor.cpp @@ -46,7 +46,7 @@ void SurfaceInterceptor::addTransactionTraceListener( std::scoped_lock lock(mListenersMutex); - asBinder->linkToDeath(this); + asBinder->linkToDeath(sp<DeathRecipient>::fromExisting(this)); listener->onToggled(mEnabled); // notifies of current state @@ -115,8 +115,9 @@ void SurfaceInterceptor::saveExistingSurfacesLocked(const SortedVector<sp<Layer> ATRACE_CALL(); for (const auto& l : layers) { l->traverseInZOrder(LayerVector::StateSet::Drawing, [this](Layer* layer) { - addSurfaceCreationLocked(createTraceIncrementLocked(), layer); - addInitialSurfaceStateLocked(createTraceIncrementLocked(), layer); + addSurfaceCreationLocked(createTraceIncrementLocked(), sp<Layer>::fromExisting(layer)); + addInitialSurfaceStateLocked(createTraceIncrementLocked(), + sp<Layer>::fromExisting(layer)); }); } } diff --git a/services/surfaceflinger/Tracing/TransactionProtoParser.cpp b/services/surfaceflinger/Tracing/TransactionProtoParser.cpp index 65918f6ab7..77dec6f7fb 100644 --- a/services/surfaceflinger/Tracing/TransactionProtoParser.cpp +++ b/services/surfaceflinger/Tracing/TransactionProtoParser.cpp @@ -457,9 +457,9 @@ void TransactionProtoParser::fromProto(const proto::LayerState& proto, layer_sta layer.parentSurfaceControlForChild = nullptr; } else { layer.parentSurfaceControlForChild = - new SurfaceControl(SurfaceComposerClient::getDefault(), - mMapper->getLayerHandle(static_cast<int32_t>(layerId)), - static_cast<int32_t>(layerId)); + sp<SurfaceControl>::make(SurfaceComposerClient::getDefault(), + mMapper->getLayerHandle(static_cast<int32_t>(layerId)), + static_cast<int32_t>(layerId)); } } if (proto.what() & layer_state_t::eRelativeLayerChanged) { @@ -468,9 +468,9 @@ void TransactionProtoParser::fromProto(const proto::LayerState& proto, layer_sta layer.relativeLayerSurfaceControl = nullptr; } else { layer.relativeLayerSurfaceControl = - new SurfaceControl(SurfaceComposerClient::getDefault(), - mMapper->getLayerHandle(static_cast<int32_t>(layerId)), - static_cast<int32_t>(layerId)); + sp<SurfaceControl>::make(SurfaceComposerClient::getDefault(), + mMapper->getLayerHandle(static_cast<int32_t>(layerId)), + static_cast<int32_t>(layerId)); } layer.z = proto.z(); } @@ -502,7 +502,7 @@ void TransactionProtoParser::fromProto(const proto::LayerState& proto, layer_sta inputInfo.touchableRegionCropHandle = mMapper->getLayerHandle(static_cast<int32_t>(layerId)); } else { - inputInfo.touchableRegionCropHandle = nullptr; + inputInfo.touchableRegionCropHandle = wp<IBinder>(); } layer.windowInfoHandle = sp<gui::WindowInfoHandle>::make(inputInfo); diff --git a/services/surfaceflinger/Tracing/tools/LayerTraceGenerator.cpp b/services/surfaceflinger/Tracing/tools/LayerTraceGenerator.cpp index 1c06c92c17..ca642fbee9 100644 --- a/services/surfaceflinger/Tracing/tools/LayerTraceGenerator.cpp +++ b/services/surfaceflinger/Tracing/tools/LayerTraceGenerator.cpp @@ -48,23 +48,23 @@ public: } sp<SurfaceInterceptor> createSurfaceInterceptor() override { - return new android::impl::SurfaceInterceptor(); + return sp<android::impl::SurfaceInterceptor>::make(); } sp<StartPropertySetThread> createStartPropertySetThread( bool /* timestampPropertyValue */) override { - return nullptr; + return sp<StartPropertySetThread>(); } sp<DisplayDevice> createDisplayDevice(DisplayDeviceCreationArgs& /* creationArgs */) override { - return nullptr; + return sp<DisplayDevice>(); } sp<GraphicBuffer> createGraphicBuffer(uint32_t /* width */, uint32_t /* height */, PixelFormat /* format */, uint32_t /* layerCount */, uint64_t /* usage */, std::string /* requestorName */) override { - return nullptr; + return sp<GraphicBuffer>(); } void createBufferQueue(sp<IGraphicBufferProducer>* /* outProducer */, @@ -81,11 +81,11 @@ public: } sp<BufferStateLayer> createBufferStateLayer(const LayerCreationArgs& args) { - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); } sp<EffectLayer> createEffectLayer(const LayerCreationArgs& args) { - return new EffectLayer(args); + return sp<EffectLayer>::make(args); } std::unique_ptr<FrameTracer> createFrameTracer() override { @@ -174,7 +174,7 @@ bool LayerTraceGenerator::generate(const proto::TransactionTraceFile& traceFile, } Factory mFactory; - sp<MockSurfaceFlinger> flinger = new MockSurfaceFlinger(mFactory); + sp<MockSurfaceFlinger> flinger = sp<MockSurfaceFlinger>::make(mFactory); TestableSurfaceFlinger mFlinger(flinger); mFlinger.setupRenderEngine( std::make_unique<testing::NiceMock<renderengine::mock::RenderEngine>>()); diff --git a/services/surfaceflinger/TunnelModeEnabledReporter.cpp b/services/surfaceflinger/TunnelModeEnabledReporter.cpp index 4497cafa58..bc9b870075 100644 --- a/services/surfaceflinger/TunnelModeEnabledReporter.cpp +++ b/services/surfaceflinger/TunnelModeEnabledReporter.cpp @@ -59,7 +59,7 @@ void TunnelModeEnabledReporter::binderDied(const wp<IBinder>& who) { void TunnelModeEnabledReporter::addListener(const sp<gui::ITunnelModeEnabledListener>& listener) { sp<IBinder> asBinder = IInterface::asBinder(listener); - asBinder->linkToDeath(this); + asBinder->linkToDeath(sp<DeathRecipient>::fromExisting(this)); bool tunnelModeEnabled = false; { std::scoped_lock lock(mMutex); diff --git a/services/surfaceflinger/WindowInfosListenerInvoker.cpp b/services/surfaceflinger/WindowInfosListenerInvoker.cpp index 4a8f157de1..a1313e3a03 100644 --- a/services/surfaceflinger/WindowInfosListenerInvoker.cpp +++ b/services/surfaceflinger/WindowInfosListenerInvoker.cpp @@ -62,7 +62,7 @@ private: void WindowInfosListenerInvoker::addWindowInfosListener(sp<IWindowInfosListener> listener) { sp<IBinder> asBinder = IInterface::asBinder(listener); - asBinder->linkToDeath(this); + asBinder->linkToDeath(sp<DeathRecipient>::fromExisting(this)); std::scoped_lock lock(mListenersMutex); mWindowInfosListeners.try_emplace(asBinder, std::move(listener)); @@ -73,7 +73,7 @@ void WindowInfosListenerInvoker::removeWindowInfosListener( sp<IBinder> asBinder = IInterface::asBinder(listener); std::scoped_lock lock(mListenersMutex); - asBinder->unlinkToDeath(this); + asBinder->unlinkToDeath(sp<DeathRecipient>::fromExisting(this)); mWindowInfosListeners.erase(asBinder); } diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_displayhardware_fuzzer.cpp b/services/surfaceflinger/fuzzer/surfaceflinger_displayhardware_fuzzer.cpp index a605a2fd9b..b17e2c81aa 100644 --- a/services/surfaceflinger/fuzzer/surfaceflinger_displayhardware_fuzzer.cpp +++ b/services/surfaceflinger/fuzzer/surfaceflinger_displayhardware_fuzzer.cpp @@ -480,8 +480,8 @@ void DisplayHardwareFuzzer::invokeFrameBufferSurface() { BufferQueue::createBufferQueue(&bqProducer, &bqConsumer); sp<FramebufferSurface> surface = - new FramebufferSurface(mHwc, mPhysicalDisplayId, bqConsumer, getFuzzedSize() /*size*/, - getFuzzedSize() /*maxSize*/); + sp<FramebufferSurface>::make(mHwc, mPhysicalDisplayId, bqConsumer, + getFuzzedSize() /*size*/, getFuzzedSize() /*maxSize*/); surface->beginFrame(mFdp.ConsumeBool()); surface->prepareFrame(mFdp.PickValueInArray(kCompositionTypes)); @@ -497,15 +497,15 @@ void DisplayHardwareFuzzer::invokeVirtualDisplaySurface() { DisplayIdGenerator<HalVirtualDisplayId> mGenerator; VirtualDisplayId VirtualDisplayId = mGenerator.generateId().value(); - sp<SurfaceComposerClient> mClient = new SurfaceComposerClient(); + sp<SurfaceComposerClient> mClient = sp<SurfaceComposerClient>::make(); sp<SurfaceControl> mSurfaceControl = mClient->createSurface(String8("TestSurface"), 100, 100, PIXEL_FORMAT_RGBA_8888, ISurfaceComposerClient::eFXSurfaceBufferState, /*parent*/ nullptr); - sp<BLASTBufferQueue> mBlastBufferQueueAdapter = - new BLASTBufferQueue("TestBLASTBufferQueue", mSurfaceControl, 100, 100, - PIXEL_FORMAT_RGBA_8888); + auto mBlastBufferQueueAdapter = + sp<BLASTBufferQueue>::make("TestBLASTBufferQueue", mSurfaceControl, 100, 100, + PIXEL_FORMAT_RGBA_8888); sp<IGraphicBufferProducer> sink = mBlastBufferQueueAdapter->getIGraphicBufferProducer(); sp<IGraphicBufferProducer> bqProducer = mBlastBufferQueueAdapter->getIGraphicBufferProducer(); @@ -513,9 +513,9 @@ void DisplayHardwareFuzzer::invokeVirtualDisplaySurface() { BufferQueue::createBufferQueue(&bqProducer, &bqConsumer); BufferQueue::createBufferQueue(&sink, &bqConsumer); - sp<VirtualDisplaySurface> surface = - new VirtualDisplaySurface(mHwc, VirtualDisplayId, sink, bqProducer, bqConsumer, - mFdp.ConsumeRandomLengthString().c_str() /*name*/); + auto surface = + sp<VirtualDisplaySurface>::make(mHwc, VirtualDisplayId, sink, bqProducer, bqConsumer, + mFdp.ConsumeRandomLengthString().c_str() /*name*/); surface->beginFrame(mFdp.ConsumeBool()); surface->prepareFrame(mFdp.PickValueInArray(kCompositionTypes)); @@ -565,7 +565,7 @@ void DisplayHardwareFuzzer::invokeComposer() { mHwc.getLayerReleaseFence(halDisplayID, layer); - mHwc.setOutputBuffer(halVirtualDisplayId, sp<Fence>::make().get(), sp<GraphicBuffer>::make()); + mHwc.setOutputBuffer(halVirtualDisplayId, sp<Fence>::make(), sp<GraphicBuffer>::make()); mHwc.clearReleaseFences(halDisplayID); diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzer.cpp b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzer.cpp index 8e60247c2d..cf4cd809b1 100644 --- a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzer.cpp +++ b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzer.cpp @@ -103,7 +103,7 @@ static constexpr uint32_t kMaxCode = 1050; class SurfaceFlingerFuzzer { public: SurfaceFlingerFuzzer(const uint8_t *data, size_t size) : mFdp(data, size) { - mFlinger = mTestableFlinger.flinger(); + mFlinger = sp<SurfaceFlinger>::fromExisting(mTestableFlinger.flinger()); }; void process(const uint8_t *data, size_t size); diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h index 7152571cd3..75ebed9f1f 100644 --- a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h +++ b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h @@ -305,21 +305,21 @@ public: } sp<SurfaceInterceptor> createSurfaceInterceptor() override { - return new android::impl::SurfaceInterceptor(); + return sp<android::impl::SurfaceInterceptor>::make(); } sp<StartPropertySetThread> createStartPropertySetThread(bool timestampPropertyValue) override { - return new StartPropertySetThread(timestampPropertyValue); + return sp<StartPropertySetThread>::make(timestampPropertyValue); } sp<DisplayDevice> createDisplayDevice(DisplayDeviceCreationArgs &creationArgs) override { - return new DisplayDevice(creationArgs); + return sp<DisplayDevice>::make(creationArgs); } sp<GraphicBuffer> createGraphicBuffer(uint32_t width, uint32_t height, PixelFormat format, uint32_t layerCount, uint64_t usage, std::string requestorName) override { - return new GraphicBuffer(width, height, format, layerCount, usage, requestorName); + return sp<GraphicBuffer>::make(width, height, format, layerCount, usage, requestorName); } void createBufferQueue(sp<IGraphicBufferProducer> *outProducer, @@ -347,7 +347,7 @@ public: } sp<EffectLayer> createEffectLayer(const LayerCreationArgs &args) override { - return new EffectLayer(args); + return sp<EffectLayer>::make(args); } std::unique_ptr<FrameTracer> createFrameTracer() override { @@ -520,7 +520,7 @@ public: sp<IBinder> fuzzBoot(FuzzedDataProvider *fdp) { mFlinger->callingThreadHasUnscopedSurfaceFlingerAccess(fdp->ConsumeBool()); - const sp<Client> client = new Client(mFlinger); + const sp<Client> client = sp<Client>::make(mFlinger); DisplayIdGenerator<HalVirtualDisplayId> kGenerator; HalVirtualDisplayId halVirtualDisplayId = kGenerator.generateId().value(); @@ -776,7 +776,8 @@ private: void triggerOnFrameRateOverridesChanged() override {} surfaceflinger::test::Factory mFactory; - sp<SurfaceFlinger> mFlinger = new SurfaceFlinger(mFactory, SurfaceFlinger::SkipInitialization); + sp<SurfaceFlinger> mFlinger = + sp<SurfaceFlinger>::make(mFactory, SurfaceFlinger::SkipInitialization); scheduler::TestableScheduler *mScheduler = nullptr; std::shared_ptr<scheduler::RefreshRateConfigs> mRefreshRateConfigs; }; diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_layer_fuzzer.cpp b/services/surfaceflinger/fuzzer/surfaceflinger_layer_fuzzer.cpp index ed94e76fd0..aeccc522f3 100644 --- a/services/surfaceflinger/fuzzer/surfaceflinger_layer_fuzzer.cpp +++ b/services/surfaceflinger/fuzzer/surfaceflinger_layer_fuzzer.cpp @@ -77,7 +77,7 @@ LayerCreationArgs LayerFuzzer::createLayerCreationArgs(TestableSurfaceFlinger* f void LayerFuzzer::invokeEffectLayer() { TestableSurfaceFlinger flinger; - sp<Client> client = sp<Client>::make(flinger.flinger()); + sp<Client> client = sp<Client>::make(sp<SurfaceFlinger>::fromExisting(flinger.flinger())); const LayerCreationArgs layerCreationArgs = createLayerCreationArgs(&flinger, client); sp<EffectLayer> effectLayer = sp<EffectLayer>::make(layerCreationArgs); @@ -109,7 +109,7 @@ void LayerFuzzer::invokeEffectLayer() { void LayerFuzzer::invokeBufferStateLayer() { TestableSurfaceFlinger flinger; - sp<Client> client = sp<Client>::make(flinger.flinger()); + sp<Client> client = sp<Client>::make(sp<SurfaceFlinger>::fromExisting(flinger.flinger())); sp<BufferStateLayer> layer = sp<BufferStateLayer>::make(createLayerCreationArgs(&flinger, client)); sp<Fence> fence = sp<Fence>::make(); diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_scheduler_fuzzer.cpp b/services/surfaceflinger/fuzzer/surfaceflinger_scheduler_fuzzer.cpp index 95219b5f42..f507ef0d1a 100644 --- a/services/surfaceflinger/fuzzer/surfaceflinger_scheduler_fuzzer.cpp +++ b/services/surfaceflinger/fuzzer/surfaceflinger_scheduler_fuzzer.cpp @@ -96,8 +96,8 @@ void SchedulerFuzzer::fuzzEventThread() { thread->onHotplugReceived(getPhysicalDisplayId(), mFdp.ConsumeBool()); sp<EventThreadConnection> connection = - new EventThreadConnection(thread.get(), mFdp.ConsumeIntegral<uint16_t>(), nullptr, - {} /*eventRegistration*/); + sp<EventThreadConnection>::make(thread.get(), mFdp.ConsumeIntegral<uint16_t>(), + nullptr); thread->requestNextVsync(connection); thread->setVsyncRate(mFdp.ConsumeIntegral<uint32_t>() /*rate*/, connection); @@ -227,8 +227,8 @@ void SchedulerFuzzer::fuzzLayerHistory() { nsecs_t time2 = time1; uint8_t historySize = mFdp.ConsumeIntegral<uint8_t>(); - sp<FuzzImplLayer> layer1 = new FuzzImplLayer(flinger.flinger()); - sp<FuzzImplLayer> layer2 = new FuzzImplLayer(flinger.flinger()); + sp<FuzzImplLayer> layer1 = sp<FuzzImplLayer>::make(flinger.flinger()); + sp<FuzzImplLayer> layer2 = sp<FuzzImplLayer>::make(flinger.flinger()); for (int i = 0; i < historySize; ++i) { historyV1.record(layer1.get(), time1, time1, @@ -263,7 +263,7 @@ void SchedulerFuzzer::fuzzVSyncReactor() { reactor.addHwVsyncTimestamp(0, std::nullopt, &periodFlushed); reactor.addHwVsyncTimestamp(mFdp.ConsumeIntegral<nsecs_t>() /*newPeriod*/, std::nullopt, &periodFlushed); - sp<Fence> fence = new Fence(memfd_create("fd", MFD_ALLOW_SEALING)); + sp<Fence> fence = sp<Fence>::make(memfd_create("fd", MFD_ALLOW_SEALING)); std::shared_ptr<FenceTime> ft = std::make_shared<FenceTime>(fence); vSyncTracker->addVsyncTimestamp(mFdp.ConsumeIntegral<nsecs_t>()); FenceTime::Snapshot snap(mFdp.ConsumeIntegral<nsecs_t>()); @@ -322,7 +322,7 @@ void SchedulerFuzzer::fuzzRefreshRateSelection() { LayerCreationArgs args(flinger.flinger(), client, mFdp.ConsumeRandomLengthString(kRandomStringLength) /*name*/, mFdp.ConsumeIntegral<uint16_t>() /*layerFlags*/, LayerMetadata()); - sp<Layer> layer = new BufferStateLayer(args); + sp<Layer> layer = sp<BufferStateLayer>::make(args); layer->setFrameRateSelectionPriority(mFdp.ConsumeIntegral<int16_t>()); } diff --git a/services/surfaceflinger/main_surfaceflinger.cpp b/services/surfaceflinger/main_surfaceflinger.cpp index ec180548e1..fedd71e921 100644 --- a/services/surfaceflinger/main_surfaceflinger.cpp +++ b/services/surfaceflinger/main_surfaceflinger.cpp @@ -67,7 +67,7 @@ static void startDisplayService() { using android::frameworks::displayservice::V1_0::implementation::DisplayService; using android::frameworks::displayservice::V1_0::IDisplayService; - sp<IDisplayService> displayservice = new DisplayService(); + sp<IDisplayService> displayservice = sp<DisplayService>::make(); status_t err = displayservice->registerAsService(); // b/141930622 @@ -153,7 +153,7 @@ int main(int, char**) { IServiceManager::DUMP_FLAG_PRIORITY_CRITICAL | IServiceManager::DUMP_FLAG_PROTO); // publish gui::ISurfaceComposer, the new AIDL interface - sp<SurfaceComposerAIDL> composerAIDL = new SurfaceComposerAIDL(flinger); + sp<SurfaceComposerAIDL> composerAIDL = sp<SurfaceComposerAIDL>::make(flinger); sm->addService(String16("SurfaceFlingerAIDL"), composerAIDL, false, IServiceManager::DUMP_FLAG_PRIORITY_CRITICAL | IServiceManager::DUMP_FLAG_PROTO); diff --git a/services/surfaceflinger/tests/BufferGenerator.cpp b/services/surfaceflinger/tests/BufferGenerator.cpp index 47a150dd35..d74bd55987 100644 --- a/services/surfaceflinger/tests/BufferGenerator.cpp +++ b/services/surfaceflinger/tests/BufferGenerator.cpp @@ -70,12 +70,13 @@ public: consumer->setDefaultBufferSize(width, height); consumer->setDefaultBufferFormat(format); - mBufferItemConsumer = new BufferItemConsumer(consumer, GraphicBuffer::USAGE_HW_TEXTURE); + mBufferItemConsumer = + sp<BufferItemConsumer>::make(consumer, GraphicBuffer::USAGE_HW_TEXTURE); - mListener = new BufferListener(consumer, callback); + mListener = sp<BufferListener>::make(consumer, callback); mBufferItemConsumer->setFrameAvailableListener(mListener); - mSurface = new Surface(producer, true); + mSurface = sp<Surface>::make(producer, true); } /* Used by Egl manager. The surface is never displayed. */ @@ -364,7 +365,7 @@ status_t BufferGenerator::get(sp<GraphicBuffer>* outBuffer, sp<Fence>* outFence) *outBuffer = mGraphicBuffer; } if (outFence) { - *outFence = new Fence(mFence); + *outFence = sp<Fence>::make(mFence); } else { close(mFence); } diff --git a/services/surfaceflinger/tests/Credentials_test.cpp b/services/surfaceflinger/tests/Credentials_test.cpp index 8a443b823d..353b8139ca 100644 --- a/services/surfaceflinger/tests/Credentials_test.cpp +++ b/services/surfaceflinger/tests/Credentials_test.cpp @@ -77,7 +77,7 @@ protected: sp<SurfaceControl> mVirtualSurfaceControl; void initClient() { - mComposerClient = new SurfaceComposerClient; + mComposerClient = sp<SurfaceComposerClient>::make(); ASSERT_EQ(NO_ERROR, mComposerClient->initCheck()); } @@ -169,7 +169,7 @@ TEST_F(CredentialsTest, ClientInitTest) { // Anyone else can init the client. setBinUID(); - mComposerClient = new SurfaceComposerClient; + mComposerClient = sp<SurfaceComposerClient>::make(); ASSERT_NO_FATAL_FAILURE(initClient()); } diff --git a/services/surfaceflinger/tests/IPC_test.cpp b/services/surfaceflinger/tests/IPC_test.cpp index ce94dab907..c63d251c31 100644 --- a/services/surfaceflinger/tests/IPC_test.cpp +++ b/services/surfaceflinger/tests/IPC_test.cpp @@ -136,7 +136,7 @@ public: } status_t initClient() override { - mClient = new SurfaceComposerClient; + mClient = sp<SurfaceComposerClient>::make(); auto err = mClient->initCheck(); return err; } @@ -221,7 +221,7 @@ public: ProcessState::self()->startThreadPool(); } void SetUp() { - mClient = new SurfaceComposerClient; + mClient = sp<SurfaceComposerClient>::make(); ASSERT_EQ(NO_ERROR, mClient->initCheck()); mPrimaryDisplay = mClient->getInternalDisplayToken(); diff --git a/services/surfaceflinger/tests/InvalidHandles_test.cpp b/services/surfaceflinger/tests/InvalidHandles_test.cpp index 023133f2c3..741b6f73e5 100644 --- a/services/surfaceflinger/tests/InvalidHandles_test.cpp +++ b/services/surfaceflinger/tests/InvalidHandles_test.cpp @@ -42,13 +42,13 @@ protected: sp<SurfaceComposerClient> mScc; sp<SurfaceControl> mNotSc; void SetUp() override { - mScc = new SurfaceComposerClient; + mScc = sp<SurfaceComposerClient>::make(); ASSERT_EQ(NO_ERROR, mScc->initCheck()); mNotSc = makeNotSurfaceControl(); } sp<SurfaceControl> makeNotSurfaceControl() { - return new SurfaceControl(mScc, new NotALayer(), 1); + return sp<SurfaceControl>::make(mScc, sp<NotALayer>::make(), 1); } }; diff --git a/services/surfaceflinger/tests/LayerBorder_test.cpp b/services/surfaceflinger/tests/LayerBorder_test.cpp index f80c7055da..0d55ec1dcf 100644 --- a/services/surfaceflinger/tests/LayerBorder_test.cpp +++ b/services/surfaceflinger/tests/LayerBorder_test.cpp @@ -228,10 +228,11 @@ TEST_F(LayerBorderTest, BufferStateLayer) { mContainerLayer->getHandle()); sp<GraphicBuffer> buffer = - new GraphicBuffer(400, 400, PIXEL_FORMAT_RGBA_8888, 1, - BufferUsage::CPU_READ_OFTEN | BufferUsage::CPU_WRITE_OFTEN | - BufferUsage::COMPOSER_OVERLAY | BufferUsage::GPU_TEXTURE, - "test"); + sp<GraphicBuffer>::make(400u, 400u, PIXEL_FORMAT_RGBA_8888, 1u, + BufferUsage::CPU_READ_OFTEN | BufferUsage::CPU_WRITE_OFTEN | + BufferUsage::COMPOSER_OVERLAY | + BufferUsage::GPU_TEXTURE, + "test"); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 200, 200), Color::GREEN); TransactionUtils::fillGraphicBufferColor(buffer, Rect(200, 200, 400, 400), Color::BLUE); diff --git a/services/surfaceflinger/tests/LayerCallback_test.cpp b/services/surfaceflinger/tests/LayerCallback_test.cpp index c8df0a09be..1460fe1ce9 100644 --- a/services/surfaceflinger/tests/LayerCallback_test.cpp +++ b/services/surfaceflinger/tests/LayerCallback_test.cpp @@ -442,8 +442,8 @@ TEST_F(LayerCallbackTest, Merge_SameLayer) { } TEST_F(LayerCallbackTest, Merge_DifferentClients) { - sp<SurfaceComposerClient> client1(new SurfaceComposerClient), - client2(new SurfaceComposerClient); + sp<SurfaceComposerClient> client1(sp<SurfaceComposerClient>::make()), + client2(sp<SurfaceComposerClient>::make()); ASSERT_EQ(NO_ERROR, client1->initCheck()) << "failed to create SurfaceComposerClient"; ASSERT_EQ(NO_ERROR, client2->initCheck()) << "failed to create SurfaceComposerClient"; @@ -620,8 +620,8 @@ TEST_F(LayerCallbackTest, MultipleTransactions_Merge) { } TEST_F(LayerCallbackTest, MultipleTransactions_Merge_DifferentClients) { - sp<SurfaceComposerClient> client1(new SurfaceComposerClient), - client2(new SurfaceComposerClient); + sp<SurfaceComposerClient> client1(sp<SurfaceComposerClient>::make()), + client2(sp<SurfaceComposerClient>::make()); ASSERT_EQ(NO_ERROR, client1->initCheck()) << "failed to create SurfaceComposerClient"; ASSERT_EQ(NO_ERROR, client2->initCheck()) << "failed to create SurfaceComposerClient"; @@ -669,8 +669,8 @@ TEST_F(LayerCallbackTest, MultipleTransactions_Merge_DifferentClients) { } TEST_F(LayerCallbackTest, MultipleTransactions_Merge_DifferentClients_NoStateChange) { - sp<SurfaceComposerClient> client1(new SurfaceComposerClient), - client2(new SurfaceComposerClient); + sp<SurfaceComposerClient> client1(sp<SurfaceComposerClient>::make()), + client2(sp<SurfaceComposerClient>::make()); ASSERT_EQ(NO_ERROR, client1->initCheck()) << "failed to create SurfaceComposerClient"; ASSERT_EQ(NO_ERROR, client2->initCheck()) << "failed to create SurfaceComposerClient"; @@ -730,8 +730,8 @@ TEST_F(LayerCallbackTest, MultipleTransactions_Merge_DifferentClients_NoStateCha } TEST_F(LayerCallbackTest, MultipleTransactions_Merge_DifferentClients_SameStateChange) { - sp<SurfaceComposerClient> client1(new SurfaceComposerClient), - client2(new SurfaceComposerClient); + sp<SurfaceComposerClient> client1(sp<SurfaceComposerClient>::make()), + client2(sp<SurfaceComposerClient>::make()); ASSERT_EQ(NO_ERROR, client1->initCheck()) << "failed to create SurfaceComposerClient"; ASSERT_EQ(NO_ERROR, client2->initCheck()) << "failed to create SurfaceComposerClient"; diff --git a/services/surfaceflinger/tests/LayerRenderTypeTransaction_test.cpp b/services/surfaceflinger/tests/LayerRenderTypeTransaction_test.cpp index 0e2bc3df0e..bbe7ae80ce 100644 --- a/services/surfaceflinger/tests/LayerRenderTypeTransaction_test.cpp +++ b/services/surfaceflinger/tests/LayerRenderTypeTransaction_test.cpp @@ -328,7 +328,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetTransparentRegionHintBasic_BufferState layer = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); sp<GraphicBuffer> buffer = - new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); ASSERT_NO_FATAL_FAILURE( TransactionUtils::fillGraphicBufferColor(buffer, top, Color::TRANSPARENT)); @@ -352,7 +352,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetTransparentRegionHintBasic_BufferState shot->expectColor(bottom, Color::BLACK); } - buffer = new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + buffer = sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); ASSERT_NO_FATAL_FAILURE(TransactionUtils::fillGraphicBufferColor(buffer, top, Color::RED)); ASSERT_NO_FATAL_FAILURE( @@ -894,7 +894,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetCropOutOfBounds_BufferState) { ASSERT_NO_FATAL_FAILURE( layer = createLayer("test", 32, 64, ISurfaceComposerClient::eFXSurfaceBufferState)); sp<GraphicBuffer> buffer = - new GraphicBuffer(32, 64, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + sp<GraphicBuffer>::make(32, 64, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 16), Color::BLUE); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 16, 32, 64), Color::RED); @@ -1197,7 +1197,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetBufferCaching_BufferState) { size_t idx = 0; for (auto& buffer : buffers) { - buffer = new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + buffer = sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); Color color = colors[idx % colors.size()]; TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 32), color); idx++; @@ -1230,7 +1230,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetBufferCaching_LeastRecentlyUsed_Buffer size_t idx = 0; for (auto& buffer : buffers) { - buffer = new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + buffer = sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); Color color = colors[idx % colors.size()]; TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 32), color); idx++; @@ -1263,7 +1263,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetBufferCaching_DestroyedBuffer_BufferSt size_t idx = 0; for (auto& buffer : buffers) { - buffer = new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + buffer = sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); Color color = colors[idx % colors.size()]; TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 32), color); idx++; @@ -1344,7 +1344,7 @@ TEST_P(LayerRenderTypeTransactionTest, DISABLED_SetFenceBasic_BufferState) { layer = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); sp<GraphicBuffer> buffer = - new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 32), Color::RED); sp<Fence> fence; @@ -1370,7 +1370,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetFenceNull_BufferState) { layer = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); sp<GraphicBuffer> buffer = - new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 32), Color::RED); sp<Fence> fence = Fence::NO_FENCE; @@ -1388,7 +1388,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetDataspaceBasic_BufferState) { layer = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); sp<GraphicBuffer> buffer = - new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 32), Color::RED); Transaction().setBuffer(layer, buffer).setDataspace(layer, ui::Dataspace::UNKNOWN).apply(); @@ -1404,7 +1404,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetHdrMetadataBasic_BufferState) { layer = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); sp<GraphicBuffer> buffer = - new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 32), Color::RED); HdrMetadata hdrMetadata; @@ -1422,7 +1422,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetSurfaceDamageRegionBasic_BufferState) layer = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); sp<GraphicBuffer> buffer = - new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 32), Color::RED); Region region; @@ -1440,7 +1440,7 @@ TEST_P(LayerRenderTypeTransactionTest, SetApiBasic_BufferState) { layer = createLayer("test", 32, 32, ISurfaceComposerClient::eFXSurfaceBufferState)); sp<GraphicBuffer> buffer = - new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, kUsageFlags, "test"); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, 32, 32), Color::RED); Transaction().setBuffer(layer, buffer).setApi(layer, NATIVE_WINDOW_API_CPU).apply(); diff --git a/services/surfaceflinger/tests/LayerState_test.cpp b/services/surfaceflinger/tests/LayerState_test.cpp index 094b0ffc0f..fbbf322732 100644 --- a/services/surfaceflinger/tests/LayerState_test.cpp +++ b/services/surfaceflinger/tests/LayerState_test.cpp @@ -35,7 +35,7 @@ TEST(LayerStateTest, ParcellingDisplayCaptureArgs) { args.frameScaleX = 2; args.frameScaleY = 4; args.captureSecureLayers = true; - args.displayToken = new BBinder(); + args.displayToken = sp<BBinder>::make(); args.width = 10; args.height = 20; args.useIdentityTransform = true; @@ -67,8 +67,8 @@ TEST(LayerStateTest, ParcellingLayerCaptureArgs) { args.frameScaleX = 2; args.frameScaleY = 4; args.captureSecureLayers = true; - args.layerHandle = new BBinder(); - args.excludeHandles = {new BBinder(), new BBinder()}; + args.layerHandle = sp<BBinder>::make(); + args.excludeHandles = {sp<BBinder>::make(), sp<BBinder>::make()}; args.childrenOnly = false; args.grayscale = true; @@ -92,8 +92,8 @@ TEST(LayerStateTest, ParcellingLayerCaptureArgs) { TEST(LayerStateTest, ParcellingScreenCaptureResults) { ScreenCaptureResults results; - results.buffer = new GraphicBuffer(100, 200, PIXEL_FORMAT_RGBA_8888, 1, 0); - results.fence = new Fence(dup(fileno(tmpfile()))); + results.buffer = sp<GraphicBuffer>::make(100u, 200u, PIXEL_FORMAT_RGBA_8888, 1u, 0u); + results.fence = sp<Fence>::make(dup(fileno(tmpfile()))); results.capturedSecureLayers = true; results.capturedDataspace = ui::Dataspace::DISPLAY_P3; results.result = BAD_VALUE; diff --git a/services/surfaceflinger/tests/LayerTransactionTest.h b/services/surfaceflinger/tests/LayerTransactionTest.h index b46db65f84..4b9160580f 100644 --- a/services/surfaceflinger/tests/LayerTransactionTest.h +++ b/services/surfaceflinger/tests/LayerTransactionTest.h @@ -41,7 +41,7 @@ using android::hardware::graphics::common::V1_1::BufferUsage; class LayerTransactionTest : public ::testing::Test { protected: void SetUp() override { - mClient = new SurfaceComposerClient; + mClient = sp<SurfaceComposerClient>::make(); ASSERT_EQ(NO_ERROR, mClient->initCheck()) << "failed to create SurfaceComposerClient"; ASSERT_NO_FATAL_FAILURE(SetUpDisplay()); @@ -140,10 +140,13 @@ protected: virtual void fillBufferStateLayerColor(const sp<SurfaceControl>& layer, const Color& color, int32_t bufferWidth, int32_t bufferHeight) { sp<GraphicBuffer> buffer = - new GraphicBuffer(bufferWidth, bufferHeight, PIXEL_FORMAT_RGBA_8888, 1, - BufferUsage::CPU_READ_OFTEN | BufferUsage::CPU_WRITE_OFTEN | - BufferUsage::COMPOSER_OVERLAY | BufferUsage::GPU_TEXTURE, - "test"); + sp<GraphicBuffer>::make(static_cast<uint32_t>(bufferWidth), + static_cast<uint32_t>(bufferHeight), PIXEL_FORMAT_RGBA_8888, + 1u, + BufferUsage::CPU_READ_OFTEN | BufferUsage::CPU_WRITE_OFTEN | + BufferUsage::COMPOSER_OVERLAY | + BufferUsage::GPU_TEXTURE, + "test"); TransactionUtils::fillGraphicBufferColor(buffer, Rect(0, 0, bufferWidth, bufferHeight), color); Transaction().setBuffer(layer, buffer).apply(); @@ -209,10 +212,13 @@ protected: const Color& topRight, const Color& bottomLeft, const Color& bottomRight) { sp<GraphicBuffer> buffer = - new GraphicBuffer(bufferWidth, bufferHeight, PIXEL_FORMAT_RGBA_8888, 1, - BufferUsage::CPU_READ_OFTEN | BufferUsage::CPU_WRITE_OFTEN | - BufferUsage::COMPOSER_OVERLAY | BufferUsage::GPU_TEXTURE, - "test"); + sp<GraphicBuffer>::make(static_cast<uint32_t>(bufferWidth), + static_cast<uint32_t>(bufferHeight), PIXEL_FORMAT_RGBA_8888, + 1u, + BufferUsage::CPU_READ_OFTEN | BufferUsage::CPU_WRITE_OFTEN | + BufferUsage::COMPOSER_OVERLAY | + BufferUsage::GPU_TEXTURE, + "test"); ASSERT_TRUE(bufferWidth % 2 == 0 && bufferHeight % 2 == 0); diff --git a/services/surfaceflinger/tests/LayerTransaction_test.cpp b/services/surfaceflinger/tests/LayerTransaction_test.cpp index ef992d6a40..513fdc3793 100644 --- a/services/surfaceflinger/tests/LayerTransaction_test.cpp +++ b/services/surfaceflinger/tests/LayerTransaction_test.cpp @@ -80,7 +80,7 @@ TEST_F(LayerTransactionTest, DISABLED_BufferQueueLayerMergeDamageRegionWhenDropp sp<SurfaceControl> layer; ASSERT_NO_FATAL_FAILURE(layer = createLayer("test", width, height)); const auto producer = layer->getIGraphicBufferProducer(); - const sp<IProducerListener> stubListener(new StubProducerListener); + const sp<IProducerListener> stubListener(sp<StubProducerListener>::make()); IGraphicBufferProducer::QueueBufferOutput queueBufferOutput; ASSERT_EQ(OK, producer->connect(stubListener, NATIVE_WINDOW_API_CPU, true, &queueBufferOutput)); diff --git a/services/surfaceflinger/tests/LayerTypeAndRenderTypeTransaction_test.cpp b/services/surfaceflinger/tests/LayerTypeAndRenderTypeTransaction_test.cpp index 9cb617a980..f247c9f088 100644 --- a/services/surfaceflinger/tests/LayerTypeAndRenderTypeTransaction_test.cpp +++ b/services/surfaceflinger/tests/LayerTypeAndRenderTypeTransaction_test.cpp @@ -799,7 +799,7 @@ TEST_P(LayerTypeAndRenderTypeTransactionTest, SetBufferFormat) { sp<Surface> surface = layer->getSurface(); sp<GraphicBuffer> buffer = - new GraphicBuffer(width, height, PIXEL_FORMAT_RGBX_8888, 1, kUsageFlags, "test"); + sp<GraphicBuffer>::make(width, height, PIXEL_FORMAT_RGBX_8888, 1, kUsageFlags, "test"); ASSERT_NO_FATAL_FAILURE( TransactionUtils::fillGraphicBufferColor(buffer, crop, Color::TRANSPARENT)); @@ -815,7 +815,7 @@ TEST_P(LayerTypeAndRenderTypeTransactionTest, SetBufferFormat) { shot->expectColor(crop, Color::BLACK); } - buffer = new GraphicBuffer(width, height, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); + buffer = sp<GraphicBuffer>::make(width, height, PIXEL_FORMAT_RGBA_8888, 1, kUsageFlags, "test"); ASSERT_NO_FATAL_FAILURE( TransactionUtils::fillGraphicBufferColor(buffer, crop, Color::TRANSPARENT)); diff --git a/services/surfaceflinger/tests/ReleaseBufferCallback_test.cpp b/services/surfaceflinger/tests/ReleaseBufferCallback_test.cpp index a6d7f5834f..16076eaac9 100644 --- a/services/surfaceflinger/tests/ReleaseBufferCallback_test.cpp +++ b/services/surfaceflinger/tests/ReleaseBufferCallback_test.cpp @@ -110,10 +110,10 @@ public: } static sp<GraphicBuffer> getBuffer() { - return new GraphicBuffer(32, 32, PIXEL_FORMAT_RGBA_8888, 1, - BufferUsage::CPU_READ_OFTEN | BufferUsage::CPU_WRITE_OFTEN | - BufferUsage::COMPOSER_OVERLAY, - "test"); + return sp<GraphicBuffer>::make(32u, 32u, PIXEL_FORMAT_RGBA_8888, 1u, + BufferUsage::CPU_READ_OFTEN | BufferUsage::CPU_WRITE_OFTEN | + BufferUsage::COMPOSER_OVERLAY, + "test"); } static uint64_t generateFrameNumber() { static uint64_t sFrameNumber = 0; @@ -332,8 +332,10 @@ TEST_F(ReleaseBufferCallbackTest, DISABLED_FrameDropping) { } TEST_F(ReleaseBufferCallbackTest, DISABLED_Merge_Different_Processes) { - sp<TransactionCompletedListener> firstCompletedListener = new TransactionCompletedListener(); - sp<TransactionCompletedListener> secondCompletedListener = new TransactionCompletedListener(); + sp<TransactionCompletedListener> firstCompletedListener = + sp<TransactionCompletedListener>::make(); + sp<TransactionCompletedListener> secondCompletedListener = + sp<TransactionCompletedListener>::make(); CallbackHelper callback1, callback2; @@ -433,8 +435,10 @@ TEST_F(ReleaseBufferCallbackTest, DISABLED_Merge_Transactions_OverwriteBuffers) } TEST_F(ReleaseBufferCallbackTest, DISABLED_MergeBuffers_Different_Processes) { - sp<TransactionCompletedListener> firstCompletedListener = new TransactionCompletedListener(); - sp<TransactionCompletedListener> secondCompletedListener = new TransactionCompletedListener(); + sp<TransactionCompletedListener> firstCompletedListener = + sp<TransactionCompletedListener>::make(); + sp<TransactionCompletedListener> secondCompletedListener = + sp<TransactionCompletedListener>::make(); TransactionCompletedListener::setInstance(firstCompletedListener); diff --git a/services/surfaceflinger/tests/ScreenCapture_test.cpp b/services/surfaceflinger/tests/ScreenCapture_test.cpp index 6a7d8b8ca5..d78c8a9ee0 100644 --- a/services/surfaceflinger/tests/ScreenCapture_test.cpp +++ b/services/surfaceflinger/tests/ScreenCapture_test.cpp @@ -519,7 +519,7 @@ TEST_F(ScreenCaptureTest, CaptureSize) { TEST_F(ScreenCaptureTest, CaptureInvalidLayer) { LayerCaptureArgs args; - args.layerHandle = new BBinder(); + args.layerHandle = sp<BBinder>::make(); ScreenCaptureResults captureResults; // Layer was deleted so captureLayers should fail with NAME_NOT_FOUND diff --git a/services/surfaceflinger/tests/Stress_test.cpp b/services/surfaceflinger/tests/Stress_test.cpp index e9b6ba0f64..03201f7937 100644 --- a/services/surfaceflinger/tests/Stress_test.cpp +++ b/services/surfaceflinger/tests/Stress_test.cpp @@ -32,7 +32,7 @@ namespace android { TEST(SurfaceFlingerStress, create_and_destroy) { auto do_stress = []() { - sp<SurfaceComposerClient> client = new SurfaceComposerClient; + sp<SurfaceComposerClient> client = sp<SurfaceComposerClient>::make(); ASSERT_EQ(NO_ERROR, client->initCheck()); for (int j = 0; j < 1000; j++) { auto surf = client->createSurface(String8("t"), 100, 100, diff --git a/services/surfaceflinger/tests/SurfaceInterceptor_test.cpp b/services/surfaceflinger/tests/SurfaceInterceptor_test.cpp index 28e8b8c78b..8dcd013985 100644 --- a/services/surfaceflinger/tests/SurfaceInterceptor_test.cpp +++ b/services/surfaceflinger/tests/SurfaceInterceptor_test.cpp @@ -138,7 +138,7 @@ protected: // Allow SurfaceInterceptor write to /data system("setenforce 0"); - mComposerClient = new SurfaceComposerClient; + mComposerClient = sp<SurfaceComposerClient>::make(); ASSERT_EQ(NO_ERROR, mComposerClient->initCheck()); } diff --git a/services/surfaceflinger/tests/TransactionTestHarnesses.h b/services/surfaceflinger/tests/TransactionTestHarnesses.h index 8ce63bc64c..ad03ed3073 100644 --- a/services/surfaceflinger/tests/TransactionTestHarnesses.h +++ b/services/surfaceflinger/tests/TransactionTestHarnesses.h @@ -53,11 +53,11 @@ public: consumer->setConsumerName(String8("Virtual disp consumer")); consumer->setDefaultBufferSize(resolution.getWidth(), resolution.getHeight()); - itemConsumer = new BufferItemConsumer(consumer, - // Sample usage bits from screenrecord - GRALLOC_USAGE_HW_VIDEO_ENCODER | - GRALLOC_USAGE_SW_READ_OFTEN); - sp<BufferListener> listener = new BufferListener(this); + itemConsumer = sp<BufferItemConsumer>::make(consumer, + // Sample usage bits from screenrecord + GRALLOC_USAGE_HW_VIDEO_ENCODER | + GRALLOC_USAGE_SW_READ_OFTEN); + sp<BufferListener> listener = sp<BufferListener>::make(this); itemConsumer->setFrameAvailableListener(listener); vDisplay = SurfaceComposerClient::createDisplay(String8("VirtualDisplay"), diff --git a/services/surfaceflinger/tests/VirtualDisplay_test.cpp b/services/surfaceflinger/tests/VirtualDisplay_test.cpp index 18e08062c0..f31f582ffd 100644 --- a/services/surfaceflinger/tests/VirtualDisplay_test.cpp +++ b/services/surfaceflinger/tests/VirtualDisplay_test.cpp @@ -33,7 +33,7 @@ protected: consumer->setConsumerName(String8("Virtual disp consumer")); consumer->setDefaultBufferSize(100, 100); - mGLConsumer = new GLConsumer(consumer, GLConsumer::TEXTURE_EXTERNAL, true, false); + mGLConsumer = sp<GLConsumer>::make(consumer, GLConsumer::TEXTURE_EXTERNAL, true, false); } sp<IGraphicBufferProducer> mProducer; @@ -55,7 +55,7 @@ TEST_F(VirtualDisplayTest, VirtualDisplayDestroyedSurfaceReuse) { // add another sync since we are deferring the display destruction t.apply(true); - sp<Surface> surface = new Surface(mProducer); + sp<Surface> surface = sp<Surface>::make(mProducer); sp<ANativeWindow> window(surface); ASSERT_EQ(NO_ERROR, native_window_api_connect(window.get(), NATIVE_WINDOW_API_EGL)); diff --git a/services/surfaceflinger/tests/WindowInfosListener_test.cpp b/services/surfaceflinger/tests/WindowInfosListener_test.cpp index bb522451a6..53c3c3998f 100644 --- a/services/surfaceflinger/tests/WindowInfosListener_test.cpp +++ b/services/surfaceflinger/tests/WindowInfosListener_test.cpp @@ -29,8 +29,8 @@ class WindowInfosListenerTest : public ::testing::Test { protected: void SetUp() override { seteuid(AID_SYSTEM); - mClient = new SurfaceComposerClient; - mWindowInfosListener = new SyncWindowInfosListener(); + mClient = sp<SurfaceComposerClient>::make(); + mWindowInfosListener = sp<SyncWindowInfosListener>::make(); mClient->addWindowInfosListener(mWindowInfosListener); } @@ -77,7 +77,7 @@ std::optional<WindowInfo> findMatchingWindowInfo(WindowInfo targetWindowInfo, TEST_F(WindowInfosListenerTest, WindowInfoAddedAndRemoved) { std::string name = "Test Layer"; - sp<IBinder> token = new BBinder(); + sp<IBinder> token = sp<BBinder>::make(); WindowInfo windowInfo; windowInfo.name = name; windowInfo.token = token; @@ -105,7 +105,7 @@ TEST_F(WindowInfosListenerTest, WindowInfoAddedAndRemoved) { TEST_F(WindowInfosListenerTest, WindowInfoChanged) { std::string name = "Test Layer"; - sp<IBinder> token = new BBinder(); + sp<IBinder> token = sp<BBinder>::make(); WindowInfo windowInfo; windowInfo.name = name; windowInfo.token = token; diff --git a/services/surfaceflinger/tests/fakehwc/FakeComposerClient.cpp b/services/surfaceflinger/tests/fakehwc/FakeComposerClient.cpp index f824fdff3a..a5cca3597c 100644 --- a/services/surfaceflinger/tests/fakehwc/FakeComposerClient.cpp +++ b/services/surfaceflinger/tests/fakehwc/FakeComposerClient.cpp @@ -896,7 +896,7 @@ void FakeComposerClient::clearFrames() { void FakeComposerClient::onSurfaceFlingerStart() { mSurfaceComposer = nullptr; do { - mSurfaceComposer = new android::SurfaceComposerClient; + mSurfaceComposer = android::sp<android::SurfaceComposerClient>::make(); android::status_t initResult = mSurfaceComposer->initCheck(); if (initResult != android::NO_ERROR) { ALOGD("Init result: %d", initResult); diff --git a/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp b/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp index 00845d793f..1d3401aa0f 100644 --- a/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp +++ b/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp @@ -220,8 +220,8 @@ protected: mFakeComposerClient = new FakeComposerClient(); mFakeComposerClient->setMockHal(mMockComposer.get()); - sp<V2_4::hal::ComposerClient> client = new V2_4::hal::ComposerClient(mFakeComposerClient); - mFakeService = new FakeComposerService(client); + auto client = sp<V2_4::hal::ComposerClient>::make(mFakeComposerClient); + mFakeService = sp<FakeComposerService>::make(client); ASSERT_EQ(android::OK, mFakeService->registerAsService("mock")); android::hardware::ProcessState::self()->startThreadPool(); @@ -242,13 +242,13 @@ protected: // Fake composer wants to enable VSync injection mFakeComposerClient->onSurfaceFlingerStart(); - mComposerClient = new SurfaceComposerClient; + mComposerClient = sp<SurfaceComposerClient>::make(); ASSERT_EQ(NO_ERROR, mComposerClient->initCheck()); mReceiver.reset( new DisplayEventReceiver(gui::ISurfaceComposer::VsyncSource::eVsyncSourceApp, gui::ISurfaceComposer::EventRegistration::modeChanged)); - mLooper = new Looper(false); + mLooper = sp<Looper>::make(false); mLooper->addFd(mReceiver->getFd(), 0, ALOOPER_EVENT_INPUT, processDisplayEvents, this); } @@ -1143,8 +1143,8 @@ protected: // TODO: See TODO comment at DisplayTest::SetUp for background on // the lifetime of the FakeComposerClient. sFakeComposer = new FakeComposerClient; - sp<V2_4::hal::ComposerClient> client = new V2_4::hal::ComposerClient(sFakeComposer); - sp<V2_1::IComposer> fakeService = new FakeComposerService(client); + auto client = sp<V2_4::hal::ComposerClient>::make(sFakeComposer); + sp<V2_1::IComposer> fakeService = sp<FakeComposerService>::make(client); (void)fakeService->registerAsService("mock"); android::hardware::ProcessState::self()->startThreadPool(); @@ -1167,7 +1167,7 @@ protected: void SetUp() override { ALOGI("TransactionTest::SetUp"); - mComposerClient = new SurfaceComposerClient; + mComposerClient = sp<SurfaceComposerClient>::make(); ASSERT_EQ(NO_ERROR, mComposerClient->initCheck()); ALOGI("TransactionTest::SetUp - display"); diff --git a/services/surfaceflinger/tests/unittests/AidlPowerHalWrapperTest.cpp b/services/surfaceflinger/tests/unittests/AidlPowerHalWrapperTest.cpp index 53de4a6e56..69d30c4c55 100644 --- a/services/surfaceflinger/tests/unittests/AidlPowerHalWrapperTest.cpp +++ b/services/surfaceflinger/tests/unittests/AidlPowerHalWrapperTest.cpp @@ -57,8 +57,8 @@ protected: }; void AidlPowerHalWrapperTest::SetUp() { - mMockHal = new NiceMock<MockIPower>(); - mMockSession = new NiceMock<MockIPowerHintSession>(); + mMockHal = sp<NiceMock<MockIPower>>::make(); + mMockSession = sp<NiceMock<MockIPowerHintSession>>::make(); ON_CALL(*mMockHal.get(), getHintSessionPreferredRate(_)).WillByDefault(Return(Status::ok())); mWrapper = std::make_unique<AidlPowerHalWrapper>(mMockHal); mWrapper->setAllowedActualDeviation(std::chrono::nanoseconds{10ms}.count()); diff --git a/services/surfaceflinger/tests/unittests/CachingTest.cpp b/services/surfaceflinger/tests/unittests/CachingTest.cpp index 7f203ce943..9082a222fd 100644 --- a/services/surfaceflinger/tests/unittests/CachingTest.cpp +++ b/services/surfaceflinger/tests/unittests/CachingTest.cpp @@ -27,13 +27,16 @@ namespace android { class SlotGenerationTest : public testing::Test { protected: sp<HwcSlotGenerator> mHwcSlotGenerator = sp<HwcSlotGenerator>::make(); - sp<GraphicBuffer> mBuffer1{new GraphicBuffer(1, 1, HAL_PIXEL_FORMAT_RGBA_8888, 1, 0)}; - sp<GraphicBuffer> mBuffer2{new GraphicBuffer(1, 1, HAL_PIXEL_FORMAT_RGBA_8888, 1, 0)}; - sp<GraphicBuffer> mBuffer3{new GraphicBuffer(10, 10, HAL_PIXEL_FORMAT_RGBA_8888, 1, 0)}; + sp<GraphicBuffer> mBuffer1 = + sp<GraphicBuffer>::make(1u, 1u, HAL_PIXEL_FORMAT_RGBA_8888, 1u, 0u); + sp<GraphicBuffer> mBuffer2 = + sp<GraphicBuffer>::make(1u, 1u, HAL_PIXEL_FORMAT_RGBA_8888, 1u, 0u); + sp<GraphicBuffer> mBuffer3 = + sp<GraphicBuffer>::make(10u, 10u, HAL_PIXEL_FORMAT_RGBA_8888, 1u, 0u); }; TEST_F(SlotGenerationTest, getHwcCacheSlot_Invalid) { - sp<IBinder> binder = new BBinder(); + sp<IBinder> binder = sp<BBinder>::make(); // test getting invalid client_cache_id client_cache_t id; int slot = mHwcSlotGenerator->getHwcCacheSlot(id); @@ -41,7 +44,7 @@ TEST_F(SlotGenerationTest, getHwcCacheSlot_Invalid) { } TEST_F(SlotGenerationTest, getHwcCacheSlot_Basic) { - sp<IBinder> binder = new BBinder(); + sp<IBinder> binder = sp<BBinder>::make(); client_cache_t id; id.token = binder; id.id = 0; @@ -62,7 +65,7 @@ TEST_F(SlotGenerationTest, getHwcCacheSlot_Basic) { } TEST_F(SlotGenerationTest, getHwcCacheSlot_Reuse) { - sp<IBinder> binder = new BBinder(); + sp<IBinder> binder = sp<BBinder>::make(); std::vector<client_cache_t> ids; uint32_t cacheId = 0; // fill up cache diff --git a/services/surfaceflinger/tests/unittests/CompositionTest.cpp b/services/surfaceflinger/tests/unittests/CompositionTest.cpp index accd07b7fa..2571e3a0ff 100644 --- a/services/surfaceflinger/tests/unittests/CompositionTest.cpp +++ b/services/surfaceflinger/tests/unittests/CompositionTest.cpp @@ -129,13 +129,15 @@ public: EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); @@ -177,11 +179,11 @@ public: sp<DisplayDevice> mDisplay; sp<DisplayDevice> mExternalDisplay; sp<compositionengine::mock::DisplaySurface> mDisplaySurface = - new compositionengine::mock::DisplaySurface(); - mock::NativeWindow* mNativeWindow = new mock::NativeWindow(); + sp<compositionengine::mock::DisplaySurface>::make(); + sp<mock::NativeWindow> mNativeWindow = sp<mock::NativeWindow>::make(); std::vector<sp<Layer>> mAuxiliaryLayers; - sp<GraphicBuffer> mBuffer = new GraphicBuffer(); + sp<GraphicBuffer> mBuffer = sp<GraphicBuffer>::make(); ANativeWindowBuffer* mNativeWindowBuffer = mBuffer->getNativeBuffer(); Hwc2::mock::Composer* mComposer = nullptr; @@ -315,7 +317,7 @@ struct BaseDisplayVariant { .setSecure(Derived::IS_SECURE) .setPowerMode(Derived::INIT_POWER_MODE) .inject(); - Mock::VerifyAndClear(test->mNativeWindow); + Mock::VerifyAndClear(test->mNativeWindow.get()); test->mDisplay->setLayerStack(LAYER_STACK); } @@ -867,7 +869,7 @@ struct EffectLayerVariant : public BaseLayerVariant<LayerProperties> { static FlingerLayerType createLayer(CompositionTest* test) { FlingerLayerType layer = Base::template createLayerWithFactory<EffectLayer>(test, [test]() { - return new EffectLayer( + return sp<EffectLayer>::make( LayerCreationArgs(test->mFlinger.flinger(), sp<Client>(), "test-layer", LayerProperties::LAYER_FLAGS, LayerMetadata())); }); @@ -909,7 +911,7 @@ struct BufferLayerVariant : public BaseLayerVariant<LayerProperties> { LayerCreationArgs args(test->mFlinger.flinger(), sp<Client>(), "test-layer", LayerProperties::LAYER_FLAGS, LayerMetadata()); args.textureName = test->mFlinger.mutableTexturePool().back(); - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); }); LayerProperties::setupLayerState(test, layer); @@ -956,7 +958,7 @@ struct ContainerLayerVariant : public BaseLayerVariant<LayerProperties> { static FlingerLayerType createLayer(CompositionTest* test) { LayerCreationArgs args(test->mFlinger.flinger(), sp<Client>(), "test-container-layer", LayerProperties::LAYER_FLAGS, LayerMetadata()); - FlingerLayerType layer = new EffectLayer(args); + FlingerLayerType layer = sp<EffectLayer>::make(args); Base::template initLayerDrawingStateAndComputeBounds(test, layer); return layer; } diff --git a/services/surfaceflinger/tests/unittests/DisplayTransactionTest.cpp b/services/surfaceflinger/tests/unittests/DisplayTransactionTest.cpp index f04221cc21..044c1125d8 100644 --- a/services/surfaceflinger/tests/unittests/DisplayTransactionTest.cpp +++ b/services/surfaceflinger/tests/unittests/DisplayTransactionTest.cpp @@ -66,13 +66,15 @@ DisplayTransactionTest::~DisplayTransactionTest() { void DisplayTransactionTest::injectMockScheduler() { EXPECT_CALL(*mEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*mEventThread, createEventConnection(_, _)) - .WillOnce(Return( - new EventThreadConnection(mEventThread, /*callingUid=*/0, ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(mEventThread, + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*mSFEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*mSFEventThread, createEventConnection(_, _)) - .WillOnce(Return( - new EventThreadConnection(mSFEventThread, /*callingUid=*/0, ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(mSFEventThread, + mock::EventThread::kCallingUid, + ResyncCallback()))); mFlinger.setupScheduler(std::unique_ptr<scheduler::VsyncController>(mVsyncController), std::unique_ptr<scheduler::VSyncTracker>(mVSyncTracker), @@ -100,8 +102,8 @@ void DisplayTransactionTest::injectFakeBufferQueueFactory() { // This setup is only expected once per test. ASSERT_TRUE(mConsumer == nullptr && mProducer == nullptr); - mConsumer = new mock::GraphicBufferConsumer(); - mProducer = new mock::GraphicBufferProducer(); + mConsumer = sp<mock::GraphicBufferConsumer>::make(); + mProducer = sp<mock::GraphicBufferProducer>::make(); mFlinger.setCreateBufferQueueFunction([this](auto outProducer, auto outConsumer, bool) { *outProducer = mProducer; diff --git a/services/surfaceflinger/tests/unittests/DisplayTransactionTestHelpers.h b/services/surfaceflinger/tests/unittests/DisplayTransactionTestHelpers.h index f5235ce953..0c071d43d7 100644 --- a/services/surfaceflinger/tests/unittests/DisplayTransactionTestHelpers.h +++ b/services/surfaceflinger/tests/unittests/DisplayTransactionTestHelpers.h @@ -111,8 +111,8 @@ public: // Test instances TestableSurfaceFlinger mFlinger; - sp<mock::NativeWindow> mNativeWindow = new mock::NativeWindow(); - sp<GraphicBuffer> mBuffer = new GraphicBuffer(); + sp<mock::NativeWindow> mNativeWindow = sp<mock::NativeWindow>::make(); + sp<GraphicBuffer> mBuffer = sp<GraphicBuffer>::make(); Hwc2::mock::PowerAdvisor mPowerAdvisor; // These mocks are created by the test, but are destroyed by SurfaceFlinger @@ -120,7 +120,7 @@ public: // to keep a reference to them for use in setting up call expectations. renderengine::mock::RenderEngine* mRenderEngine = new renderengine::mock::RenderEngine(); Hwc2::mock::Composer* mComposer = nullptr; - sp<mock::SurfaceInterceptor> mSurfaceInterceptor = new mock::SurfaceInterceptor; + sp<mock::SurfaceInterceptor> mSurfaceInterceptor = sp<mock::SurfaceInterceptor>::make(); mock::VsyncController* mVsyncController = new mock::VsyncController; mock::VSyncTracker* mVSyncTracker = new mock::VSyncTracker; diff --git a/services/surfaceflinger/tests/unittests/EventThreadTest.cpp b/services/surfaceflinger/tests/unittests/EventThreadTest.cpp index 7ee04b0466..978afc510a 100644 --- a/services/surfaceflinger/tests/unittests/EventThreadTest.cpp +++ b/services/surfaceflinger/tests/unittests/EventThreadTest.cpp @@ -193,8 +193,9 @@ sp<EventThreadTest::MockEventThreadConnection> EventThreadTest::createConnection ConnectionEventRecorder& recorder, EventRegistrationFlags eventRegistration, uid_t ownerUid) { sp<MockEventThreadConnection> connection = - new MockEventThreadConnection(mThread.get(), ownerUid, - mResyncCallRecorder.getInvocable(), eventRegistration); + sp<MockEventThreadConnection>::make(mThread.get(), ownerUid, + mResyncCallRecorder.getInvocable(), + eventRegistration); EXPECT_CALL(*connection, postEvent(_)).WillRepeatedly(Invoke(recorder.getInvocable())); return connection; } diff --git a/services/surfaceflinger/tests/unittests/FpsReporterTest.cpp b/services/surfaceflinger/tests/unittests/FpsReporterTest.cpp index 3a9b805861..0b4e196d43 100644 --- a/services/surfaceflinger/tests/unittests/FpsReporterTest.cpp +++ b/services/surfaceflinger/tests/unittests/FpsReporterTest.cpp @@ -95,8 +95,8 @@ protected: sp<TestableFpsListener> mFpsListener; fake::FakeClock* mClock = new fake::FakeClock(); - sp<FpsReporter> mFpsReporter = - new FpsReporter(mFrameTimeline, *(mFlinger.flinger()), std::unique_ptr<Clock>(mClock)); + sp<FpsReporter> mFpsReporter = sp<FpsReporter>::make(mFrameTimeline, *(mFlinger.flinger()), + std::unique_ptr<Clock>(mClock)); }; FpsReporterTest::FpsReporterTest() { @@ -107,7 +107,7 @@ FpsReporterTest::FpsReporterTest() { setupScheduler(); mFlinger.setupComposer(std::make_unique<Hwc2::mock::Composer>()); - mFpsListener = new TestableFpsListener(); + mFpsListener = sp<TestableFpsListener>::make(); } FpsReporterTest::~FpsReporterTest() { @@ -119,7 +119,7 @@ FpsReporterTest::~FpsReporterTest() { sp<BufferStateLayer> FpsReporterTest::createBufferStateLayer(LayerMetadata metadata = {}) { sp<Client> client; LayerCreationArgs args(mFlinger.flinger(), client, "buffer-state-layer", LAYER_FLAGS, metadata); - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); } void FpsReporterTest::setupScheduler() { @@ -128,13 +128,15 @@ void FpsReporterTest::setupScheduler() { EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); diff --git a/services/surfaceflinger/tests/unittests/GameModeTest.cpp b/services/surfaceflinger/tests/unittests/GameModeTest.cpp index b79909ad9d..cd857c3d34 100644 --- a/services/surfaceflinger/tests/unittests/GameModeTest.cpp +++ b/services/surfaceflinger/tests/unittests/GameModeTest.cpp @@ -57,7 +57,7 @@ public: sp<Client> client; LayerCreationArgs args(mFlinger.flinger(), client, "buffer-state-layer", 0, LayerMetadata()); - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); } void setupScheduler() { @@ -66,13 +66,15 @@ public: EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); diff --git a/services/surfaceflinger/tests/unittests/LayerTestUtils.cpp b/services/surfaceflinger/tests/unittests/LayerTestUtils.cpp index 5a2c1479bb..b7a8a93f5c 100644 --- a/services/surfaceflinger/tests/unittests/LayerTestUtils.cpp +++ b/services/surfaceflinger/tests/unittests/LayerTestUtils.cpp @@ -29,13 +29,13 @@ sp<Layer> BufferStateLayerFactory::createLayer(TestableSurfaceFlinger& flinger) sp<Client> client; LayerCreationArgs args(flinger.flinger(), client, "buffer-state-layer", LAYER_FLAGS, LayerMetadata()); - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); } sp<Layer> EffectLayerFactory::createLayer(TestableSurfaceFlinger& flinger) { sp<Client> client; LayerCreationArgs args(flinger.flinger(), client, "color-layer", LAYER_FLAGS, LayerMetadata()); - return new EffectLayer(args); + return sp<EffectLayer>::make(args); } std::string PrintToStringParamName( @@ -53,13 +53,15 @@ void BaseLayerTest::setupScheduler() { EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); diff --git a/services/surfaceflinger/tests/unittests/RefreshRateSelectionTest.cpp b/services/surfaceflinger/tests/unittests/RefreshRateSelectionTest.cpp index 1e6e3361b2..6752a39384 100644 --- a/services/surfaceflinger/tests/unittests/RefreshRateSelectionTest.cpp +++ b/services/surfaceflinger/tests/unittests/RefreshRateSelectionTest.cpp @@ -93,17 +93,17 @@ sp<BufferStateLayer> RefreshRateSelectionTest::createBufferStateLayer() { sp<Client> client; LayerCreationArgs args(mFlinger.flinger(), client, "buffer-queue-layer", LAYER_FLAGS, LayerMetadata()); - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); } sp<EffectLayer> RefreshRateSelectionTest::createEffectLayer() { sp<Client> client; LayerCreationArgs args(mFlinger.flinger(), client, "color-layer", LAYER_FLAGS, LayerMetadata()); - return new EffectLayer(args); + return sp<EffectLayer>::make(args); } void RefreshRateSelectionTest::setParent(Layer* child, Layer* parent) { - child->setParent(parent); + child->setParent(sp<Layer>::fromExisting(parent)); } void RefreshRateSelectionTest::commitTransaction(Layer* layer) { @@ -117,13 +117,15 @@ void RefreshRateSelectionTest::setupScheduler() { EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); diff --git a/services/surfaceflinger/tests/unittests/SchedulerTest.cpp b/services/surfaceflinger/tests/unittests/SchedulerTest.cpp index 93c809e2fd..53e49eb0d4 100644 --- a/services/surfaceflinger/tests/unittests/SchedulerTest.cpp +++ b/services/surfaceflinger/tests/unittests/SchedulerTest.cpp @@ -48,7 +48,8 @@ protected: class MockEventThreadConnection : public android::EventThreadConnection { public: explicit MockEventThreadConnection(EventThread* eventThread) - : EventThreadConnection(eventThread, /*callingUid=*/0, ResyncCallback()) {} + : EventThreadConnection(eventThread, /*callingUid*/ static_cast<uid_t>(0), + ResyncCallback()) {} ~MockEventThreadConnection() = default; MOCK_METHOD1(stealReceiveChannel, binder::Status(gui::BitTube* outChannel)); @@ -79,7 +80,7 @@ SchedulerTest::SchedulerTest() { mEventThread = eventThread.get(); EXPECT_CALL(*mEventThread, registerDisplayEventConnection(_)).WillOnce(Return(0)); - mEventThreadConnection = new MockEventThreadConnection(mEventThread); + mEventThreadConnection = sp<MockEventThreadConnection>::make(mEventThread); // createConnection call to scheduler makes a createEventConnection call to EventThread. Make // sure that call gets executed and returns an EventThread::Connection object. diff --git a/services/surfaceflinger/tests/unittests/SetFrameRateTest.cpp b/services/surfaceflinger/tests/unittests/SetFrameRateTest.cpp index b9a5f36794..6ee8174caf 100644 --- a/services/surfaceflinger/tests/unittests/SetFrameRateTest.cpp +++ b/services/surfaceflinger/tests/unittests/SetFrameRateTest.cpp @@ -78,11 +78,11 @@ SetFrameRateTest::SetFrameRateTest() { } void SetFrameRateTest::addChild(sp<Layer> layer, sp<Layer> child) { - layer.get()->addChild(child.get()); + layer->addChild(child); } void SetFrameRateTest::removeChild(sp<Layer> layer, sp<Layer> child) { - layer.get()->removeChild(child.get()); + layer->removeChild(child); } void SetFrameRateTest::commitTransaction() { diff --git a/services/surfaceflinger/tests/unittests/SurfaceFlinger_DestroyDisplayTest.cpp b/services/surfaceflinger/tests/unittests/SurfaceFlinger_DestroyDisplayTest.cpp index c7e61c96d6..40ef949468 100644 --- a/services/surfaceflinger/tests/unittests/SurfaceFlinger_DestroyDisplayTest.cpp +++ b/services/surfaceflinger/tests/unittests/SurfaceFlinger_DestroyDisplayTest.cpp @@ -65,7 +65,7 @@ TEST_F(DestroyDisplayTest, destroyDisplayHandlesUnknownDisplay) { // -------------------------------------------------------------------- // Preconditions - sp<BBinder> displayToken = new BBinder(); + sp<BBinder> displayToken = sp<BBinder>::make(); // -------------------------------------------------------------------- // Invocation diff --git a/services/surfaceflinger/tests/unittests/SurfaceFlinger_DisplayModeSwitching.cpp b/services/surfaceflinger/tests/unittests/SurfaceFlinger_DisplayModeSwitching.cpp index 5872a472cd..b607b881d2 100644 --- a/services/surfaceflinger/tests/unittests/SurfaceFlinger_DisplayModeSwitching.cpp +++ b/services/surfaceflinger/tests/unittests/SurfaceFlinger_DisplayModeSwitching.cpp @@ -87,13 +87,15 @@ void DisplayModeSwitchingTest::setupScheduler( EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); diff --git a/services/surfaceflinger/tests/unittests/SurfaceFlinger_DisplayTransactionCommitTest.cpp b/services/surfaceflinger/tests/unittests/SurfaceFlinger_DisplayTransactionCommitTest.cpp index 9ac29071b2..bc9e8016bf 100644 --- a/services/surfaceflinger/tests/unittests/SurfaceFlinger_DisplayTransactionCommitTest.cpp +++ b/services/surfaceflinger/tests/unittests/SurfaceFlinger_DisplayTransactionCommitTest.cpp @@ -408,12 +408,12 @@ TEST_F(DisplayTransactionCommitTest, processesVirtualDisplayAdded) { // A virtual display was added to the current state, and it has a // surface(producer) - sp<BBinder> displayToken = new BBinder(); + sp<BBinder> displayToken = sp<BBinder>::make(); DisplayDeviceState state; state.isSecure = static_cast<bool>(Case::Display::SECURE); - sp<mock::GraphicBufferProducer> surface{new mock::GraphicBufferProducer()}; + sp<mock::GraphicBufferProducer> surface{sp<mock::GraphicBufferProducer>::make()}; state.surface = surface; mFlinger.mutableCurrentState().displays.add(displayToken, state); @@ -479,7 +479,7 @@ TEST_F(DisplayTransactionCommitTest, processesVirtualDisplayAddedWithNoSurface) // A virtual display was added to the current state, but it does not have a // surface. - sp<BBinder> displayToken = new BBinder(); + sp<BBinder> displayToken = sp<BBinder>::make(); DisplayDeviceState state; state.isSecure = static_cast<bool>(Case::Display::SECURE); @@ -656,9 +656,11 @@ TEST_F(DisplayTransactionCommitTest, processesDisplayWidthChanges) { // Preconditions // A display is set up - auto nativeWindow = new mock::NativeWindow(); - auto displaySurface = new compositionengine::mock::DisplaySurface(); - sp<GraphicBuffer> buf = new GraphicBuffer(); + auto nativeWindow = sp<mock::NativeWindow>::make(); + auto displaySurface = sp<compositionengine::mock::DisplaySurface>::make(); + sp<GraphicBuffer> buf = + + sp<GraphicBuffer>::make(); auto display = Case::Display::makeFakeExistingDisplayInjector(this); display.setNativeWindow(nativeWindow); display.setDisplaySurface(displaySurface); @@ -701,9 +703,9 @@ TEST_F(DisplayTransactionCommitTest, processesDisplayHeightChanges) { // Preconditions // A display is set up - auto nativeWindow = new mock::NativeWindow(); - auto displaySurface = new compositionengine::mock::DisplaySurface(); - sp<GraphicBuffer> buf = new GraphicBuffer(); + auto nativeWindow = sp<mock::NativeWindow>::make(); + auto displaySurface = sp<compositionengine::mock::DisplaySurface>::make(); + sp<GraphicBuffer> buf = sp<GraphicBuffer>::make(); auto display = Case::Display::makeFakeExistingDisplayInjector(this); display.setNativeWindow(nativeWindow); display.setDisplaySurface(displaySurface); @@ -750,9 +752,9 @@ TEST_F(DisplayTransactionCommitTest, processesDisplaySizeDisplayRectAndLayerStac // Preconditions // A display is set up - auto nativeWindow = new mock::NativeWindow(); - auto displaySurface = new compositionengine::mock::DisplaySurface(); - sp<GraphicBuffer> buf = new GraphicBuffer(); + auto nativeWindow = sp<mock::NativeWindow>::make(); + auto displaySurface = sp<compositionengine::mock::DisplaySurface>::make(); + sp<GraphicBuffer> buf = sp<GraphicBuffer>::make(); auto display = Case::Display::makeFakeExistingDisplayInjector(this); display.setNativeWindow(nativeWindow); display.setDisplaySurface(displaySurface); diff --git a/services/surfaceflinger/tests/unittests/SurfaceFlinger_GetDisplayNativePrimariesTest.cpp b/services/surfaceflinger/tests/unittests/SurfaceFlinger_GetDisplayNativePrimariesTest.cpp index 0171f1b41d..5951c9893f 100644 --- a/services/surfaceflinger/tests/unittests/SurfaceFlinger_GetDisplayNativePrimariesTest.cpp +++ b/services/surfaceflinger/tests/unittests/SurfaceFlinger_GetDisplayNativePrimariesTest.cpp @@ -95,7 +95,7 @@ TEST_F(GetDisplayNativePrimaries, internalDisplayWithPrimariesData) { } TEST_F(GetDisplayNativePrimaries, notInternalDisplayToken) { - sp<BBinder> notInternalDisplayToken = new BBinder(); + sp<BBinder> notInternalDisplayToken = sp<BBinder>::make(); ui::DisplayPrimaries primaries; populateDummyDisplayNativePrimaries(primaries); diff --git a/services/surfaceflinger/tests/unittests/SurfaceFlinger_PowerHintTest.cpp b/services/surfaceflinger/tests/unittests/SurfaceFlinger_PowerHintTest.cpp index c2d87f2484..a747cdd87e 100644 --- a/services/surfaceflinger/tests/unittests/SurfaceFlinger_PowerHintTest.cpp +++ b/services/surfaceflinger/tests/unittests/SurfaceFlinger_PowerHintTest.cpp @@ -60,8 +60,8 @@ protected: renderengine::mock::RenderEngine* mRenderEngine = new renderengine::mock::RenderEngine(); sp<DisplayDevice> mDisplay; sp<compositionengine::mock::DisplaySurface> mDisplaySurface = - new compositionengine::mock::DisplaySurface(); - mock::NativeWindow* mNativeWindow = new mock::NativeWindow(); + sp<compositionengine::mock::DisplaySurface>::make(); + sp<mock::NativeWindow> mNativeWindow = sp<mock::NativeWindow>::make(); mock::TimeStats* mTimeStats = new mock::TimeStats(); Hwc2::mock::PowerAdvisor* mPowerAdvisor = nullptr; Hwc2::mock::Composer* mComposer = nullptr; @@ -105,13 +105,15 @@ void SurfaceFlingerPowerHintTest::setupScheduler() { EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); diff --git a/services/surfaceflinger/tests/unittests/SurfaceFlinger_SetDisplayStateTest.cpp b/services/surfaceflinger/tests/unittests/SurfaceFlinger_SetDisplayStateTest.cpp index 7d9e22b23e..9c7f55b733 100644 --- a/services/surfaceflinger/tests/unittests/SurfaceFlinger_SetDisplayStateTest.cpp +++ b/services/surfaceflinger/tests/unittests/SurfaceFlinger_SetDisplayStateTest.cpp @@ -34,7 +34,7 @@ TEST_F(SetDisplayStateLockedTest, setDisplayStateLockedDoesNothingWithUnknownDis // Preconditions // We have an unknown display token not associated with a known display - sp<BBinder> displayToken = new BBinder(); + sp<BBinder> displayToken = sp<BBinder>::make(); // The requested display state references the unknown display. DisplayState state; @@ -95,7 +95,7 @@ TEST_F(SetDisplayStateLockedTest, setDisplayStateLockedDoesNothingIfSurfaceDidNo display.inject(); // There is a surface that can be set. - sp<mock::GraphicBufferProducer> surface = new mock::GraphicBufferProducer(); + sp<mock::GraphicBufferProducer> surface = sp<mock::GraphicBufferProducer>::make(); // The current display state has the surface set display.mutableCurrentDisplayState().surface = surface; @@ -132,7 +132,7 @@ TEST_F(SetDisplayStateLockedTest, setDisplayStateLockedRequestsUpdateIfSurfaceCh display.inject(); // There is a surface that can be set. - sp<mock::GraphicBufferProducer> surface = new mock::GraphicBufferProducer(); + sp<mock::GraphicBufferProducer> surface = sp<mock::GraphicBufferProducer>::make(); // The current display state does not have a surface display.mutableCurrentDisplayState().surface = nullptr; diff --git a/services/surfaceflinger/tests/unittests/SurfaceFlinger_SetupNewDisplayDeviceInternalTest.cpp b/services/surfaceflinger/tests/unittests/SurfaceFlinger_SetupNewDisplayDeviceInternalTest.cpp index a0e078bf5e..6aeb3feb9a 100644 --- a/services/surfaceflinger/tests/unittests/SurfaceFlinger_SetupNewDisplayDeviceInternalTest.cpp +++ b/services/surfaceflinger/tests/unittests/SurfaceFlinger_SetupNewDisplayDeviceInternalTest.cpp @@ -197,10 +197,10 @@ public: template <typename Case> void SetupNewDisplayDeviceInternalTest::setupNewDisplayDeviceInternalTest() { - const sp<BBinder> displayToken = new BBinder(); + const sp<BBinder> displayToken = sp<BBinder>::make(); const sp<compositionengine::mock::DisplaySurface> displaySurface = - new compositionengine::mock::DisplaySurface(); - const sp<mock::GraphicBufferProducer> producer = new mock::GraphicBufferProducer(); + sp<compositionengine::mock::DisplaySurface>::make(); + const auto producer = sp<mock::GraphicBufferProducer>::make(); // -------------------------------------------------------------------- // Preconditions diff --git a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h index d311e22e35..66eb186a23 100644 --- a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h +++ b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h @@ -83,21 +83,21 @@ public: } sp<SurfaceInterceptor> createSurfaceInterceptor() override { - return new android::impl::SurfaceInterceptor(); + return sp<android::impl::SurfaceInterceptor>::make(); } sp<StartPropertySetThread> createStartPropertySetThread(bool timestampPropertyValue) override { - return new StartPropertySetThread(timestampPropertyValue); + return sp<StartPropertySetThread>::make(timestampPropertyValue); } sp<DisplayDevice> createDisplayDevice(DisplayDeviceCreationArgs& creationArgs) override { - return new DisplayDevice(creationArgs); + return sp<DisplayDevice>::make(creationArgs); } sp<GraphicBuffer> createGraphicBuffer(uint32_t width, uint32_t height, PixelFormat format, uint32_t layerCount, uint64_t usage, std::string requestorName) override { - return new GraphicBuffer(width, height, format, layerCount, usage, requestorName); + return sp<GraphicBuffer>::make(width, height, format, layerCount, usage, requestorName); } void createBufferQueue(sp<IGraphicBufferProducer>* outProducer, @@ -715,8 +715,8 @@ public: std::optional<ui::DisplayConnectionType> connectionType, std::optional<hal::HWDisplayId> hwcDisplayId, bool isPrimary) : mFlinger(flinger), - mCreationArgs(flinger.mFlinger.get(), flinger.mFlinger->getHwComposer(), - mDisplayToken, display), + mCreationArgs(flinger.mFlinger, flinger.mFlinger->getHwComposer(), mDisplayToken, + display), mHwcDisplayId(hwcDisplayId) { mCreationArgs.connectionType = connectionType; mCreationArgs.isPrimary = isPrimary; @@ -864,7 +864,7 @@ public: private: TestableSurfaceFlinger& mFlinger; - sp<BBinder> mDisplayToken = new BBinder(); + sp<BBinder> mDisplayToken = sp<BBinder>::make(); DisplayDeviceCreationArgs mCreationArgs; const std::optional<hal::HWDisplayId> mHwcDisplayId; }; diff --git a/services/surfaceflinger/tests/unittests/TransactionApplicationTest.cpp b/services/surfaceflinger/tests/unittests/TransactionApplicationTest.cpp index b2da34e213..efb9e0c5ba 100644 --- a/services/surfaceflinger/tests/unittests/TransactionApplicationTest.cpp +++ b/services/surfaceflinger/tests/unittests/TransactionApplicationTest.cpp @@ -60,13 +60,15 @@ public: EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*mVSyncTracker, nextAnticipatedVSyncTimeFrom(_)).WillRepeatedly(Return(0)); EXPECT_CALL(*mVSyncTracker, currentPeriod()) diff --git a/services/surfaceflinger/tests/unittests/TransactionFrameTracerTest.cpp b/services/surfaceflinger/tests/unittests/TransactionFrameTracerTest.cpp index 28bf8bf0f9..cd64325961 100644 --- a/services/surfaceflinger/tests/unittests/TransactionFrameTracerTest.cpp +++ b/services/surfaceflinger/tests/unittests/TransactionFrameTracerTest.cpp @@ -60,7 +60,7 @@ public: sp<Client> client; LayerCreationArgs args(mFlinger.flinger(), client, "buffer-state-layer", 0, LayerMetadata()); - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); } void commitTransaction(Layer* layer) { @@ -74,13 +74,15 @@ public: EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); @@ -101,7 +103,7 @@ public: void BLASTTransactionSendsFrameTracerEvents() { sp<BufferStateLayer> layer = createBufferStateLayer(); - sp<Fence> fence(new Fence()); + sp<Fence> fence(sp<Fence>::make()); int32_t layerId = layer->getSequence(); uint64_t bufferId = 42; uint64_t frameNumber = 5; diff --git a/services/surfaceflinger/tests/unittests/TransactionProtoParserTest.cpp b/services/surfaceflinger/tests/unittests/TransactionProtoParserTest.cpp index 669fa3a7f0..1f011bee0d 100644 --- a/services/surfaceflinger/tests/unittests/TransactionProtoParserTest.cpp +++ b/services/surfaceflinger/tests/unittests/TransactionProtoParserTest.cpp @@ -27,8 +27,8 @@ using namespace android::surfaceflinger; namespace android { TEST(TransactionProtoParserTest, parse) { - const sp<IBinder> layerHandle = new BBinder(); - const sp<IBinder> displayHandle = new BBinder(); + const sp<IBinder> layerHandle = sp<BBinder>::make(); + const sp<IBinder> displayHandle = sp<BBinder>::make(); TransactionState t1; t1.originPid = 1; t1.originUid = 2; @@ -49,7 +49,7 @@ TEST(TransactionProtoParserTest, parse) { ComposerState s; if (i == 1) { layer.parentSurfaceControlForChild = - new SurfaceControl(SurfaceComposerClient::getDefault(), layerHandle, 42); + sp<SurfaceControl>::make(SurfaceComposerClient::getDefault(), layerHandle, 42); } s.state = layer; t1.states.add(s); diff --git a/services/surfaceflinger/tests/unittests/TransactionSurfaceFrameTest.cpp b/services/surfaceflinger/tests/unittests/TransactionSurfaceFrameTest.cpp index e943644834..d5823c3089 100644 --- a/services/surfaceflinger/tests/unittests/TransactionSurfaceFrameTest.cpp +++ b/services/surfaceflinger/tests/unittests/TransactionSurfaceFrameTest.cpp @@ -60,7 +60,7 @@ public: sp<Client> client; LayerCreationArgs args(mFlinger.flinger(), client, "buffer-state-layer", 0, LayerMetadata()); - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); } void commitTransaction(Layer* layer) { @@ -74,13 +74,15 @@ public: EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); @@ -115,7 +117,7 @@ public: void PresentedSurfaceFrameForBufferTransaction() { sp<BufferStateLayer> layer = createBufferStateLayer(); - sp<Fence> fence(new Fence()); + sp<Fence> fence(sp<Fence>::make()); auto acquireFence = fenceFactory.createFenceTimeForTest(fence); BufferData bufferData; bufferData.acquireFence = fence; @@ -150,7 +152,7 @@ public: void DroppedSurfaceFrameForBufferTransaction() { sp<BufferStateLayer> layer = createBufferStateLayer(); - sp<Fence> fence1(new Fence()); + sp<Fence> fence1(sp<Fence>::make()); auto acquireFence1 = fenceFactory.createFenceTimeForTest(fence1); BufferData bufferData; bufferData.acquireFence = fence1; @@ -170,7 +172,7 @@ public: ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX); const auto droppedSurfaceFrame = layer->mDrawingState.bufferSurfaceFrameTX; - sp<Fence> fence2(new Fence()); + sp<Fence> fence2(sp<Fence>::make()); auto acquireFence2 = fenceFactory.createFenceTimeForTest(fence2); nsecs_t start = systemTime(); bufferData.acquireFence = fence2; @@ -216,7 +218,7 @@ public: EXPECT_EQ(1u, layer->mDrawingState.bufferlessSurfaceFramesTX.size()); ASSERT_EQ(nullptr, layer->mDrawingState.bufferSurfaceFrameTX); - sp<Fence> fence(new Fence()); + sp<Fence> fence(sp<Fence>::make()); auto acquireFence = fenceFactory.createFenceTimeForTest(fence); BufferData bufferData; bufferData.acquireFence = fence; @@ -248,7 +250,7 @@ public: void BufferlessSurfaceFrameNotCreatedIfBufferSufaceFrameExists() { sp<BufferStateLayer> layer = createBufferStateLayer(); - sp<Fence> fence(new Fence()); + sp<Fence> fence(sp<Fence>::make()); auto acquireFence = fenceFactory.createFenceTimeForTest(fence); BufferData bufferData; bufferData.acquireFence = fence; @@ -291,7 +293,7 @@ public: ASSERT_EQ(nullptr, layer->mDrawingState.bufferSurfaceFrameTX); const auto bufferlessSurfaceFrame2 = layer->mDrawingState.bufferlessSurfaceFramesTX[4]; - sp<Fence> fence(new Fence()); + sp<Fence> fence(sp<Fence>::make()); auto acquireFence = fenceFactory.createFenceTimeForTest(fence); BufferData bufferData; bufferData.acquireFence = fence; @@ -336,7 +338,7 @@ public: void PendingSurfaceFramesRemovedAfterClassification() { sp<BufferStateLayer> layer = createBufferStateLayer(); - sp<Fence> fence1(new Fence()); + sp<Fence> fence1(sp<Fence>::make()); auto acquireFence1 = fenceFactory.createFenceTimeForTest(fence1); BufferData bufferData; bufferData.acquireFence = fence1; @@ -355,7 +357,7 @@ public: ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX); const auto droppedSurfaceFrame = layer->mDrawingState.bufferSurfaceFrameTX; - sp<Fence> fence2(new Fence()); + sp<Fence> fence2(sp<Fence>::make()); auto acquireFence2 = fenceFactory.createFenceTimeForTest(fence2); bufferData.acquireFence = fence2; bufferData.frameNumber = 1; @@ -388,7 +390,7 @@ public: void BufferSurfaceFrame_ReplaceValidTokenBufferWithInvalidTokenBuffer() { sp<BufferStateLayer> layer = createBufferStateLayer(); - sp<Fence> fence1(new Fence()); + sp<Fence> fence1(sp<Fence>::make()); auto acquireFence1 = fenceFactory.createFenceTimeForTest(fence1); BufferData bufferData; bufferData.acquireFence = fence1; @@ -408,7 +410,7 @@ public: ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX); const auto droppedSurfaceFrame1 = layer->mDrawingState.bufferSurfaceFrameTX; - sp<Fence> fence2(new Fence()); + sp<Fence> fence2(sp<Fence>::make()); auto acquireFence2 = fenceFactory.createFenceTimeForTest(fence2); auto dropStartTime1 = systemTime(); bufferData.acquireFence = fence2; @@ -429,7 +431,7 @@ public: ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX); const auto droppedSurfaceFrame2 = layer->mDrawingState.bufferSurfaceFrameTX; - sp<Fence> fence3(new Fence()); + sp<Fence> fence3(sp<Fence>::make()); auto acquireFence3 = fenceFactory.createFenceTimeForTest(fence3); auto dropStartTime2 = systemTime(); bufferData.acquireFence = fence3; @@ -479,7 +481,7 @@ public: uint32_t surfaceFramesPendingClassification = 0; std::vector<std::shared_ptr<frametimeline::SurfaceFrame>> bufferlessSurfaceFrames; for (int i = 0; i < 10; i += 2) { - sp<Fence> fence(new Fence()); + sp<Fence> fence(sp<Fence>::make()); BufferData bufferData; bufferData.acquireFence = fence; bufferData.frameNumber = 1; diff --git a/services/surfaceflinger/tests/unittests/TransactionTracingTest.cpp b/services/surfaceflinger/tests/unittests/TransactionTracingTest.cpp index 8ec918dfb3..2dbcfbdb18 100644 --- a/services/surfaceflinger/tests/unittests/TransactionTracingTest.cpp +++ b/services/surfaceflinger/tests/unittests/TransactionTracingTest.cpp @@ -101,10 +101,10 @@ protected: void SetUp() override { // add layers mTracing.setBufferSize(SMALL_BUFFER_SIZE); - const sp<IBinder> fakeLayerHandle = new BBinder(); + const sp<IBinder> fakeLayerHandle = sp<BBinder>::make(); mTracing.onLayerAdded(fakeLayerHandle->localBinder(), mParentLayerId, "parent", 123 /* flags */, -1 /* parentId */); - const sp<IBinder> fakeChildLayerHandle = new BBinder(); + const sp<IBinder> fakeChildLayerHandle = sp<BBinder>::make(); mTracing.onLayerAdded(fakeChildLayerHandle->localBinder(), mChildLayerId, "child", 456 /* flags */, mParentLayerId); @@ -234,10 +234,10 @@ protected: void SetUp() override { // add layers mTracing.setBufferSize(SMALL_BUFFER_SIZE); - const sp<IBinder> fakeLayerHandle = new BBinder(); + const sp<IBinder> fakeLayerHandle = sp<BBinder>::make(); mTracing.onLayerAdded(fakeLayerHandle->localBinder(), mLayerId, "Test Layer", 123 /* flags */, -1 /* parentId */); - const sp<IBinder> fakeMirrorLayerHandle = new BBinder(); + const sp<IBinder> fakeMirrorLayerHandle = sp<BBinder>::make(); mTracing.onMirrorLayerAdded(fakeMirrorLayerHandle->localBinder(), mMirrorLayerId, "Mirror", mLayerId); mTracing.onLayerAddedToDrawingState(mLayerId, mVsyncId); diff --git a/services/surfaceflinger/tests/unittests/TunnelModeEnabledReporterTest.cpp b/services/surfaceflinger/tests/unittests/TunnelModeEnabledReporterTest.cpp index 15fea9c6b2..45ebb8532c 100644 --- a/services/surfaceflinger/tests/unittests/TunnelModeEnabledReporterTest.cpp +++ b/services/surfaceflinger/tests/unittests/TunnelModeEnabledReporterTest.cpp @@ -99,7 +99,7 @@ sp<BufferStateLayer> TunnelModeEnabledReporterTest::createBufferStateLayer( LayerMetadata metadata = {}) { sp<Client> client; LayerCreationArgs args(mFlinger.flinger(), client, "buffer-state-layer", LAYER_FLAGS, metadata); - return new BufferStateLayer(args); + return sp<BufferStateLayer>::make(args); } void TunnelModeEnabledReporterTest::setupScheduler() { @@ -108,13 +108,15 @@ void TunnelModeEnabledReporterTest::setupScheduler() { EXPECT_CALL(*eventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*eventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(eventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(eventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); EXPECT_CALL(*sfEventThread, registerDisplayEventConnection(_)); EXPECT_CALL(*sfEventThread, createEventConnection(_, _)) - .WillOnce(Return(new EventThreadConnection(sfEventThread.get(), /*callingUid=*/0, - ResyncCallback()))); + .WillOnce(Return(sp<EventThreadConnection>::make(sfEventThread.get(), + mock::EventThread::kCallingUid, + ResyncCallback()))); auto vsyncController = std::make_unique<mock::VsyncController>(); auto vsyncTracker = std::make_unique<mock::VSyncTracker>(); diff --git a/services/surfaceflinger/tests/unittests/VSyncReactorTest.cpp b/services/surfaceflinger/tests/unittests/VSyncReactorTest.cpp index 30a3f9a4a7..a35ff96815 100644 --- a/services/surfaceflinger/tests/unittests/VSyncReactorTest.cpp +++ b/services/surfaceflinger/tests/unittests/VSyncReactorTest.cpp @@ -77,12 +77,12 @@ struct MockVSyncDispatch : VSyncDispatch { }; std::shared_ptr<android::FenceTime> generateInvalidFence() { - sp<Fence> fence = new Fence(); + sp<Fence> fence = sp<Fence>::make(); return std::make_shared<android::FenceTime>(fence); } std::shared_ptr<android::FenceTime> generatePendingFence() { - sp<Fence> fence = new Fence(dup(fileno(tmpfile()))); + sp<Fence> fence = sp<Fence>::make(dup(fileno(tmpfile()))); return std::make_shared<android::FenceTime>(fence); } @@ -92,7 +92,7 @@ void signalFenceWithTime(std::shared_ptr<android::FenceTime> const& fence, nsecs } std::shared_ptr<android::FenceTime> generateSignalledFenceWithTime(nsecs_t time) { - sp<Fence> fence = new Fence(dup(fileno(tmpfile()))); + sp<Fence> fence = sp<Fence>::make(dup(fileno(tmpfile()))); std::shared_ptr<android::FenceTime> ft = std::make_shared<android::FenceTime>(fence); signalFenceWithTime(ft, time); return ft; diff --git a/services/surfaceflinger/tests/unittests/mock/MockEventThread.h b/services/surfaceflinger/tests/unittests/mock/MockEventThread.h index d30dc42cbb..ded68069cb 100644 --- a/services/surfaceflinger/tests/unittests/mock/MockEventThread.h +++ b/services/surfaceflinger/tests/unittests/mock/MockEventThread.h @@ -24,6 +24,8 @@ namespace android::mock { class EventThread : public android::EventThread { public: + static constexpr auto kCallingUid = static_cast<uid_t>(0); + EventThread(); ~EventThread() override; diff --git a/services/surfaceflinger/tests/utils/ScreenshotUtils.h b/services/surfaceflinger/tests/utils/ScreenshotUtils.h index 6ada54954a..cb7040a68b 100644 --- a/services/surfaceflinger/tests/utils/ScreenshotUtils.h +++ b/services/surfaceflinger/tests/utils/ScreenshotUtils.h @@ -39,7 +39,7 @@ public: SurfaceComposerClient::Transaction().apply(true); captureArgs.dataspace = ui::Dataspace::V0_SRGB; - const sp<SyncScreenCaptureListener> captureListener = new SyncScreenCaptureListener(); + const sp<SyncScreenCaptureListener> captureListener = sp<SyncScreenCaptureListener>::make(); binder::Status status = sf->captureDisplay(captureArgs, captureListener); status_t err = statusTFromBinderStatus(status); if (err != NO_ERROR) { @@ -73,7 +73,7 @@ public: SurfaceComposerClient::Transaction().apply(true); captureArgs.dataspace = ui::Dataspace::V0_SRGB; - const sp<SyncScreenCaptureListener> captureListener = new SyncScreenCaptureListener(); + const sp<SyncScreenCaptureListener> captureListener = sp<SyncScreenCaptureListener>::make(); binder::Status status = sf->captureLayers(captureArgs, captureListener); status_t err = statusTFromBinderStatus(status); if (err != NO_ERROR) { diff --git a/services/surfaceflinger/tests/vsync/vsync.cpp b/services/surfaceflinger/tests/vsync/vsync.cpp index 9fcce32c38..8b4a6be1bf 100644 --- a/services/surfaceflinger/tests/vsync/vsync.cpp +++ b/services/surfaceflinger/tests/vsync/vsync.cpp @@ -61,8 +61,7 @@ int main(int /*argc*/, char** /*argv*/) { DisplayEventReceiver myDisplayEvent; - - sp<Looper> loop = new Looper(false); + sp<Looper> loop = sp<Looper>::make(false); loop->addFd(myDisplayEvent.getFd(), 0, ALOOPER_EVENT_INPUT, receiver, &myDisplayEvent); |