summaryrefslogtreecommitdiffstats
path: root/gallerycommon/src/com
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2012-10-11 09:51:32 -0700
committerGeorge Mount <mount@google.com>2012-10-11 10:05:08 -0700
commitc33eee56b585929499dd34435f07257db4f5c245 (patch)
tree65682cfc67ef7bb87212585f36ad69fcb828b19c /gallerycommon/src/com
parent38701573fefe46f7a5af8cdf2c6c7002ef2bcaa5 (diff)
downloadandroid_packages_apps_Snap-c33eee56b585929499dd34435f07257db4f5c245.zip
android_packages_apps_Snap-c33eee56b585929499dd34435f07257db4f5c245.tar.gz
android_packages_apps_Snap-c33eee56b585929499dd34435f07257db4f5c245.tar.bz2
Clear cached stitching preview thumbnails.
Bug 7328408 Change-Id: Ifbc469dc9eef95025cd8e828a0df80e76d2ff064
Diffstat (limited to 'gallerycommon/src/com')
-rw-r--r--gallerycommon/src/com/android/gallery3d/common/BlobCache.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/gallerycommon/src/com/android/gallery3d/common/BlobCache.java b/gallerycommon/src/com/android/gallery3d/common/BlobCache.java
index 7788e61..3c131e5 100644
--- a/gallerycommon/src/com/android/gallery3d/common/BlobCache.java
+++ b/gallerycommon/src/com/android/gallery3d/common/BlobCache.java
@@ -74,6 +74,7 @@ import java.io.RandomAccessFile;
import java.nio.ByteOrder;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
+import java.util.Arrays;
import java.util.zip.Adler32;
public class BlobCache implements Closeable {
@@ -379,6 +380,16 @@ public class BlobCache implements Closeable {
updateIndexHeader();
}
+ public void clearEntry(long key) throws IOException {
+ if (!lookupInternal(key, mActiveHashStart)) {
+ return; // Nothing to clear
+ }
+ byte[] header = mBlobHeader;
+ Arrays.fill(header, (byte) 0);
+ mActiveDataFile.seek(mFileOffset);
+ mActiveDataFile.write(header);
+ }
+
// Appends the data to the active file. It also updates the hash entry.
// The proper hash entry (suitable for insertion or replacement) must be
// pointed by mSlotOffset.
@@ -485,6 +496,9 @@ public class BlobCache implements Closeable {
return false;
}
long blobKey = readLong(header, BH_KEY);
+ if (blobKey == 0) {
+ return false; // This entry has been cleared.
+ }
if (blobKey != req.key) {
Log.w(TAG, "blob key does not match: " + blobKey);
return false;