/* * Copyright 2018 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "GrUninstantiateProxyTracker.h" #include "GrSurfaceProxy.h" #include "GrSurfaceProxyPriv.h" void GrUninstantiateProxyTracker::addProxy(GrSurfaceProxy* proxy) { #ifdef SK_DEBUG using LazyType = GrSurfaceProxy::LazyInstantiationType; SkASSERT(LazyType::kUninstantiate == proxy->priv().lazyInstantiationType()); for (int i = 0; i < fProxies.count(); ++i) { SkASSERT(proxy != fProxies[i].get()); } #endif fProxies.push_back(sk_ref_sp(proxy)); } void GrUninstantiateProxyTracker::uninstantiateAllProxies() { for (int i = 0; i < fProxies.count(); ++i) { GrSurfaceProxy* proxy = fProxies[i].get(); SkASSERT(proxy->priv().isSafeToUninstantiate()); proxy->deInstantiate(); } fProxies.reset(); }