OSDN Git Service

EGL: fix eglTerminate blob cache behavior
authorJamie Gennis <jgennis@google.com>
Tue, 30 Jul 2013 22:10:02 +0000 (15:10 -0700)
committerJamie Gennis <jgennis@google.com>
Tue, 30 Jul 2013 22:12:16 +0000 (15:12 -0700)
Bug: 9610573
Change-Id: I258e7e0d82ab76fbacf0b9c25d4f92fca6df04ac

opengl/libs/EGL/egl_cache.cpp

index 03397a9..1607267 100644 (file)
@@ -126,11 +126,8 @@ void egl_cache_t::initialize(egl_display_t *display) {
 
 void egl_cache_t::terminate() {
     Mutex::Autolock lock(mMutex);
-    if (mBlobCache != NULL) {
-        saveBlobCacheLocked();
-        mBlobCache = NULL;
-    }
-    mInitialized = false;
+    saveBlobCacheLocked();
+    mBlobCache = NULL;
 }
 
 void egl_cache_t::setBlob(const void* key, EGLsizeiANDROID keySize,
@@ -218,7 +215,7 @@ static uint32_t crc32c(const uint8_t* buf, size_t len) {
 }
 
 void egl_cache_t::saveBlobCacheLocked() {
-    if (mFilename.length() > 0) {
+    if (mFilename.length() > 0 && mBlobCache != NULL) {
         size_t cacheSize = mBlobCache->getFlattenedSize();
         size_t headerSize = cacheFileHeaderSize;
         const char* fname = mFilename.string();