diff options
author | Owen Lin <owenlin@google.com> | 2012-09-04 16:53:42 +0800 |
---|---|---|
committer | Owen Lin <owenlin@google.com> | 2012-09-11 12:21:59 +0800 |
commit | 5251514287e41c57076029b08484d20beb5967b5 (patch) | |
tree | 355dc94f09d8963c5ba2c0c3abb5b45878e4b5a5 /src/com/android/gallery3d/data/LocalAlbum.java | |
parent | 960306bb25cb79ded4f5cb0f3b329ff042e0e837 (diff) | |
download | android_packages_apps_Snap-5251514287e41c57076029b08484d20beb5967b5.tar.gz android_packages_apps_Snap-5251514287e41c57076029b08484d20beb5967b5.tar.bz2 android_packages_apps_Snap-5251514287e41c57076029b08484d20beb5967b5.zip |
Ensure peekObject is called in the syncrhonization block.
bug: 7019598
Change-Id: If153287078826afc9827ea64364b4fb64f2b3a5f
Diffstat (limited to 'src/com/android/gallery3d/data/LocalAlbum.java')
-rw-r--r-- | src/com/android/gallery3d/data/LocalAlbum.java | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/com/android/gallery3d/data/LocalAlbum.java b/src/com/android/gallery3d/data/LocalAlbum.java index eaf1e54fc..4682e7792 100644 --- a/src/com/android/gallery3d/data/LocalAlbum.java +++ b/src/com/android/gallery3d/data/LocalAlbum.java @@ -140,17 +140,19 @@ public class LocalAlbum extends MediaSet { private static MediaItem loadOrUpdateItem(Path path, Cursor cursor, DataManager dataManager, GalleryApp app, boolean isImage) { - LocalMediaItem item = (LocalMediaItem) dataManager.peekMediaObject(path); - if (item == null) { - if (isImage) { - item = new LocalImage(path, app, cursor); + synchronized (DataManager.LOCK) { + LocalMediaItem item = (LocalMediaItem) dataManager.peekMediaObject(path); + if (item == null) { + if (isImage) { + item = new LocalImage(path, app, cursor); + } else { + item = new LocalVideo(path, app, cursor); + } } else { - item = new LocalVideo(path, app, cursor); + item.updateContent(cursor); } - } else { - item.updateContent(cursor); + return item; } - return item; } // The pids array are sorted by the (path) id. |