Skip to content

Commit 78a579c

Browse files
Treehugger RobotAndroid (Google) Code Review
authored andcommitted
Merge "Revert^2 "Harden construction sites of android::StrongPointer."" into main
2 parents e1679f7 + 8ed8659 commit 78a579c

23 files changed

Lines changed: 99 additions & 89 deletions

libs/gui/BLASTBufferQueue.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,8 @@ status_t BLASTBufferQueue::acquireNextBufferLocked(
637637
bufferItem.mScalingMode, crop);
638638

639639
auto releaseBufferCallback = makeReleaseBufferCallbackThunk();
640-
sp<Fence> fence = bufferItem.mFence ? new Fence(bufferItem.mFence->dup()) : Fence::NO_FENCE;
640+
sp<Fence> fence =
641+
bufferItem.mFence ? sp<Fence>::make(bufferItem.mFence->dup()) : Fence::NO_FENCE;
641642

642643
nsecs_t dequeueTime = -1;
643644
{
@@ -1014,7 +1015,7 @@ sp<Surface> BLASTBufferQueue::getSurface(bool includeSurfaceControlHandle) {
10141015
if (includeSurfaceControlHandle && mSurfaceControl) {
10151016
scHandle = mSurfaceControl->getHandle();
10161017
}
1017-
return new BBQSurface(mProducer, true, scHandle, this);
1018+
return sp<BBQSurface>::make(mProducer, true, scHandle, this);
10181019
}
10191020

10201021
void BLASTBufferQueue::mergeWithNextTransaction(SurfaceComposerClient::Transaction* t,

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 = new GraphicBuffer();
218+
mGraphicBuffer = sp<GraphicBuffer>::make();
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 = new Fence();
225+
mFence = sp<Fence>::make();
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: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,16 @@ 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(new BufferQueueCore());
128+
sp<BufferQueueCore> core = sp<BufferQueueCore>::make();
129129
LOG_ALWAYS_FATAL_IF(core == nullptr,
130130
"BufferQueue: failed to create BufferQueueCore");
131131

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

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

libs/gui/BufferQueueProducer.cpp

Lines changed: 9 additions & 10 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 = new GraphicBuffer(allocRequest);
696+
sp<GraphicBuffer> graphicBuffer = sp<GraphicBuffer>::make(allocRequest);
697697
#else
698698
sp<GraphicBuffer> graphicBuffer =
699-
new GraphicBuffer(width, height, format, BQ_LAYER_COUNT, usage,
700-
{mConsumerName.c_str(), mConsumerName.size()});
699+
sp<GraphicBuffer>::make(width, height, format, BQ_LAYER_COUNT, usage,
700+
std::string{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-
static_cast<IBinder::DeathRecipient*>(this));
1467+
sp<IBinder::DeathRecipient>::fromExisting(this));
14681468
if (status != NO_ERROR) {
14691469
BQ_LOGE("connect: linkToDeath failed: %s (%d)",
14701470
strerror(-status), status);
@@ -1553,8 +1553,7 @@ 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(
1557-
static_cast<IBinder::DeathRecipient*>(this));
1556+
token->unlinkToDeath(static_cast<IBinder::DeathRecipient*>(this));
15581557
}
15591558
#endif
15601559
mCore->mSharedBufferSlot =
@@ -1685,11 +1684,11 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height,
16851684
#endif
16861685

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

16951694
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 = new Fence();
111+
releaseFence = sp<Fence>::make();
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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <gui/Choreographer.h>
2121
#include <gui/TraceUtils.h>
2222
#include <jni.h>
23+
#include <utils/Looper.h>
2324

2425
#undef LOG_TAG
2526
#define LOG_TAG "AChoreographer"

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

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 = new EglImage(getDebugTexImageBuffer());
336+
mReleasedTexImage = sp<EglImage>::make(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 = new GraphicBuffer(
369-
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 =
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]");
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 = new EglImage(item->mGraphicBuffer);
403+
mEglSlots[slot].mEglImage = sp<EglImage>::make(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(new Fence(fenceFd));
740+
sp<Fence> fence = sp<Fence>::make(fenceFd);
741741
status_t err = addReleaseFenceLocked(mCurrentTexture,
742742
mCurrentTextureImage->graphicBuffer(), fence);
743743
if (err != OK) {

libs/gui/IGraphicBufferProducer.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class BpGraphicBufferProducer : public BpInterface<IGraphicBufferProducer>
104104
}
105105
bool nonNull = reply.readInt32();
106106
if (nonNull) {
107-
*buf = new GraphicBuffer();
107+
*buf = sp<GraphicBuffer>::make();
108108
result = reply.read(**buf);
109109
if(result != NO_ERROR) {
110110
(*buf).clear();
@@ -197,7 +197,7 @@ class BpGraphicBufferProducer : public BpInterface<IGraphicBufferProducer>
197197
}
198198

199199
*buf = reply.readInt32();
200-
*fence = new Fence();
200+
*fence = sp<Fence>::make();
201201
result = reply.read(**fence);
202202
if (result != NO_ERROR) {
203203
fence->clear();
@@ -293,7 +293,7 @@ class BpGraphicBufferProducer : public BpInterface<IGraphicBufferProducer>
293293
if (result == NO_ERROR) {
294294
bool nonNull = reply.readInt32();
295295
if (nonNull) {
296-
*outBuffer = new GraphicBuffer;
296+
*outBuffer = sp<GraphicBuffer>::make();
297297
result = reply.read(**outBuffer);
298298
if (result != NO_ERROR) {
299299
outBuffer->clear();
@@ -302,7 +302,7 @@ class BpGraphicBufferProducer : public BpInterface<IGraphicBufferProducer>
302302
}
303303
nonNull = reply.readInt32();
304304
if (nonNull) {
305-
*outFence = new Fence;
305+
*outFence = sp<Fence>::make();
306306
result = reply.read(**outFence);
307307
if (result != NO_ERROR) {
308308
outBuffer->clear();
@@ -640,7 +640,7 @@ class BpGraphicBufferProducer : public BpInterface<IGraphicBufferProducer>
640640
bool hasBuffer = reply.readBool();
641641
sp<GraphicBuffer> buffer;
642642
if (hasBuffer) {
643-
buffer = new GraphicBuffer();
643+
buffer = sp<GraphicBuffer>::make();
644644
result = reply.read(*buffer);
645645
if (result == NO_ERROR) {
646646
result = reply.read(outTransformMatrix, sizeof(float) * 16);
@@ -650,7 +650,7 @@ class BpGraphicBufferProducer : public BpInterface<IGraphicBufferProducer>
650650
ALOGE("getLastQueuedBuffer failed to read buffer: %d", result);
651651
return result;
652652
}
653-
sp<Fence> fence(new Fence);
653+
sp<Fence> fence = sp<Fence>::make();
654654
result = reply.read(*fence);
655655
if (result != NO_ERROR) {
656656
ALOGE("getLastQueuedBuffer failed to read fence: %d", result);
@@ -687,7 +687,7 @@ class BpGraphicBufferProducer : public BpInterface<IGraphicBufferProducer>
687687
}
688688
sp<GraphicBuffer> buffer;
689689
if (hasBuffer) {
690-
buffer = new GraphicBuffer();
690+
buffer = sp<GraphicBuffer>::make();
691691
result = reply.read(*buffer);
692692
if (result == NO_ERROR) {
693693
result = reply.read(*outRect);
@@ -700,7 +700,7 @@ class BpGraphicBufferProducer : public BpInterface<IGraphicBufferProducer>
700700
ALOGE("getLastQueuedBuffer failed to read buffer: %d", result);
701701
return result;
702702
}
703-
sp<Fence> fence(new Fence);
703+
sp<Fence> fence = sp<Fence>::make();
704704
result = reply.read(*fence);
705705
if (result != NO_ERROR) {
706706
ALOGE("getLastQueuedBuffer failed to read fence: %d", result);
@@ -1232,7 +1232,7 @@ status_t BnGraphicBufferProducer::onTransact(
12321232
}
12331233
case ATTACH_BUFFER: {
12341234
CHECK_INTERFACE(IGraphicBufferProducer, data, reply);
1235-
sp<GraphicBuffer> buffer = new GraphicBuffer();
1235+
sp<GraphicBuffer> buffer = sp<GraphicBuffer>::make();
12361236
status_t result = data.read(*buffer.get());
12371237
int slot = 0;
12381238
if (result == NO_ERROR) {
@@ -1250,7 +1250,7 @@ status_t BnGraphicBufferProducer::onTransact(
12501250
return result;
12511251
}
12521252
for (sp<GraphicBuffer>& buffer : buffers) {
1253-
buffer = new GraphicBuffer();
1253+
buffer = sp<GraphicBuffer>::make();
12541254
result = data.read(*buffer.get());
12551255
if (result != NO_ERROR) {
12561256
return result;
@@ -1306,7 +1306,7 @@ status_t BnGraphicBufferProducer::onTransact(
13061306
case CANCEL_BUFFER: {
13071307
CHECK_INTERFACE(IGraphicBufferProducer, data, reply);
13081308
int buf = data.readInt32();
1309-
sp<Fence> fence = new Fence();
1309+
sp<Fence> fence = sp<Fence>::make();
13101310
status_t result = data.read(*fence.get());
13111311
if (result == NO_ERROR) {
13121312
result = cancelBuffer(buf, fence);

libs/gui/IGraphicBufferProducerFlattenables.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ status_t IGraphicBufferProducer::QueueBufferInput::unflatten(
105105
: std::nullopt;
106106
#endif // COM_ANDROID_GRAPHICS_LIBUI_FLAGS_APPLY_PICTURE_PROFILES
107107

108-
fence = new Fence();
108+
fence = sp<Fence>::make();
109109
status_t result = fence->unflatten(buffer, size, fds, count);
110110
if (result != NO_ERROR) {
111111
return result;
@@ -228,7 +228,7 @@ status_t IGraphicBufferProducer::RequestBufferOutput::unflatten(
228228
FlattenableUtils::read(fBuffer, size, result);
229229
int32_t isBufferNull = 0;
230230
FlattenableUtils::read(fBuffer, size, isBufferNull);
231-
buffer = new GraphicBuffer();
231+
buffer = sp<GraphicBuffer>::make();
232232
if (!isBufferNull) {
233233
status_t status = buffer->unflatten(fBuffer, size, fds, count);
234234
if (status != NO_ERROR) {
@@ -323,7 +323,7 @@ status_t IGraphicBufferProducer::DequeueBufferOutput::unflatten(
323323
FlattenableUtils::read(buffer, size, slot);
324324
FlattenableUtils::read(buffer, size, bufferAge);
325325

326-
fence = new Fence();
326+
fence = sp<Fence>::make();
327327
status_t status = fence->unflatten(buffer, size, fds, count);
328328
if (status != NO_ERROR) {
329329
return status;
@@ -395,7 +395,7 @@ status_t IGraphicBufferProducer::CancelBufferInput::unflatten(
395395

396396
FlattenableUtils::read(buffer, size, slot);
397397

398-
fence = new Fence();
398+
fence = sp<Fence>::make();
399399
return fence->unflatten(buffer, size, fds, count);
400400
}
401401

0 commit comments

Comments
 (0)