Index: chrome/browser/chromeos/login/users/avatar/user_image_loader.h |
diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_loader.h b/chrome/browser/chromeos/login/users/avatar/user_image_loader.h |
index 10c7be458e2e89630835d0ca95f05666b40e3a52..3c3834c0198bec562e2f31c1ef056538f5ee79fd 100644 |
--- a/chrome/browser/chromeos/login/users/avatar/user_image_loader.h |
+++ b/chrome/browser/chromeos/login/users/avatar/user_image_loader.h |
@@ -5,7 +5,7 @@ |
#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_AVATAR_USER_IMAGE_LOADER_H_ |
#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_AVATAR_USER_IMAGE_LOADER_H_ |
-#include <map> |
+#include <queue> |
#include <string> |
#include "base/callback.h" |
@@ -67,7 +67,16 @@ class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>, |
const LoadedCallback loaded_cb; |
}; |
- typedef std::map<const ImageDecoder*, ImageInfo> ImageInfoMap; |
+ // Contains attributes retain for after the image is decoded. |
+ struct ImageData { |
+ ImageData(const ImageInfo& image_info, const std::string& data); |
+ ~ImageData(); |
+ |
+ const ImageInfo image_info; |
+ std::vector<unsigned char> data; |
+ }; |
+ |
+ typedef std::queue<ImageData> ImageDataQueue; |
~UserImageLoader() override; |
@@ -82,9 +91,8 @@ class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>, |
// ImageDecoder::Delegate implementation. These callbacks will only be invoked |
// via the |background_task_runner_|. |
- void OnImageDecoded(const ImageDecoder* decoder, |
- const SkBitmap& decoded_image) override; |
- void OnDecodeImageFailed(const ImageDecoder* decoder) override; |
+ void OnImageDecoded(const SkBitmap& decoded_image) override; |
+ void OnDecodeImageFailed() override; |
// The foreground task runner on which |this| is instantiated, Start() is |
// called and LoadedCallbacks are invoked. |
@@ -99,7 +107,7 @@ class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>, |
// Holds information about the images currently being decoded. Accessed via |
// |background_task_runner_| only. |
- ImageInfoMap image_info_map_; |
+ ImageDataQueue image_data_queue_; |
DISALLOW_COPY_AND_ASSIGN(UserImageLoader); |
}; |