diff options
author | Robert Phillips <robertphillips@google.com> | 2018-01-19 13:22:07 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-01-19 19:18:16 +0000 |
commit | 4d12051d351a0a210d62b2d7fcf2de33c712a468 (patch) | |
tree | 19aed5211f837d72d67bb6df56822f3ab2c2d419 /src | |
parent | bd4bfa8a6e91fbc88a7c0121470f359d96dd50ed (diff) |
Add explicit abandoned flag to the GrProxyProvider
In the DDL world it is valid for the GrProxyProvider to not have a
GrResourceProvider so we need a separate marker for abandonment.
Change-Id: Iae18a25226d35e1152a902e17a8091e0058695f3
Reviewed-on: https://skia-review.googlesource.com/97220
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/GrProxyProvider.cpp | 1 | ||||
-rw-r--r-- | src/gpu/GrProxyProvider.h | 10 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp index f60fc3eba6..c49f6b8ea0 100644 --- a/src/gpu/GrProxyProvider.cpp +++ b/src/gpu/GrProxyProvider.cpp @@ -28,6 +28,7 @@ GrProxyProvider::GrProxyProvider(GrResourceProvider* resourceProvider, GrSingleOwner* owner) : fResourceProvider(resourceProvider) , fResourceCache(resourceCache) + , fAbandoned(false) , fCaps(caps) #ifdef SK_DEBUG , fSingleOwner(owner) diff --git a/src/gpu/GrProxyProvider.h b/src/gpu/GrProxyProvider.h index f0b1bbd1ed..8ddd61ce7c 100644 --- a/src/gpu/GrProxyProvider.h +++ b/src/gpu/GrProxyProvider.h @@ -183,11 +183,16 @@ public: void abandon() { fResourceCache = nullptr; fResourceProvider = nullptr; + fAbandoned = true; } bool isAbandoned() const { - SkASSERT(SkToBool(fResourceCache) == SkToBool(fResourceProvider)); - return !SkToBool(fResourceCache); +#ifdef SK_DEBUG + if (fAbandoned) { + SkASSERT(!fResourceCache && !fResourceProvider); + } +#endif + return fAbandoned; } int numUniqueKeyProxies_TestOnly() const; @@ -212,6 +217,7 @@ private: GrResourceProvider* fResourceProvider; GrResourceCache* fResourceCache; + bool fAbandoned; sk_sp<const GrCaps> fCaps; // In debug builds we guard against improper thread handling |