Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: src/core/SkResourceCache.cpp

Issue 1809733002: detach -> release (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: (C) Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/core/SkResourceCache.h ('k') | src/core/SkStream.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkChecksum.h" 8 #include "SkChecksum.h"
9 #include "SkMessageBus.h" 9 #include "SkMessageBus.h"
10 #include "SkMipMap.h" 10 #include "SkMipMap.h"
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 } 272 }
273 273
274 // since the new rec may push us over-budget, we perform a purge check now 274 // since the new rec may push us over-budget, we perform a purge check now
275 this->purgeAsNeeded(); 275 this->purgeAsNeeded();
276 } 276 }
277 277
278 void SkResourceCache::remove(Rec* rec) { 278 void SkResourceCache::remove(Rec* rec) {
279 size_t used = rec->bytesUsed(); 279 size_t used = rec->bytesUsed();
280 SkASSERT(used <= fTotalBytesUsed); 280 SkASSERT(used <= fTotalBytesUsed);
281 281
282 this->detach(rec); 282 this->release(rec);
283 fHash->remove(rec->getKey()); 283 fHash->remove(rec->getKey());
284 284
285 fTotalBytesUsed -= used; 285 fTotalBytesUsed -= used;
286 fCount -= 1; 286 fCount -= 1;
287 287
288 if (gDumpCacheTransactions) { 288 if (gDumpCacheTransactions) {
289 SkString bytesStr, totalStr; 289 SkString bytesStr, totalStr;
290 make_size_str(used, &bytesStr); 290 make_size_str(used, &bytesStr);
291 make_size_str(fTotalBytesUsed, &totalStr); 291 make_size_str(fTotalBytesUsed, &totalStr);
292 SkDebugf("RC: remove %5s %12p key %08x -- total %5s, count %d\n", 292 SkDebugf("RC: remove %5s %12p key %08x -- total %5s, count %d\n",
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 if (fDiscardableFactory) { 388 if (fDiscardableFactory) {
389 SkDiscardableMemory* dm = fDiscardableFactory(bytes); 389 SkDiscardableMemory* dm = fDiscardableFactory(bytes);
390 return dm ? new SkCachedData(bytes, dm) : nullptr; 390 return dm ? new SkCachedData(bytes, dm) : nullptr;
391 } else { 391 } else {
392 return new SkCachedData(sk_malloc_throw(bytes), bytes); 392 return new SkCachedData(sk_malloc_throw(bytes), bytes);
393 } 393 }
394 } 394 }
395 395
396 /////////////////////////////////////////////////////////////////////////////// 396 ///////////////////////////////////////////////////////////////////////////////
397 397
398 void SkResourceCache::detach(Rec* rec) { 398 void SkResourceCache::release(Rec* rec) {
399 Rec* prev = rec->fPrev; 399 Rec* prev = rec->fPrev;
400 Rec* next = rec->fNext; 400 Rec* next = rec->fNext;
401 401
402 if (!prev) { 402 if (!prev) {
403 SkASSERT(fHead == rec); 403 SkASSERT(fHead == rec);
404 fHead = next; 404 fHead = next;
405 } else { 405 } else {
406 prev->fNext = next; 406 prev->fNext = next;
407 } 407 }
408 408
409 if (!next) { 409 if (!next) {
410 fTail = prev; 410 fTail = prev;
411 } else { 411 } else {
412 next->fPrev = prev; 412 next->fPrev = prev;
413 } 413 }
414 414
415 rec->fNext = rec->fPrev = nullptr; 415 rec->fNext = rec->fPrev = nullptr;
416 } 416 }
417 417
418 void SkResourceCache::moveToHead(Rec* rec) { 418 void SkResourceCache::moveToHead(Rec* rec) {
419 if (fHead == rec) { 419 if (fHead == rec) {
420 return; 420 return;
421 } 421 }
422 422
423 SkASSERT(fHead); 423 SkASSERT(fHead);
424 SkASSERT(fTail); 424 SkASSERT(fTail);
425 425
426 this->validate(); 426 this->validate();
427 427
428 this->detach(rec); 428 this->release(rec);
429 429
430 fHead->fPrev = rec; 430 fHead->fPrev = rec;
431 rec->fNext = fHead; 431 rec->fNext = fHead;
432 fHead = rec; 432 fHead = rec;
433 433
434 this->validate(); 434 this->validate();
435 } 435 }
436 436
437 void SkResourceCache::addToHead(Rec* rec) { 437 void SkResourceCache::addToHead(Rec* rec) {
438 this->validate(); 438 this->validate();
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 dump->dumpNumericValue(dumpName.c_str(), "size", "bytes", rec.bytesUsed( )); 700 dump->dumpNumericValue(dumpName.c_str(), "size", "bytes", rec.bytesUsed( ));
701 dump->setMemoryBacking(dumpName.c_str(), "malloc", nullptr); 701 dump->setMemoryBacking(dumpName.c_str(), "malloc", nullptr);
702 } 702 }
703 } 703 }
704 704
705 void SkResourceCache::DumpMemoryStatistics(SkTraceMemoryDump* dump) { 705 void SkResourceCache::DumpMemoryStatistics(SkTraceMemoryDump* dump) {
706 // Since resource could be backed by malloc or discardable, the cache always dumps detailed 706 // Since resource could be backed by malloc or discardable, the cache always dumps detailed
707 // stats to be accurate. 707 // stats to be accurate.
708 VisitAll(sk_trace_dump_visitor, dump); 708 VisitAll(sk_trace_dump_visitor, dump);
709 } 709 }
OLDNEW
« no previous file with comments | « src/core/SkResourceCache.h ('k') | src/core/SkStream.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698