Use gl::Object to reference count egl::Image.
Bug 26851951
Change-Id: I5b594bdd34e6fa1074d5439ee2c09f6731839dee
Reviewed-on: https://swiftshader-review.googlesource.com/4534
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/common/Image.cpp b/src/OpenGL/common/Image.cpp
index 2b4d97e..e4a1c87 100644
--- a/src/OpenGL/common/Image.cpp
+++ b/src/OpenGL/common/Image.cpp
@@ -1132,7 +1132,7 @@
Image::~Image()
{
- ASSERT(referenceCount == 0);
+ ASSERT(!shared);
}
void Image::addRef()
@@ -1141,8 +1141,8 @@
{
return parentTexture->addRef();
}
- int newCount = sw::atomicIncrement(&referenceCount);
- LOGLOCK("%s image=%p referenceCount=%d", __FUNCTION__, this, newCount);
+
+ Object::addRef();
}
void Image::release()
@@ -1152,20 +1152,14 @@
return parentTexture->release();
}
- int newCount = sw::atomicDecrement(&referenceCount);
- LOGLOCK("%s image=%p referenceCount=%d", __FUNCTION__, this, newCount);
- if (newCount == 0)
- {
- ASSERT(!shared); // Should still hold a reference if eglDestroyImage hasn't been called
- delete this;
- }
+ Object::release();
}
void Image::unbind(const egl::Texture *parent)
{
if(parentTexture == parent)
{
- parentTexture = 0;
+ parentTexture = nullptr;
}
release();