File tree Expand file tree Collapse file tree 1 file changed +17
-9
lines changed
Expand file tree Collapse file tree 1 file changed +17
-9
lines changed Original file line number Diff line number Diff line change @@ -227,21 +227,29 @@ void Caches::clearGarbage() {
227227 textureCache.clearGarbage ();
228228 pathCache.clearGarbage ();
229229
230- Mutex::Autolock _l (mGarbageLock );
230+ Vector<DisplayList*> displayLists;
231+ Vector<Layer*> layers;
232+
233+ { // scope for the lock
234+ Mutex::Autolock _l (mGarbageLock );
235+ displayLists = mDisplayListGarbage ;
236+ layers = mLayerGarbage ;
237+ mDisplayListGarbage .clear ();
238+ mLayerGarbage .clear ();
239+ }
231240
232- size_t count = mLayerGarbage .size ();
241+ size_t count = displayLists .size ();
233242 for (size_t i = 0 ; i < count; i++) {
234- Layer* layer = mLayerGarbage .itemAt (i);
235- delete layer ;
243+ DisplayList* displayList = displayLists .itemAt (i);
244+ delete displayList ;
236245 }
237- mLayerGarbage .clear ();
238246
239- count = mDisplayListGarbage .size ();
247+ count = layers .size ();
240248 for (size_t i = 0 ; i < count; i++) {
241- DisplayList* displayList = mDisplayListGarbage .itemAt (i);
242- delete displayList ;
249+ Layer* layer = layers .itemAt (i);
250+ delete layer ;
243251 }
244- mDisplayListGarbage .clear ();
252+ layers .clear ();
245253}
246254
247255void Caches::deleteLayerDeferred (Layer* layer) {
You can’t perform that action at this time.
0 commit comments