From 04617139f7f715bdc05a32a58e65e3c208bccff4 Mon Sep 17 00:00:00 2001 From: reed Date: Thu, 21 Aug 2014 09:46:49 -0700 Subject: expose generalized imagecache key BUG=skia: R=mtklein@google.com, halcanary@google.com, qiankun.miao@intel.com Author: reed@google.com Review URL: https://codereview.chromium.org/483493003 --- bench/ImageCacheBench.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'bench/ImageCacheBench.cpp') diff --git a/bench/ImageCacheBench.cpp b/bench/ImageCacheBench.cpp index e65d1fc3e8..07f332baa2 100644 --- a/bench/ImageCacheBench.cpp +++ b/bench/ImageCacheBench.cpp @@ -8,6 +8,19 @@ #include "Benchmark.h" #include "SkScaledImageCache.h" +namespace { +static void* gGlobalAddress; +class TestKey : public SkScaledImageCache::Key { +public: + void* fPtr; + intptr_t fValue; + + TestKey(intptr_t value) : fPtr(&gGlobalAddress), fValue(value) { + this->init(sizeof(fPtr) + sizeof(fValue)); + } +}; +} + class ImageCacheBench : public Benchmark { SkScaledImageCache fCache; SkBitmap fBM; @@ -22,12 +35,11 @@ public: } void populateCache() { - SkScalar scale = 1; for (int i = 0; i < CACHE_COUNT; ++i) { + TestKey key(i); SkBitmap tmp; tmp.allocN32Pixels(1, 1); - fCache.unlock(fCache.addAndLock(fBM, scale, scale, tmp)); - scale += 1; + fCache.unlock(fCache.addAndLock(key, tmp)); } } @@ -41,10 +53,12 @@ protected: this->populateCache(); } + TestKey key(-1); SkBitmap tmp; // search for a miss (-1 scale) for (int i = 0; i < loops; ++i) { - (void)fCache.findAndLock(fBM, -1, -1, &tmp); + SkDEBUGCODE(SkScaledImageCache::ID* id =) fCache.findAndLock(key, &tmp); + SkASSERT(NULL == id); } } -- cgit v1.2.3