merge in honeycomb-release history after reset to master
diff --git a/rsContext.cpp b/rsContext.cpp
index 22c73fe..c437d72 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -535,6 +535,7 @@
mStateFragment.deinit(this);
mStateFragmentStore.deinit(this);
mStateFont.deinit(this);
+ mShaderCache.cleanupAll();
}
ObjectBase::zeroAllUserRef(this);
LOGV("destroyWorkerThreadResources 2");
diff --git a/rsShaderCache.cpp b/rsShaderCache.cpp
index 45384c9..b958021 100644
--- a/rsShaderCache.cpp
+++ b/rsShaderCache.cpp
@@ -32,10 +32,7 @@
}
ShaderCache::~ShaderCache() {
- for (uint32_t ct=0; ct < mEntries.size(); ct++) {
- glDeleteProgram(mEntries[ct]->program);
- free(mEntries[ct]);
- }
+ cleanupAll();
}
void ShaderCache::updateUniformArrayData(Context *rsc, Program *prog, uint32_t linkedID,
@@ -251,5 +248,10 @@
}
void ShaderCache::cleanupAll() {
+ for (uint32_t ct=0; ct < mEntries.size(); ct++) {
+ glDeleteProgram(mEntries[ct]->program);
+ free(mEntries[ct]);
+ }
+ mEntries.clear();
}