Index: ui/views/controls/menu/native_menu_win.cc |
diff --git a/ui/views/controls/menu/native_menu_win.cc b/ui/views/controls/menu/native_menu_win.cc |
index b737cbf974a5c61d80398df8e86cf257dbff78a6..0c81dd6978141d0ac34bda590e8b494c26c05ee1 100644 |
--- a/ui/views/controls/menu/native_menu_win.cc |
+++ b/ui/views/controls/menu/native_menu_win.cc |
@@ -5,7 +5,7 @@ |
#include "ui/views/controls/menu/native_menu_win.h" |
#include "base/logging.h" |
-#include "base/stl_util.h" |
+#include "base/memory/ptr_util.h" |
#include "base/strings/string_util.h" |
#include "ui/base/accelerators/accelerator.h" |
#include "ui/base/l10n/l10n_util.h" |
@@ -45,19 +45,18 @@ static NativeMenuWin* GetNativeMenuWinFromHMENU(HMENU hmenu) { |
NativeMenuWin::NativeMenuWin(ui::MenuModel* model, HWND system_menu_for) |
: model_(model), |
- menu_(NULL), |
- owner_draw_(l10n_util::NeedOverrideDefaultUIFont(NULL, NULL) && |
+ menu_(nullptr), |
+ owner_draw_(l10n_util::NeedOverrideDefaultUIFont(nullptr, nullptr) && |
!system_menu_for), |
system_menu_for_(system_menu_for), |
first_item_index_(0), |
- parent_(NULL), |
- destroyed_flag_(NULL) { |
-} |
+ parent_(nullptr), |
+ destroyed_flag_(nullptr) {} |
NativeMenuWin::~NativeMenuWin() { |
if (destroyed_flag_) |
*destroyed_flag_ = true; |
- base::STLDeleteContainerPointers(items_.begin(), items_.end()); |
+ items_.clear(); |
DestroyMenu(menu_); |
} |
@@ -84,7 +83,7 @@ void NativeMenuWin::UpdateStates() { |
// A depth-first walk of the menu items, updating states. |
int model_index = 0; |
std::vector<ItemData*>::const_iterator it; |
- for (it = items_.begin(); it != items_.end(); ++it, ++model_index) { |
+ for (auto it = items_.begin(); it != items_.end(); ++it, ++model_index) { |
int menu_index = model_index + first_item_index_; |
SetMenuItemState(menu_index, model_->IsEnabledAt(model_index), |
model_->IsItemCheckedAt(model_index), false); |
@@ -119,12 +118,12 @@ void NativeMenuWin::AddMenuItemAt(int menu_index, int model_index) { |
else |
mii.fType = MFT_OWNERDRAW; |
- ItemData* item_data = new ItemData; |
+ std::unique_ptr<ItemData> item_data = base::MakeUnique<ItemData>(); |
item_data->label = base::string16(); |
ui::MenuModel::ItemType type = model_->GetTypeAt(model_index); |
if (type == ui::MenuModel::TYPE_SUBMENU) { |
- item_data->submenu.reset( |
- new NativeMenuWin(model_->GetSubmenuModelAt(model_index), nullptr)); |
+ item_data->submenu = base::MakeUnique<NativeMenuWin>( |
+ model_->GetSubmenuModelAt(model_index), nullptr); |
item_data->submenu->Rebuild(nullptr); |
mii.fMask |= MIIM_SUBMENU; |
mii.hSubMenu = item_data->submenu->menu_; |
@@ -136,8 +135,8 @@ void NativeMenuWin::AddMenuItemAt(int menu_index, int model_index) { |
} |
item_data->native_menu_win = this; |
item_data->model_index = model_index; |
- items_.insert(items_.begin() + model_index, item_data); |
- mii.dwItemData = reinterpret_cast<ULONG_PTR>(item_data); |
+ mii.dwItemData = reinterpret_cast<ULONG_PTR>(item_data.get()); |
+ items_.insert(items_.begin() + model_index, std::move(item_data)); |
UpdateMenuItemInfoForString(&mii, model_index, |
model_->GetLabelAt(model_index)); |
InsertMenuItem(menu_, menu_index, TRUE, &mii); |
@@ -150,7 +149,7 @@ void NativeMenuWin::AddSeparatorItemAt(int menu_index, int model_index) { |
mii.fType = MFT_SEPARATOR; |
// Insert a dummy entry into our label list so we can index directly into it |
// using item indices if need be. |
- items_.insert(items_.begin() + model_index, new ItemData); |
+ items_.insert(items_.begin() + model_index, base::MakeUnique<ItemData>()); |
InsertMenuItem(menu_, menu_index, TRUE, &mii); |
} |