Skip to content

Commit f73db7a

Browse files
Priyanka Advani (xWF)Android (Google) Code Review
authored andcommitted
Revert "Harden construction sites of android::StrongPointer."
This reverts commit 8179380. Reason for revert: Droidmonitor created revert due to b/397788382. Will be verifying through ABTD before submission. Change-Id: Idd58b82a5a5380053cdff4e7b92eafa66b2c2782
1 parent 8179380 commit f73db7a

25 files changed

Lines changed: 110 additions & 130 deletions

libs/gui/BLASTBufferQueue.cpp

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -197,15 +197,15 @@ BLASTBufferQueue::BLASTBufferQueue(const std::string& name, bool updateDestinati
197197
mUpdateDestinationFrame(updateDestinationFrame) {
198198
createBufferQueue(&mProducer, &mConsumer);
199199
#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
200-
mBufferItemConsumer = sp<BLASTBufferItemConsumer>::make(mProducer, mConsumer,
201-
GraphicBuffer::USAGE_HW_COMPOSER |
202-
GraphicBuffer::USAGE_HW_TEXTURE,
203-
1, false, this);
200+
mBufferItemConsumer = new BLASTBufferItemConsumer(mProducer, mConsumer,
201+
GraphicBuffer::USAGE_HW_COMPOSER |
202+
GraphicBuffer::USAGE_HW_TEXTURE,
203+
1, false, this);
204204
#else
205-
mBufferItemConsumer = sp<BLASTBufferItemConsumer>::make(mConsumer,
206-
GraphicBuffer::USAGE_HW_COMPOSER |
207-
GraphicBuffer::USAGE_HW_TEXTURE,
208-
1, false, this);
205+
mBufferItemConsumer = new BLASTBufferItemConsumer(mConsumer,
206+
GraphicBuffer::USAGE_HW_COMPOSER |
207+
GraphicBuffer::USAGE_HW_TEXTURE,
208+
1, false, this);
209209
#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
210210
// since the adapter is in the client process, set dequeue timeout
211211
// explicitly so that dequeueBuffer will block
@@ -641,8 +641,7 @@ status_t BLASTBufferQueue::acquireNextBufferLocked(
641641
bufferItem.mScalingMode, crop);
642642

643643
auto releaseBufferCallback = makeReleaseBufferCallbackThunk();
644-
sp<Fence> fence =
645-
bufferItem.mFence ? sp<Fence>::make(bufferItem.mFence->dup()) : Fence::NO_FENCE;
644+
sp<Fence> fence = bufferItem.mFence ? new Fence(bufferItem.mFence->dup()) : Fence::NO_FENCE;
646645

647646
nsecs_t dequeueTime = -1;
648647
{
@@ -1019,8 +1018,7 @@ sp<Surface> BLASTBufferQueue::getSurface(bool includeSurfaceControlHandle) {
10191018
if (includeSurfaceControlHandle && mSurfaceControl) {
10201019
scHandle = mSurfaceControl->getHandle();
10211020
}
1022-
return sp<BBQSurface>::make(mProducer, true, scHandle,
1023-
sp<BLASTBufferQueue>::fromExisting(this));
1021+
return new BBQSurface(mProducer, true, scHandle, this);
10241022
}
10251023

10261024
void BLASTBufferQueue::mergeWithNextTransaction(SurfaceComposerClient::Transaction* t,
@@ -1183,7 +1181,7 @@ class BBQBufferQueueProducer : public BufferQueueProducer {
11831181
return BufferQueueProducer::connect(listener, api, producerControlledByApp, output);
11841182
}
11851183

1186-
return BufferQueueProducer::connect(sp<AsyncProducerListener>::make(listener), api,
1184+
return BufferQueueProducer::connect(new AsyncProducerListener(listener), api,
11871185
producerControlledByApp, output);
11881186
}
11891187

libs/gui/BufferItem.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,14 +215,14 @@ status_t BufferItem::unflatten(
215215
FlattenableUtils::read(buffer, size, flags);
216216

217217
if (flags & 1) {
218-
mGraphicBuffer = sp<GraphicBuffer>::make();
218+
mGraphicBuffer = new GraphicBuffer();
219219
status_t err = mGraphicBuffer->unflatten(buffer, size, fds, count);
220220
if (err) return err;
221221
size -= FlattenableUtils::align<4>(buffer);
222222
}
223223

224224
if (flags & 2) {
225-
mFence = sp<Fence>::make();
225+
mFence = new Fence();
226226
status_t err = mFence->unflatten(buffer, size, fds, count);
227227
if (err) return err;
228228
size -= FlattenableUtils::align<4>(buffer);

libs/gui/BufferQueue.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,16 +125,15 @@ void BufferQueue::createBufferQueue(sp<IGraphicBufferProducer>* outProducer,
125125
LOG_ALWAYS_FATAL_IF(outConsumer == nullptr,
126126
"BufferQueue: outConsumer must not be NULL");
127127

128-
sp<BufferQueueCore> core = sp<BufferQueueCore>::make();
128+
sp<BufferQueueCore> core(new BufferQueueCore());
129129
LOG_ALWAYS_FATAL_IF(core == nullptr,
130130
"BufferQueue: failed to create BufferQueueCore");
131131

132-
sp<IGraphicBufferProducer> producer =
133-
sp<BufferQueueProducer>::make(core, consumerIsSurfaceFlinger);
132+
sp<IGraphicBufferProducer> producer(new BufferQueueProducer(core, consumerIsSurfaceFlinger));
134133
LOG_ALWAYS_FATAL_IF(producer == nullptr,
135134
"BufferQueue: failed to create BufferQueueProducer");
136135

137-
sp<IGraphicBufferConsumer> consumer = sp<BufferQueueConsumer>::make(core);
136+
sp<IGraphicBufferConsumer> consumer(new BufferQueueConsumer(core));
138137
LOG_ALWAYS_FATAL_IF(consumer == nullptr,
139138
"BufferQueue: failed to create BufferQueueConsumer");
140139

libs/gui/BufferQueueProducer.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -693,11 +693,11 @@ status_t BufferQueueProducer::dequeueBuffer(int* outSlot, sp<android::Fence>* ou
693693
.requestorName = {mConsumerName.c_str(), mConsumerName.size()},
694694
.extras = std::move(tempOptions),
695695
};
696-
sp<GraphicBuffer> graphicBuffer = sp<GraphicBuffer>::make(allocRequest);
696+
sp<GraphicBuffer> graphicBuffer = new GraphicBuffer(allocRequest);
697697
#else
698698
sp<GraphicBuffer> graphicBuffer =
699-
sp<GraphicBuffer>::make(width, height, format, BQ_LAYER_COUNT, usage,
700-
std::string{mConsumerName.c_str(), mConsumerName.size()});
699+
new GraphicBuffer(width, height, format, BQ_LAYER_COUNT, usage,
700+
{mConsumerName.c_str(), mConsumerName.size()});
701701
#endif
702702

703703
status_t error = graphicBuffer->initCheck();
@@ -1464,7 +1464,7 @@ status_t BufferQueueProducer::connect(const sp<IProducerListener>& listener,
14641464
#ifndef NO_BINDER
14651465
if (IInterface::asBinder(listener)->remoteBinder() != nullptr) {
14661466
status = IInterface::asBinder(listener)->linkToDeath(
1467-
sp<IBinder::DeathRecipient>::fromExisting(this));
1467+
static_cast<IBinder::DeathRecipient*>(this));
14681468
if (status != NO_ERROR) {
14691469
BQ_LOGE("connect: linkToDeath failed: %s (%d)",
14701470
strerror(-status), status);
@@ -1553,7 +1553,8 @@ status_t BufferQueueProducer::disconnect(int api, DisconnectMode mode) {
15531553
IInterface::asBinder(mCore->mLinkedToDeath);
15541554
// This can fail if we're here because of the death
15551555
// notification, but we just ignore it
1556-
token->unlinkToDeath(sp<IBinder::DeathRecipient>::fromExisting(this));
1556+
token->unlinkToDeath(
1557+
static_cast<IBinder::DeathRecipient*>(this));
15571558
}
15581559
#endif
15591560
mCore->mSharedBufferSlot =
@@ -1684,11 +1685,11 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height,
16841685
#endif
16851686

16861687
#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(BQ_EXTENDEDALLOCATE)
1687-
sp<GraphicBuffer> graphicBuffer = sp<GraphicBuffer>::make(allocRequest);
1688+
sp<GraphicBuffer> graphicBuffer = new GraphicBuffer(allocRequest);
16881689
#else
1689-
sp<GraphicBuffer> graphicBuffer =
1690-
sp<GraphicBuffer>::make(allocWidth, allocHeight, allocFormat, BQ_LAYER_COUNT,
1691-
allocUsage, allocName);
1690+
sp<GraphicBuffer> graphicBuffer = new GraphicBuffer(
1691+
allocWidth, allocHeight, allocFormat, BQ_LAYER_COUNT,
1692+
allocUsage, allocName);
16921693
#endif
16931694

16941695
status_t result = graphicBuffer->initCheck();

libs/gui/BufferReleaseChannel.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ status_t BufferReleaseChannel::Message::flatten(void*& buffer, size_t& size, int
108108

109109
status_t BufferReleaseChannel::Message::unflatten(void const*& buffer, size_t& size,
110110
int const*& fds, size_t& count) {
111-
releaseFence = sp<Fence>::make();
111+
releaseFence = new Fence();
112112
if (status_t err = releaseFence->unflatten(buffer, size, fds, count); err != OK) {
113113
return err;
114114
}
@@ -344,4 +344,4 @@ status_t BufferReleaseChannel::open(std::string name,
344344
return STATUS_OK;
345345
}
346346

347-
} // namespace android::gui
347+
} // namespace android::gui

libs/gui/Choreographer.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616

1717
// #define LOG_NDEBUG 0
18-
#include "utils/Looper.h"
1918
#define ATRACE_TAG ATRACE_TAG_GRAPHICS
2019

2120
#include <gui/Choreographer.h>
@@ -155,7 +154,7 @@ void Choreographer::postFrameCallbackDelayed(AChoreographer_frameCallback cb,
155154
if (std::this_thread::get_id() != mThreadId) {
156155
if (mLooper != nullptr) {
157156
Message m{MSG_SCHEDULE_VSYNC};
158-
mLooper->sendMessage(sp<MessageHandler>::fromExisting(this), m);
157+
mLooper->sendMessage(this, m);
159158
} else {
160159
scheduleVsync();
161160
}
@@ -165,7 +164,7 @@ void Choreographer::postFrameCallbackDelayed(AChoreographer_frameCallback cb,
165164
} else {
166165
if (mLooper != nullptr) {
167166
Message m{MSG_SCHEDULE_CALLBACKS};
168-
mLooper->sendMessageDelayed(delay, sp<MessageHandler>::fromExisting(this), m);
167+
mLooper->sendMessageDelayed(delay, this, m);
169168
} else {
170169
scheduleCallbacks();
171170
}
@@ -229,7 +228,7 @@ void Choreographer::unregisterRefreshRateCallback(AChoreographer_refreshRateCall
229228
void Choreographer::scheduleLatestConfigRequest() {
230229
if (mLooper != nullptr) {
231230
Message m{MSG_HANDLE_REFRESH_RATE_UPDATES};
232-
mLooper->sendMessage(sp<MessageHandler>::fromExisting(this), m);
231+
mLooper->sendMessage(this, m);
233232
} else {
234233
// If the looper thread is detached from Choreographer, then refresh rate
235234
// changes will be handled in AChoreographer_handlePendingEvents, so we

libs/gui/ConsumerBase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ void ConsumerBase::initialize(bool controlledByApp) {
110110
// dropping to 0 at the end of the ctor. Since all we need is a wp<...>
111111
// that's what we create.
112112
wp<ConsumerListener> listener = static_cast<ConsumerListener*>(this);
113-
sp<IConsumerListener> proxy = sp<BufferQueue::ProxyConsumerListener>::make(listener);
113+
sp<IConsumerListener> proxy = new BufferQueue::ProxyConsumerListener(listener);
114114

115115
status_t err = mConsumer->consumerConnect(proxy, controlledByApp);
116116
if (err != NO_ERROR) {

libs/gui/CpuConsumer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ status_t CpuConsumer::unlockBuffer(const LockedBuffer &nativeBuffer) {
230230
return err;
231231
}
232232

233-
sp<Fence> fence(fenceFd >= 0 ? sp<Fence>::make(fenceFd) : Fence::NO_FENCE);
233+
sp<Fence> fence(fenceFd >= 0 ? new Fence(fenceFd) : Fence::NO_FENCE);
234234
addReleaseFenceLocked(ab.mSlot, ab.mGraphicBuffer, fence);
235235
releaseBufferLocked(ab.mSlot, ab.mGraphicBuffer);
236236

libs/gui/DisplayEventDispatcher.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,7 @@ status_t DisplayEventDispatcher::initialize() {
5959
}
6060

6161
if (mLooper != nullptr) {
62-
int rc = mLooper->addFd(mReceiver.getFd(), 0, Looper::EVENT_INPUT,
63-
sp<LooperCallback>::fromExisting(this), NULL);
62+
int rc = mLooper->addFd(mReceiver.getFd(), 0, Looper::EVENT_INPUT, this, NULL);
6463
if (rc < 0) {
6564
return UNKNOWN_ERROR;
6665
}

libs/gui/GLConsumer.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ status_t GLConsumer::releaseTexImage() {
333333
}
334334

335335
if (mReleasedTexImage == nullptr) {
336-
mReleasedTexImage = sp<EglImage>::make(getDebugTexImageBuffer());
336+
mReleasedTexImage = new EglImage(getDebugTexImageBuffer());
337337
}
338338

339339
mCurrentTexture = BufferQueue::INVALID_BUFFER_SLOT;
@@ -365,10 +365,10 @@ sp<GraphicBuffer> GLConsumer::getDebugTexImageBuffer() {
365365
if (CC_UNLIKELY(sReleasedTexImageBuffer == nullptr)) {
366366
// The first time, create the debug texture in case the application
367367
// continues to use it.
368-
sp<GraphicBuffer> buffer =
369-
sp<GraphicBuffer>::make(kDebugData.width, kDebugData.height, PIXEL_FORMAT_RGBA_8888,
370-
DEFAULT_USAGE_FLAGS | GraphicBuffer::USAGE_SW_WRITE_RARELY,
371-
"[GLConsumer debug texture]");
368+
sp<GraphicBuffer> buffer = new GraphicBuffer(
369+
kDebugData.width, kDebugData.height, PIXEL_FORMAT_RGBA_8888,
370+
DEFAULT_USAGE_FLAGS | GraphicBuffer::USAGE_SW_WRITE_RARELY,
371+
"[GLConsumer debug texture]");
372372
uint32_t* bits;
373373
buffer->lock(GraphicBuffer::USAGE_SW_WRITE_RARELY, reinterpret_cast<void**>(&bits));
374374
uint32_t stride = buffer->getStride();
@@ -400,7 +400,7 @@ status_t GLConsumer::acquireBufferLocked(BufferItem *item,
400400
// replaces any old EglImage with a new one (using the new buffer).
401401
if (item->mGraphicBuffer != nullptr) {
402402
int slot = item->mSlot;
403-
mEglSlots[slot].mEglImage = sp<EglImage>::make(item->mGraphicBuffer);
403+
mEglSlots[slot].mEglImage = new EglImage(item->mGraphicBuffer);
404404
}
405405

406406
return NO_ERROR;
@@ -737,7 +737,7 @@ status_t GLConsumer::syncForReleaseLocked(EGLDisplay dpy) {
737737
"fd: %#x", eglGetError());
738738
return UNKNOWN_ERROR;
739739
}
740-
sp<Fence> fence = sp<Fence>::make(fenceFd);
740+
sp<Fence> fence(new Fence(fenceFd));
741741
status_t err = addReleaseFenceLocked(mCurrentTexture,
742742
mCurrentTextureImage->graphicBuffer(), fence);
743743
if (err != OK) {

0 commit comments

Comments
 (0)