Assert there are no unmatched eglBindTexImage/eglReleaseTexImage

Two consecutive eglBindTexImage calls on the same buffer (texture)
would eventually result in a crash if the texture is released before
the egl surfaces, so this assert is meant to perform an early
detection of a harder to detect future issue.

Bug chromium:932986 chromium:929088

Change-Id: I10b3892fe06d491c8a0a09dec84678b25f49c6ab
Reviewed-on: https://swiftshader-review.googlesource.com/c/25128
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/OpenGL/libGLES_CM/Texture.cpp b/src/OpenGL/libGLES_CM/Texture.cpp
index 4d8b75a..ec97ee2 100644
--- a/src/OpenGL/libGLES_CM/Texture.cpp
+++ b/src/OpenGL/libGLES_CM/Texture.cpp
@@ -450,6 +450,8 @@
 
 	image[0] = surface->getRenderTarget();
 
+	assert(!mSurface); // eglBindTexImage called before eglReleaseTexImage
+
 	mSurface = surface;
 	mSurface->setBoundTexture(this);
 }
diff --git a/src/OpenGL/libGLESv2/Texture.cpp b/src/OpenGL/libGLESv2/Texture.cpp
index d6742d9..0266158 100644
--- a/src/OpenGL/libGLESv2/Texture.cpp
+++ b/src/OpenGL/libGLESv2/Texture.cpp
@@ -561,6 +561,8 @@
 
 	image[0] = surface->getRenderTarget();
 
+	assert(!mSurface); // eglBindTexImage called before eglReleaseTexImage
+
 	mSurface = surface;
 	mSurface->setBoundTexture(this);
 }