Index: chrome/browser/notifications/notification_conversion_helper.cc |
diff --git a/chrome/browser/notifications/notification_conversion_helper.cc b/chrome/browser/notifications/notification_conversion_helper.cc |
index dc2c1f5ae09c1fd10b865a56431401df465b5d68..4434af17bedbf677f4c0aa2da6223e3d6ebb0988 100644 |
--- a/chrome/browser/notifications/notification_conversion_helper.cc |
+++ b/chrome/browser/notifications/notification_conversion_helper.cc |
@@ -4,8 +4,12 @@ |
#include "chrome/browser/notifications/notification_conversion_helper.h" |
+#include <string> |
+#include <vector> |
+ |
#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/stl_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/common/extensions/api/notification_provider.h" |
#include "chrome/common/extensions/api/notifications/notification_style.h" |
@@ -123,15 +127,15 @@ void NotificationConversionHelper::GfxImageToNotificationBitmap( |
uint32_t* bitmap_pixels = sk_bitmap.getAddr32(0, 0); |
const unsigned char* bitmap = |
reinterpret_cast<const unsigned char*>(bitmap_pixels); |
- scoped_ptr<unsigned char[]> rgba_bitmap_data( |
- new unsigned char[pixel_count * BYTES_PER_PIXEL]); |
+ scoped_ptr<std::vector<char>> rgba_bitmap_data( |
+ new std::vector<char>(pixel_count * BYTES_PER_PIXEL)); |
- gfx::ConvertSkiaToRGBA(bitmap, pixel_count, rgba_bitmap_data.get()); |
+ gfx::ConvertSkiaToRGBA(bitmap, pixel_count, |
+ reinterpret_cast<unsigned char*>( |
+ vector_as_array(rgba_bitmap_data.get()))); |
sk_bitmap.unlockPixels(); |
- notification_bitmap->data.reset(new std::string( |
- rgba_bitmap_data.get(), |
- (rgba_bitmap_data.get() + pixel_count * BYTES_PER_PIXEL))); |
+ notification_bitmap->data = rgba_bitmap_data.Pass(); |
return; |
} |
@@ -156,11 +160,11 @@ bool NotificationConversionHelper::NotificationBitmapToGfxImage( |
return false; |
// Ensure we have rgba data. |
- std::string* rgba_data = notification_bitmap->data.get(); |
+ std::vector<char>* rgba_data = notification_bitmap->data.get(); |
if (!rgba_data) |
return false; |
- const size_t rgba_data_length = rgba_data->length(); |
+ const size_t rgba_data_length = rgba_data->size(); |
const size_t rgba_area = width * height; |
if (rgba_data_length != rgba_area * BYTES_PER_PIXEL) |