SL-17483: Per review feedback, avoid LLPointer refcount twiddling

when passing LLPointers into functions. Only increment the refcount when
storing in new ImageRequest.
meow-7.2.2
Nat Goodspeed 2022-06-13 15:18:14 -04:00
parent 64209ddeea
commit 3b043d90b6
2 changed files with 13 additions and 8 deletions

View File

@ -34,15 +34,17 @@
class ImageRequest
{
public:
ImageRequest(LLPointer<LLImageFormatted> image,
ImageRequest(const LLPointer<LLImageFormatted>& image,
S32 discard, BOOL needs_aux,
LLPointer<LLImageDecodeThread::Responder> responder);
const LLPointer<LLImageDecodeThread::Responder>& responder);
virtual ~ImageRequest();
/*virtual*/ bool processRequest();
/*virtual*/ void finishRequest(bool completed);
private:
// LLPointers stored in ImageRequest MUST be LLPointer instances rather
// than references: we need to increment the refcount when storing these.
// input
LLPointer<LLImageFormatted> mFormattedImage;
S32 mDiscardLevel;
@ -82,8 +84,11 @@ S32 LLImageDecodeThread::getPending()
return mThreadPool->getQueue().size();
}
LLImageDecodeThread::handle_t LLImageDecodeThread::decodeImage(LLPointer<LLImageFormatted> image,
S32 discard, BOOL needs_aux, LLPointer<LLImageDecodeThread::Responder> responder)
LLImageDecodeThread::handle_t LLImageDecodeThread::decodeImage(
const LLPointer<LLImageFormatted>& image,
S32 discard,
BOOL needs_aux,
const LLPointer<LLImageDecodeThread::Responder>& responder)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
@ -113,9 +118,9 @@ LLImageDecodeThread::Responder::~Responder()
//----------------------------------------------------------------------------
ImageRequest::ImageRequest(LLPointer<LLImageFormatted> image,
ImageRequest::ImageRequest(const LLPointer<LLImageFormatted>& image,
S32 discard, BOOL needs_aux,
LLPointer<LLImageDecodeThread::Responder> responder)
const LLPointer<LLImageDecodeThread::Responder>& responder)
: mFormattedImage(image),
mDiscardLevel(discard),
mNeedsAux(needs_aux),

View File

@ -52,9 +52,9 @@ public:
// meant to resemble LLQueuedThread::handle_t
typedef U32 handle_t;
handle_t decodeImage(LLPointer<LLImageFormatted> image,
handle_t decodeImage(const LLPointer<LLImageFormatted>& image,
S32 discard, BOOL needs_aux,
LLPointer<Responder> responder);
const LLPointer<Responder>& responder);
S32 getPending();
S32 update(F32 max_time_ms);
void shutdown();