Index: chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.h |
diff --git a/chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.h b/chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.h |
index 7ba576488449cf510a6d72b6220f139ee9ebf27d..676ee8f2cc84e9934b556c9198ffeb7af20b0651 100644 |
--- a/chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.h |
+++ b/chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.h |
@@ -31,9 +31,14 @@ namespace picasa { |
// utility process replies or when it dies. |
class SafePicasaAlbumTableReader : public content::UtilityProcessHostClient { |
public: |
- typedef base::Callback<void(bool, |
+ // PicasaDataProvider keeps a reference to the last-dispatched instance of |
+ // this class so it can ignore callbacks from 'stale' instances. The callback |
+ // also keeps a reference so it doesn't get destroyed prematurely. |
+ typedef base::Callback<void(scoped_refptr<SafePicasaAlbumTableReader>, |
+ bool parse_success, |
const std::vector<AlbumInfo>&, |
- const std::vector<AlbumInfo>&)> ParserCallback; |
+ const std::vector<AlbumInfo>&)> |
+ ParserCallback; |
SafePicasaAlbumTableReader(const AlbumTableFiles& album_table_files, |
const ParserCallback& callback); |