const SkIRect srcSubset = fUsesSrcInput ? src->subset() : SkIRect::MakeWH(0, 0);
SkImageFilterCacheKey key(fUniqueID, context.ctm(), context.clipBounds(), srcGenID, srcSubset);
if (context.cache()) {
- SkSpecialImage* result = context.cache()->get(key, offset);
+ sk_sp<SkSpecialImage> result = context.cache()->get(key, offset);
if (result) {
- return sk_sp<SkSpecialImage>(SkRef(result));
+ return result;
}
}
SK_DECLARE_INTERNAL_LLIST_INTERFACE(Value);
};
- SkSpecialImage* get(const Key& key, SkIPoint* offset) const override {
+ sk_sp<SkSpecialImage> get(const Key& key, SkIPoint* offset) const override {
SkAutoMutexAcquire mutex(fMutex);
if (Value* v = fLookup.find(key)) {
*offset = v->fOffset;
fLRU.remove(v);
fLRU.addToHead(v);
}
- return v->fImage.get();
+ return v->fImage;
}
return nullptr;
}
virtual ~SkImageFilterCache() {}
static SkImageFilterCache* Create(size_t maxBytes);
static SkImageFilterCache* Get();
- virtual SkSpecialImage* get(const SkImageFilterCacheKey& key, SkIPoint* offset) const = 0;
+ virtual sk_sp<SkSpecialImage> get(const SkImageFilterCacheKey& key, SkIPoint* offset) const = 0;
virtual void set(const SkImageFilterCacheKey& key, SkSpecialImage* image,
const SkIPoint& offset) = 0;
virtual void purge() = 0;
SkIPoint foundOffset;
- SkSpecialImage* foundImage = cache->get(key1, &foundOffset);
+ sk_sp<SkSpecialImage> foundImage = cache->get(key1, &foundOffset);
REPORTER_ASSERT(reporter, foundImage);
REPORTER_ASSERT(reporter, offset == foundOffset);