@@ -166,14 +166,10 @@ void RasterCache::PrepareNewFrame() {
166166void RasterCache::SweepOneCacheAfterFrame (RasterCacheKey::Map<Entry>& cache,
167167 RasterCacheMetrics& picture_metrics,
168168 RasterCacheMetrics& layer_metrics) {
169- std::vector<RasterCacheKey::Map<Entry>::iterator> dead;
170-
171169 for (auto it = cache.begin (); it != cache.end (); ++it) {
172170 Entry& entry = it->second ;
173-
174- if (!entry.encountered_this_frame ) {
175- dead.push_back (it);
176- } else if (entry.image ) {
171+ FML_CHECK (entry.encountered_this_frame );
172+ if (entry.image ) {
177173 RasterCacheKeyKind kind = it->first .kind ();
178174 switch (kind) {
179175 case RasterCacheKeyKind::kDisplayListMetrics :
@@ -188,28 +184,40 @@ void RasterCache::SweepOneCacheAfterFrame(RasterCacheKey::Map<Entry>& cache,
188184 }
189185 entry.encountered_this_frame = false ;
190186 }
187+ }
188+
189+ void RasterCache::ClearUnusedEntry () {
190+ picture_metrics_ = {};
191+ layer_metrics_ = {};
192+
193+ std::vector<RasterCacheKey::Map<Entry>::iterator> dead;
194+
195+ for (auto it = cache_.begin (); it != cache_.end (); ++it) {
196+ Entry& entry = it->second ;
197+ if (!entry.encountered_this_frame ) {
198+ dead.push_back (it);
199+ }
200+ }
191201
192202 for (auto it : dead) {
193203 if (it->second .image ) {
194204 RasterCacheKeyKind kind = it->first .kind ();
195205 switch (kind) {
196206 case RasterCacheKeyKind::kDisplayListMetrics :
197- picture_metrics .eviction_count ++;
198- picture_metrics .eviction_bytes += it->second .image ->image_bytes ();
207+ picture_metrics_ .eviction_count ++;
208+ picture_metrics_ .eviction_bytes += it->second .image ->image_bytes ();
199209 break ;
200210 case RasterCacheKeyKind::kLayerMetrics :
201- layer_metrics .eviction_count ++;
202- layer_metrics .eviction_bytes += it->second .image ->image_bytes ();
211+ layer_metrics_ .eviction_count ++;
212+ layer_metrics_ .eviction_bytes += it->second .image ->image_bytes ();
203213 break ;
204214 }
205215 }
206- cache .erase (it);
216+ cache_ .erase (it);
207217 }
208218}
209219
210220void RasterCache::CleanupAfterFrame () {
211- picture_metrics_ = {};
212- layer_metrics_ = {};
213221 SweepOneCacheAfterFrame (cache_, picture_metrics_, layer_metrics_);
214222 TraceStatsToTimeline ();
215223}
0 commit comments