diff options
59 files changed, 202 insertions, 167 deletions
diff --git a/base/files/file_enumerator_win.cc b/base/files/file_enumerator_win.cc index 931d154..ae41a46 100644 --- a/base/files/file_enumerator_win.cc +++ b/base/files/file_enumerator_win.cc @@ -43,10 +43,10 @@ base::Time FileEnumerator::FileInfo::GetLastModifiedTime() const { FileEnumerator::FileEnumerator(const FilePath& root_path, bool recursive, int file_type) - : recursive_(recursive), - file_type_(file_type), - has_find_data_(false), - find_handle_(INVALID_HANDLE_VALUE) { + : has_find_data_(false), + find_handle_(INVALID_HANDLE_VALUE), + recursive_(recursive), + file_type_(file_type) { // INCLUDE_DOT_DOT must not be specified if recursive. DCHECK(!(recursive && (INCLUDE_DOT_DOT & file_type_))); memset(&find_data_, 0, sizeof(find_data_)); @@ -57,11 +57,11 @@ FileEnumerator::FileEnumerator(const FilePath& root_path, bool recursive, int file_type, const FilePath::StringType& pattern) - : recursive_(recursive), + : has_find_data_(false), + find_handle_(INVALID_HANDLE_VALUE), + recursive_(recursive), file_type_(file_type), - has_find_data_(false), - pattern_(pattern), - find_handle_(INVALID_HANDLE_VALUE) { + pattern_(pattern) { // INCLUDE_DOT_DOT must not be specified if recursive. DCHECK(!(recursive && (INCLUDE_DOT_DOT & file_type_))); memset(&find_data_, 0, sizeof(find_data_)); diff --git a/base/memory/shared_memory_win.cc b/base/memory/shared_memory_win.cc index f58116a..5f706fe 100644 --- a/base/memory/shared_memory_win.cc +++ b/base/memory/shared_memory_win.cc @@ -29,37 +29,37 @@ namespace base { SharedMemory::SharedMemory() : mapped_file_(NULL), + mapped_size_(0), memory_(NULL), read_only_(false), - mapped_size_(0), requested_size_(0) { } SharedMemory::SharedMemory(const std::wstring& name) - : mapped_file_(NULL), + : name_(name), + mapped_file_(NULL), + mapped_size_(0), memory_(NULL), read_only_(false), - requested_size_(0), - mapped_size_(0), - name_(name) { + requested_size_(0) { } SharedMemory::SharedMemory(const SharedMemoryHandle& handle, bool read_only) : mapped_file_(handle), + mapped_size_(0), memory_(NULL), read_only_(read_only), - requested_size_(0), - mapped_size_(0) { + requested_size_(0) { } SharedMemory::SharedMemory(const SharedMemoryHandle& handle, bool read_only, ProcessHandle process) : mapped_file_(NULL), + mapped_size_(0), memory_(NULL), read_only_(read_only), - requested_size_(0), - mapped_size_(0) { + requested_size_(0) { ::DuplicateHandle(process, handle, GetCurrentProcess(), &mapped_file_, read_only_ ? FILE_MAP_READ : FILE_MAP_READ | diff --git a/base/synchronization/condition_variable_win.cc b/base/synchronization/condition_variable_win.cc index 5f165c8..470e564 100644 --- a/base/synchronization/condition_variable_win.cc +++ b/base/synchronization/condition_variable_win.cc @@ -205,10 +205,10 @@ class WinXPCondVar : public ConditionVarImpl { }; WinXPCondVar::WinXPCondVar(Lock* user_lock) - : user_lock_(*user_lock), - run_state_(RUNNING), - allocation_counter_(0), - recycling_list_size_(0) { + : run_state_(RUNNING), + user_lock_(*user_lock), + recycling_list_size_(0), + allocation_counter_(0) { DCHECK(user_lock); } diff --git a/base/win/iat_patch_function.cc b/base/win/iat_patch_function.cc index 13acd65..31659c6 100644 --- a/base/win/iat_patch_function.cc +++ b/base/win/iat_patch_function.cc @@ -219,9 +219,9 @@ DWORD ModifyCode(void* old_code, void* new_code, int length) { IATPatchFunction::IATPatchFunction() : module_handle_(NULL), + intercept_function_(NULL), original_function_(NULL), - iat_thunk_(NULL), - intercept_function_(NULL) { + iat_thunk_(NULL) { } IATPatchFunction::~IATPatchFunction() { diff --git a/breakpad/BUILD.gn b/breakpad/BUILD.gn index 7a1828a..2ccab3a 100644 --- a/breakpad/BUILD.gn +++ b/breakpad/BUILD.gn @@ -771,6 +771,14 @@ if (is_win) { "src/common/windows/string_utils-inl.h", "src/google_breakpad/common/minidump_format.h", ] + config("breakpad_handler_warnings") { + if (is_clang) { + # See https://code.google.com/p/google-breakpad/issues/detail?id=658. + cflags = [ "-Wno-reorder" ] + } + } + + configs += [ ":breakpad_handler_warnings" ] } source_set("breakpad_sender") { diff --git a/breakpad/breakpad_handler.gypi b/breakpad/breakpad_handler.gypi index 34b448d..657e819 100644 --- a/breakpad/breakpad_handler.gypi +++ b/breakpad/breakpad_handler.gypi @@ -44,6 +44,11 @@ 'type': 'static_library', 'variables': { 'breakpad_handler_target': 1, + 'clang_warning_flags': [ + # See + # https://code.google.com/p/google-breakpad/issues/detail?id=658. + '-Wno-reorder', + ], }, # TODO(gregoryd): direct_dependent_settings should be shared with the # 64-bit target, but it doesn't work due to a bug in gyp diff --git a/build/secondary/testing/gtest/BUILD.gn b/build/secondary/testing/gtest/BUILD.gn index a20a09d..073faec 100644 --- a/build/secondary/testing/gtest/BUILD.gn +++ b/build/secondary/testing/gtest/BUILD.gn @@ -111,6 +111,16 @@ static_library("gtest") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] + + config("gtest_warnings") { + if (is_win && is_clang) { + # The Mutex constructor initializer list in gtest-port.cc is incorrectly + # ordered. See + # https://groups.google.com/d/msg/googletestframework/S5uSV8L2TX8/U1FaTDa6J6sJ. + cflags = [ "-Wno-reorder" ] + } + } + configs += [ ":gtest_warnings" ] } source_set("gtest_main") { diff --git a/chrome/app/chrome_watcher_client_unittest_win.cc b/chrome/app/chrome_watcher_client_unittest_win.cc index 9f37123..04db75c 100644 --- a/chrome/app/chrome_watcher_client_unittest_win.cc +++ b/chrome/app/chrome_watcher_client_unittest_win.cc @@ -124,11 +124,11 @@ MULTIPROCESS_TEST_MAIN(ChromeWatcherClientTestProcess) { class ChromeWatcherClientThread : public base::SimpleThread { public: ChromeWatcherClientThread() - : client_(base::Bind(&ChromeWatcherClientThread::GenerateCommandLine, + : SimpleThread("ChromeWatcherClientTest thread"), + client_(base::Bind(&ChromeWatcherClientThread::GenerateCommandLine, base::Unretained(this))), complete_(false, false), - result_(false), - SimpleThread("ChromeWatcherClientTest thread") {} + result_(false) {} // Waits up to |timeout| for the call to EnsureInitialized to complete. If it // does, sets |result| to the return value of EnsureInitialized and returns diff --git a/chrome/browser/chrome_select_file_dialog_factory_win.cc b/chrome/browser/chrome_select_file_dialog_factory_win.cc index 98d8a6d..01ff7f6 100644 --- a/chrome/browser/chrome_select_file_dialog_factory_win.cc +++ b/chrome/browser/chrome_select_file_dialog_factory_win.cc @@ -219,7 +219,7 @@ class GetSaveFileNameClient : public content::UtilityProcessHostClient { }; GetSaveFileNameClient::GetSaveFileNameClient() - : event_(true, false), one_based_filter_index_(0) { + : one_based_filter_index_(0), event_(true, false) { } void GetSaveFileNameClient::WaitForCompletion() { diff --git a/chrome/browser/enumerate_modules_model_win.cc b/chrome/browser/enumerate_modules_model_win.cc index acfecc0..6786fb3 100644 --- a/chrome/browser/enumerate_modules_model_win.cc +++ b/chrome/browser/enumerate_modules_model_win.cc @@ -994,14 +994,13 @@ GURL EnumerateModulesModel::GetFirstNotableConflict() { return url; } - EnumerateModulesModel::EnumerateModulesModel() : limited_mode_(false), scanning_(false), conflict_notification_acknowledged_(false), confirmed_bad_modules_detected_(0), - suspected_bad_modules_detected_(0), - modules_to_notify_about_(0) { + modules_to_notify_about_(0), + suspected_bad_modules_detected_(0) { lock = new base::Lock(); } diff --git a/chrome/browser/install_verification/win/module_info.h b/chrome/browser/install_verification/win/module_info.h index f2b4a2a..2da0b1a 100644 --- a/chrome/browser/install_verification/win/module_info.h +++ b/chrome/browser/install_verification/win/module_info.h @@ -16,10 +16,9 @@ struct ModuleInfo { ModuleInfo(const base::char16* const module_name, uintptr_t module_base_address, uint32_t module_size) - : base_address(module_base_address), - size(module_size), - name(module_name) { - } + : name(module_name), + base_address(module_base_address), + size(module_size) {} // Sorts modules by their base address. bool operator< (const ModuleInfo& compare) const { diff --git a/chrome/browser/media_galleries/win/mtp_device_delegate_impl_win.cc b/chrome/browser/media_galleries/win/mtp_device_delegate_impl_win.cc index 57ceca1..8dbca7f 100644 --- a/chrome/browser/media_galleries/win/mtp_device_delegate_impl_win.cc +++ b/chrome/browser/media_galleries/win/mtp_device_delegate_impl_win.cc @@ -367,10 +367,11 @@ MTPDeviceDelegateImplWin::MTPDeviceDelegateImplWin( const base::string16& registered_device_path, const base::string16& pnp_device_id, const base::string16& storage_object_id) - : storage_device_info_(pnp_device_id, registered_device_path, - storage_object_id), - init_state_(UNINITIALIZED), + : init_state_(UNINITIALIZED), media_task_runner_(MediaFileSystemBackend::MediaTaskRunner()), + storage_device_info_(pnp_device_id, + registered_device_path, + storage_object_id), task_in_progress_(false), weak_ptr_factory_(this) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc index a6d1dd0..9db08f1a 100644 --- a/chrome/browser/profiles/profile_shortcut_manager_win.cc +++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc @@ -369,7 +369,7 @@ struct CreateOrUpdateShortcutsParams { base::FilePath profile_path, ProfileShortcutManagerWin::CreateOrUpdateMode create_mode, ProfileShortcutManagerWin::NonProfileShortcutAction action) - : profile_path(profile_path), create_mode(create_mode), action(action) {} + : create_mode(create_mode), action(action), profile_path(profile_path) {} ~CreateOrUpdateShortcutsParams() {} ProfileShortcutManagerWin::CreateOrUpdateMode create_mode; diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index 1e404f3..8a6e47a 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc @@ -461,8 +461,8 @@ BrowserView::BrowserView() initialized_(false), in_process_fullscreen_(false), #if defined(OS_WIN) - hung_window_detector_(&hung_plugin_action_), ticker_(0), + hung_window_detector_(&hung_plugin_action_), #endif force_location_bar_focus_(false), activate_modal_dialog_factory_(this) { diff --git a/chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc b/chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc index babdfca..443fb40 100644 --- a/chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc +++ b/chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc @@ -42,8 +42,7 @@ class FakeStatusTrayStateChangerProxy : public StatusTrayStateChangerProxy { class FakeStatusIconObserver : public StatusIconObserver { public: FakeStatusIconObserver() - : balloon_clicked_(false), - status_icon_click_count_(0) {} + : status_icon_click_count_(0), balloon_clicked_(false) {} void OnStatusIconClicked() override { ++status_icon_click_count_; } void OnBalloonClicked() override { balloon_clicked_ = true; } bool balloon_clicked() const { return balloon_clicked_; } diff --git a/chrome/chrome_watcher/chrome_watcher_main.cc b/chrome/chrome_watcher/chrome_watcher_main.cc index 8a54796..e51de7c 100644 --- a/chrome/chrome_watcher/chrome_watcher_main.cc +++ b/chrome/chrome_watcher/chrome_watcher_main.cc @@ -100,15 +100,15 @@ class BrowserMonitor { }; BrowserMonitor::BrowserMonitor(base::RunLoop* run_loop, - const base::char16* registry_path) : - browser_exited_(true, false), // manual reset, initially non-signalled. - exit_code_watcher_(registry_path), - end_session_watcher_window_( - base::Bind(&BrowserMonitor::OnEndSessionMessage, - base::Unretained(this))), - background_thread_("BrowserWatcherThread"), - run_loop_(run_loop), - main_thread_(base::ThreadTaskRunnerHandle::Get()) { + const base::char16* registry_path) + : exit_code_watcher_(registry_path), + end_session_watcher_window_( + base::Bind(&BrowserMonitor::OnEndSessionMessage, + base::Unretained(this))), + background_thread_("BrowserWatcherThread"), + browser_exited_(true, false), // manual reset, initially non-signalled. + run_loop_(run_loop), + main_thread_(base::ThreadTaskRunnerHandle::Get()) { } BrowserMonitor::~BrowserMonitor() { diff --git a/chrome/installer/util/delete_reg_value_work_item.cc b/chrome/installer/util/delete_reg_value_work_item.cc index 5c859cc..b5b0b18 100644 --- a/chrome/installer/util/delete_reg_value_work_item.cc +++ b/chrome/installer/util/delete_reg_value_work_item.cc @@ -19,8 +19,8 @@ DeleteRegValueWorkItem::DeleteRegValueWorkItem(HKEY predefined_root, key_path_(key_path), value_name_(value_name), wow64_access_(wow64_access), - previous_type_(0), - status_(DELETE_VALUE) { + status_(DELETE_VALUE), + previous_type_(0) { DCHECK(wow64_access == 0 || wow64_access == KEY_WOW64_32KEY || wow64_access == KEY_WOW64_64KEY); diff --git a/chrome/installer/util/move_tree_work_item.cc b/chrome/installer/util/move_tree_work_item.cc index 5d6c070..56671ba 100644 --- a/chrome/installer/util/move_tree_work_item.cc +++ b/chrome/installer/util/move_tree_work_item.cc @@ -21,10 +21,10 @@ MoveTreeWorkItem::MoveTreeWorkItem(const base::FilePath& source_path, : source_path_(source_path), dest_path_(dest_path), temp_dir_(temp_dir), - duplicate_option_(duplicate_option), moved_to_dest_path_(false), moved_to_backup_(false), - source_moved_to_backup_(false) { + source_moved_to_backup_(false), + duplicate_option_(duplicate_option) { } bool MoveTreeWorkItem::Do() { diff --git a/chrome/installer/util/self_reg_work_item.cc b/chrome/installer/util/self_reg_work_item.cc index f07701d..7157d6e 100644 --- a/chrome/installer/util/self_reg_work_item.cc +++ b/chrome/installer/util/self_reg_work_item.cc @@ -20,7 +20,8 @@ const char kUserUnregistrationEntryPoint[] = "DllUnregisterUserServer"; SelfRegWorkItem::SelfRegWorkItem(const std::wstring& dll_path, bool do_register, bool user_level_registration) - : do_register_(do_register), dll_path_(dll_path), + : dll_path_(dll_path), + do_register_(do_register), user_level_registration_(user_level_registration) { } diff --git a/chrome/installer/util/set_reg_value_work_item.cc b/chrome/installer/util/set_reg_value_work_item.cc index 596fe7c..edad940 100644 --- a/chrome/installer/util/set_reg_value_work_item.cc +++ b/chrome/installer/util/set_reg_value_work_item.cc @@ -23,9 +23,9 @@ SetRegValueWorkItem::SetRegValueWorkItem(HKEY predefined_root, value_name_(value_name), overwrite_(overwrite), wow64_access_(wow64_access), - status_(SET_VALUE), type_(REG_SZ), - previous_type_(0) { + previous_type_(0), + status_(SET_VALUE) { DCHECK(wow64_access == 0 || wow64_access == KEY_WOW64_32KEY || wow64_access == KEY_WOW64_64KEY); @@ -44,9 +44,9 @@ SetRegValueWorkItem::SetRegValueWorkItem(HKEY predefined_root, value_name_(value_name), overwrite_(overwrite), wow64_access_(wow64_access), - status_(SET_VALUE), type_(REG_DWORD), - previous_type_(0) { + previous_type_(0), + status_(SET_VALUE) { DCHECK(wow64_access == 0 || wow64_access == KEY_WOW64_32KEY || wow64_access == KEY_WOW64_64KEY); @@ -65,9 +65,9 @@ SetRegValueWorkItem::SetRegValueWorkItem(HKEY predefined_root, value_name_(value_name), overwrite_(overwrite), wow64_access_(wow64_access), - status_(SET_VALUE), type_(REG_QWORD), - previous_type_(0) { + previous_type_(0), + status_(SET_VALUE) { DCHECK(wow64_access == 0 || wow64_access == KEY_WOW64_32KEY || wow64_access == KEY_WOW64_64KEY); diff --git a/cloud_print/service/win/chrome_launcher.cc b/cloud_print/service/win/chrome_launcher.cc index e9bcee1..8c00556 100644 --- a/cloud_print/service/win/chrome_launcher.cc +++ b/cloud_print/service/win/chrome_launcher.cc @@ -173,8 +173,7 @@ void DeleteAutorunKeys(const base::FilePath& user_data_dir) { } // namespace ChromeLauncher::ChromeLauncher(const base::FilePath& user_data) - : stop_event_(true, true), - user_data_(user_data) { + : user_data_(user_data), stop_event_(true, true) { } ChromeLauncher::~ChromeLauncher() { diff --git a/cloud_print/service/win/service.gyp b/cloud_print/service/win/service.gyp index a00c5d3..e8ff624 100644 --- a/cloud_print/service/win/service.gyp +++ b/cloud_print/service/win/service.gyp @@ -93,6 +93,12 @@ }], ], }, + 'variables': { + 'clang_warning_flags': [ + # atlgdi.h fails with -Wreorder enabled. + '-Wno-reorder', + ] + }, }, { 'target_name': 'cloud_print_service_setup', diff --git a/cloud_print/service/win/setup_listener.cc b/cloud_print/service/win/setup_listener.cc index 57c3a15..67cb85b 100644 --- a/cloud_print/service/win/setup_listener.cc +++ b/cloud_print/service/win/setup_listener.cc @@ -27,10 +27,10 @@ const wchar_t SetupListener::kSetupPipeName[] = L"\\\\.\\pipe\\CloudPrintServiceSetup"; SetupListener::SetupListener(const base::string16& user) - : done_event_(new base::WaitableEvent(true, false)), - ipc_thread_(new base::Thread("ipc_thread")), + : is_xps_available_(false), succeded_(false), - is_xps_available_(false) { + done_event_(new base::WaitableEvent(true, false)), + ipc_thread_(new base::Thread("ipc_thread")) { ipc_thread_->StartWithOptions( base::Thread::Options(base::MessageLoop::TYPE_IO, 0)); ipc_thread_->message_loop()->PostTask( diff --git a/components/browser_watcher/window_hang_monitor_win.cc b/components/browser_watcher/window_hang_monitor_win.cc index a3ca17b..964a6f7 100644 --- a/components/browser_watcher/window_hang_monitor_win.cc +++ b/components/browser_watcher/window_hang_monitor_win.cc @@ -30,10 +30,10 @@ WindowHangMonitor::WindowHangMonitor(base::TimeDelta ping_interval, base::TimeDelta timeout, const WindowEventCallback& callback) : callback_(callback), - outstanding_ping_(nullptr), - timer_(false /* don't retain user task */, false /* don't repeat */), ping_interval_(ping_interval), - hang_timeout_(timeout) { + hang_timeout_(timeout), + timer_(false /* don't retain user task */, false /* don't repeat */), + outstanding_ping_(nullptr) { } WindowHangMonitor::~WindowHangMonitor() { diff --git a/components/browser_watcher/window_hang_monitor_win_unittest.cc b/components/browser_watcher/window_hang_monitor_win_unittest.cc index 5641956..f884e09 100644 --- a/components/browser_watcher/window_hang_monitor_win_unittest.cc +++ b/components/browser_watcher/window_hang_monitor_win_unittest.cc @@ -46,8 +46,8 @@ class HangMonitorThread { public: // Instantiates the background thread. HangMonitorThread() - : event_received_(false, false), - event_(WindowHangMonitor::WINDOW_NOT_FOUND), + : event_(WindowHangMonitor::WINDOW_NOT_FOUND), + event_received_(false, false), thread_("HangMonitorThread") {} ~HangMonitorThread() { diff --git a/components/crash/tools/crash_service.cc b/components/crash/tools/crash_service.cc index 23d5ec66..f1536fc 100644 --- a/components/crash/tools/crash_service.cc +++ b/components/crash/tools/crash_service.cc @@ -152,8 +152,8 @@ const char CrashService::kDumpsDir[] = "dumps-dir"; const char CrashService::kPipeName[] = "pipe-name"; CrashService::CrashService() - : sender_(NULL), - dumper_(NULL), + : dumper_(NULL), + sender_(NULL), requests_handled_(0), requests_sent_(0), clients_connected_(0), diff --git a/components/test_runner/event_sender.cc b/components/test_runner/event_sender.cc index ed7fa1f..198ee00 100644 --- a/components/test_runner/event_sender.cc +++ b/components/test_runner/event_sender.cc @@ -1078,7 +1078,18 @@ EventSender::SavedEvent::SavedEvent() modifiers(0) {} EventSender::EventSender(TestInterfaces* interfaces) - : interfaces_(interfaces), + : +#if defined(OS_WIN) + wm_key_down_(0), + wm_key_up_(0), + wm_char_(0), + wm_dead_char_(0), + wm_sys_key_down_(0), + wm_sys_key_up_(0), + wm_sys_char_(0), + wm_sys_dead_char_(0), +#endif + interfaces_(interfaces), delegate_(NULL), view_(NULL), force_layout_on_events_(false), @@ -1091,17 +1102,8 @@ EventSender::EventSender(TestInterfaces* interfaces) current_drag_effect_(blink::WebDragOperationNone), time_offset_ms_(0), click_count_(0), -#if defined(OS_WIN) - wm_key_down_(0), - wm_key_up_(0), - wm_char_(0), - wm_dead_char_(0), - wm_sys_key_down_(0), - wm_sys_key_up_(0), - wm_sys_char_(0), - wm_sys_dead_char_(0), -#endif - weak_factory_(this) {} + weak_factory_(this) { +} EventSender::~EventSender() {} diff --git a/components/wifi/wifi_service_win.cc b/components/wifi/wifi_service_win.cc index 5145fba..661f602 100644 --- a/components/wifi/wifi_service_win.cc +++ b/components/wifi/wifi_service_win.cc @@ -491,11 +491,12 @@ WiFiServiceImpl::WiFiServiceImpl() WlanGetProfile_function_(NULL), WlanOpenHandle_function_(NULL), WlanRegisterNotification_function_(NULL), - WlanSaveTemporaryProfile_function_(NULL), WlanScan_function_(NULL), WlanSetProfile_function_(NULL), + WlanSaveTemporaryProfile_function_(NULL), client_(NULL), - enable_notify_network_changed_(true) {} + enable_notify_network_changed_(true) { +} WiFiServiceImpl::~WiFiServiceImpl() { UnInitialize(); } diff --git a/content/child/npapi/webplugin_delegate_impl_win.cc b/content/child/npapi/webplugin_delegate_impl_win.cc index 897745b..5ebab62 100644 --- a/content/child/npapi/webplugin_delegate_impl_win.cc +++ b/content/child/npapi/webplugin_delegate_impl_win.cc @@ -221,26 +221,25 @@ LRESULT CALLBACK WebPluginDelegateImpl::MouseHookProc( return CallNextHookEx(NULL, code, wParam, lParam); } -WebPluginDelegateImpl::WebPluginDelegateImpl( - WebPlugin* plugin, - PluginInstance* instance) - : instance_(instance), - quirks_(0), - plugin_(plugin), - windowless_(false), - windowed_handle_(NULL), +WebPluginDelegateImpl::WebPluginDelegateImpl(WebPlugin* plugin, + PluginInstance* instance) + : windowed_handle_(NULL), windowed_did_set_window_(false), + windowless_(false), + plugin_(plugin), + instance_(instance), plugin_wnd_proc_(NULL), last_message_(0), is_calling_wndproc(false), + quirks_(0), dummy_window_for_activation_(NULL), dummy_window_parent_(NULL), old_dummy_window_proc_(NULL), handle_event_message_filter_hook_(NULL), handle_event_pump_messages_event_(NULL), user_gesture_message_posted_(false), - handle_event_depth_(0), mouse_hook_(NULL), + handle_event_depth_(0), first_set_window_call_(true), plugin_has_focus_(false), has_webkit_focus_(false), diff --git a/content/common/dwrite_font_platform_win.cc b/content/common/dwrite_font_platform_win.cc index f3cc79e..569fa72 100644 --- a/content/common/dwrite_font_platform_win.cc +++ b/content/common/dwrite_font_platform_win.cc @@ -260,10 +260,7 @@ base::win::ScopedHandle g_shared_font_cache; // tracking various cache region requests by direct write. class FontCacheWriter { public: - FontCacheWriter() - : cookie_counter_(0), - count_font_entries_ignored_(0) { - } + FontCacheWriter() : count_font_entries_ignored_(0), cookie_counter_(0) {} ~FontCacheWriter() { if (static_cache_.get()) { diff --git a/content/gpu/gpu_watchdog_thread.cc b/content/gpu/gpu_watchdog_thread.cc index e6da1a4..8405663 100644 --- a/content/gpu/gpu_watchdog_thread.cc +++ b/content/gpu/gpu_watchdog_thread.cc @@ -37,11 +37,11 @@ GpuWatchdogThread::GpuWatchdogThread(int timeout) watched_message_loop_(base::MessageLoop::current()), timeout_(base::TimeDelta::FromMilliseconds(timeout)), armed_(false), + task_observer_(this), #if defined(OS_WIN) watched_thread_handle_(0), arm_cpu_time_(), #endif - task_observer_(this), suspended_(false), #if defined(USE_X11) display_(NULL), diff --git a/content/shell/browser/shell_javascript_dialog_win.cc b/content/shell/browser/shell_javascript_dialog_win.cc index 3537122..287ff0d 100644 --- a/content/shell/browser/shell_javascript_dialog_win.cc +++ b/content/shell/browser/shell_javascript_dialog_win.cc @@ -84,9 +84,9 @@ ShellJavaScriptDialog::ShellJavaScriptDialog( const JavaScriptDialogManager::DialogClosedCallback& callback) : manager_(manager), callback_(callback), + message_type_(message_type), message_text_(message_text), - default_prompt_text_(default_prompt_text), - message_type_(message_type) { + default_prompt_text_(default_prompt_text) { int dialog_type; if (message_type == JAVASCRIPT_MESSAGE_TYPE_ALERT) dialog_type = IDD_ALERT; diff --git a/device/bluetooth/bluetooth_task_manager_win.cc b/device/bluetooth/bluetooth_task_manager_win.cc index 4ebaa10..626c1e0 100644 --- a/device/bluetooth/bluetooth_task_manager_win.cc +++ b/device/bluetooth/bluetooth_task_manager_win.cc @@ -125,10 +125,10 @@ BluetoothTaskManagerWin::ServiceRecordState::~ServiceRecordState() { } BluetoothTaskManagerWin::DeviceState::DeviceState() - : bluetooth_class(0), - visible(false), + : visible(false), connected(false), - authenticated(false) { + authenticated(false), + bluetooth_class(0) { } BluetoothTaskManagerWin::DeviceState::~DeviceState() { diff --git a/device/hid/hid_service_win.cc b/device/hid/hid_service_win.cc index 82fddff..627cc01 100644 --- a/device/hid/hid_service_win.cc +++ b/device/hid/hid_service_win.cc @@ -38,8 +38,8 @@ void Noop() { HidServiceWin::HidServiceWin( scoped_refptr<base::SingleThreadTaskRunner> file_task_runner) - : device_observer_(this), - file_task_runner_(file_task_runner), + : file_task_runner_(file_task_runner), + device_observer_(this), weak_factory_(this) { task_runner_ = base::ThreadTaskRunnerHandle::Get(); DCHECK(task_runner_.get()); diff --git a/media/audio/win/audio_low_latency_input_win_unittest.cc b/media/audio/win/audio_low_latency_input_win_unittest.cc index 8f6b3ce..4f01654 100644 --- a/media/audio/win/audio_low_latency_input_win_unittest.cc +++ b/media/audio/win/audio_low_latency_input_win_unittest.cc @@ -49,9 +49,9 @@ class MockAudioInputCallback : public AudioInputStream::AudioInputCallback { class FakeAudioInputCallback : public AudioInputStream::AudioInputCallback { public: FakeAudioInputCallback() - : error_(false), + : num_received_audio_frames_(0), data_event_(false, false), - num_received_audio_frames_(0) {} + error_(false) {} bool error() const { return error_; } int num_received_audio_frames() const { return num_received_audio_frames_; } diff --git a/media/audio/win/wavein_input_win.cc b/media/audio/win/wavein_input_win.cc index 6543ee5e..d93d62d 100644 --- a/media/audio/win/wavein_input_win.cc +++ b/media/audio/win/wavein_input_win.cc @@ -27,12 +27,12 @@ PCMWaveInAudioInputStream::PCMWaveInAudioInputStream( const std::string& device_id) : state_(kStateEmpty), manager_(manager), - device_id_(device_id), - wavein_(NULL), callback_(NULL), num_buffers_(num_buffers), - buffer_(NULL), channels_(params.channels()), + device_id_(device_id), + wavein_(NULL), + buffer_(NULL), audio_bus_(media::AudioBus::Create(params)) { DCHECK_GT(num_buffers_, 0); format_.wFormatTag = WAVE_FORMAT_PCM; diff --git a/media/audio/win/waveout_output_win.cc b/media/audio/win/waveout_output_win.cc index 7f35065..5be9e0a 100644 --- a/media/audio/win/waveout_output_win.cc +++ b/media/audio/win/waveout_output_win.cc @@ -75,18 +75,20 @@ inline WAVEHDR* PCMWaveOutAudioOutputStream::GetBuffer(int n) const { } PCMWaveOutAudioOutputStream::PCMWaveOutAudioOutputStream( - AudioManagerWin* manager, const AudioParameters& params, int num_buffers, + AudioManagerWin* manager, + const AudioParameters& params, + int num_buffers, UINT device_id) : state_(PCMA_BRAND_NEW), manager_(manager), - device_id_(device_id), - waveout_(NULL), callback_(NULL), num_buffers_(num_buffers), buffer_size_(params.GetBytesPerBuffer()), volume_(1), channels_(params.channels()), pending_bytes_(0), + device_id_(device_id), + waveout_(NULL), waiting_handle_(NULL), audio_bus_(AudioBus::Create(params)) { format_.Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE; diff --git a/media/video/capture/win/sink_input_pin_win.cc b/media/video/capture/win/sink_input_pin_win.cc index bc08809..0edd46f 100644 --- a/media/video/capture/win/sink_input_pin_win.cc +++ b/media/video/capture/win/sink_input_pin_win.cc @@ -21,11 +21,8 @@ static DWORD GetArea(const BITMAPINFOHEADER& info_header) { return info_header.biWidth * info_header.biHeight; } -SinkInputPin::SinkInputPin(IBaseFilter* filter, - SinkFilterObserver* observer) - : requested_frame_rate_(0), - observer_(observer), - PinBase(filter) { +SinkInputPin::SinkInputPin(IBaseFilter* filter, SinkFilterObserver* observer) + : PinBase(filter), requested_frame_rate_(0), observer_(observer) { } void SinkInputPin::SetRequestedMediaFormat( diff --git a/net/base/file_stream_context_win.cc b/net/base/file_stream_context_win.cc index b71d9a6..907d863 100644 --- a/net/base/file_stream_context_win.cc +++ b/net/base/file_stream_context_win.cc @@ -36,10 +36,10 @@ void IncrementOffset(OVERLAPPED* overlapped, DWORD count) { } // namespace FileStream::Context::Context(const scoped_refptr<base::TaskRunner>& task_runner) - : io_context_(), - async_in_progress_(false), + : async_in_progress_(false), orphaned_(false), task_runner_(task_runner), + io_context_(), async_read_initiated_(false), async_read_completed_(false), io_complete_for_read_received_(false), @@ -50,11 +50,11 @@ FileStream::Context::Context(const scoped_refptr<base::TaskRunner>& task_runner) FileStream::Context::Context(base::File file, const scoped_refptr<base::TaskRunner>& task_runner) - : io_context_(), - file_(file.Pass()), + : file_(file.Pass()), async_in_progress_(false), orphaned_(false), task_runner_(task_runner), + io_context_(), async_read_initiated_(false), async_read_completed_(false), io_complete_for_read_received_(false), diff --git a/net/base/network_change_notifier_win.cc b/net/base/network_change_notifier_win.cc index 0cb9aa5..e893329 100644 --- a/net/base/network_change_notifier_win.cc +++ b/net/base/network_change_notifier_win.cc @@ -51,11 +51,11 @@ NetworkChangeNotifierWin::NetworkChangeNotifierWin() : NetworkChangeNotifier(NetworkChangeCalculatorParamsWin()), is_watching_(false), sequential_failures_(0), - weak_factory_(this), dns_config_service_thread_(new DnsConfigServiceThread()), last_computed_connection_type_(RecomputeCurrentConnectionType()), - last_announced_offline_( - last_computed_connection_type_ == CONNECTION_NONE) { + last_announced_offline_(last_computed_connection_type_ == + CONNECTION_NONE), + weak_factory_(this) { memset(&addr_overlapped_, 0, sizeof addr_overlapped_); addr_overlapped_.hEvent = WSACreateEvent(); } diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc index 63ad0f8..00e41a4 100644 --- a/remoting/host/remoting_me2me_host.cc +++ b/remoting/host/remoting_me2me_host.cc @@ -416,10 +416,10 @@ HostProcess::HostProcess(scoped_ptr<ChromotingHostContext> context, enable_gnubby_auth_(false), enable_window_capture_(false), window_id_(0), + self_(this), #if defined(REMOTING_MULTI_PROCESS) desktop_session_connector_(nullptr), #endif // defined(REMOTING_MULTI_PROCESS) - self_(this), exit_code_out_(exit_code_out), signal_parent_(false), shutdown_watchdog_(shutdown_watchdog) { diff --git a/remoting/host/win/unprivileged_process_delegate.cc b/remoting/host/win/unprivileged_process_delegate.cc index 0537218..fa1d1d2 100644 --- a/remoting/host/win/unprivileged_process_delegate.cc +++ b/remoting/host/win/unprivileged_process_delegate.cc @@ -218,8 +218,8 @@ UnprivilegedProcessDelegate::UnprivilegedProcessDelegate( scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, scoped_ptr<base::CommandLine> target_command) : io_task_runner_(io_task_runner), - event_handler_(nullptr), - target_command_(target_command.Pass()) { + target_command_(target_command.Pass()), + event_handler_(nullptr) { } UnprivilegedProcessDelegate::~UnprivilegedProcessDelegate() { diff --git a/sandbox/win/sandbox_poc/main_ui_window.cc b/sandbox/win/sandbox_poc/main_ui_window.cc index 6c5d177..1e32b25 100644 --- a/sandbox/win/sandbox_poc/main_ui_window.cc +++ b/sandbox/win/sandbox_poc/main_ui_window.cc @@ -27,11 +27,11 @@ const wchar_t MainUIWindow::kDefaultEntryPoint_[] = L"Run"; const wchar_t MainUIWindow::kDefaultLogFile_[] = L""; MainUIWindow::MainUIWindow() - : instance_handle_(NULL), + : broker_(NULL), spawn_target_(L""), + instance_handle_(NULL), dll_path_(L""), - entry_point_(L""), - broker_(NULL) { + entry_point_(L"") { } MainUIWindow::~MainUIWindow() { diff --git a/sandbox/win/src/broker_services.cc b/sandbox/win/src/broker_services.cc index 3057cc6..dbf75f9 100644 --- a/sandbox/win/src/broker_services.cc +++ b/sandbox/win/src/broker_services.cc @@ -125,8 +125,10 @@ uint32_t GenerateTokenCacheKey(const sandbox::PolicyBase* policy) { namespace sandbox { BrokerServicesBase::BrokerServicesBase() - : thread_pool_(NULL), job_port_(NULL), no_targets_(NULL), - job_thread_(NULL) { + : job_port_(NULL), + no_targets_(NULL), + job_thread_(NULL), + thread_pool_(NULL) { } // The broker uses a dedicated worker thread that services the job completion diff --git a/sandbox/win/src/crosscall_params.h b/sandbox/win/src/crosscall_params.h index 6facb20..dbc95b2 100644 --- a/sandbox/win/src/crosscall_params.h +++ b/sandbox/win/src/crosscall_params.h @@ -143,10 +143,7 @@ class CrossCallParams { protected: // constructs the IPC call params. Called only from the derived classes CrossCallParams(uint32 tag, uint32 params_count) - : tag_(tag), - params_count_(params_count), - is_in_out_(0) { - } + : tag_(tag), is_in_out_(0), params_count_(params_count) {} private: uint32 tag_; diff --git a/sandbox/win/src/restricted_token.cc b/sandbox/win/src/restricted_token.cc index 7ebef3d..d94ca06 100644 --- a/sandbox/win/src/restricted_token.cc +++ b/sandbox/win/src/restricted_token.cc @@ -13,9 +13,9 @@ namespace sandbox { RestrictedToken::RestrictedToken() - : init_(false), - effective_token_(NULL), - integrity_level_(INTEGRITY_LEVEL_LAST) { + : effective_token_(NULL), + integrity_level_(INTEGRITY_LEVEL_LAST), + init_(false) { } RestrictedToken::~RestrictedToken() { diff --git a/sandbox/win/src/service_resolver.h b/sandbox/win/src/service_resolver.h index ab125fb..f5db967 100644 --- a/sandbox/win/src/service_resolver.h +++ b/sandbox/win/src/service_resolver.h @@ -16,8 +16,10 @@ class ServiceResolverThunk : public ResolverThunk { public: // The service resolver needs a child process to write to. ServiceResolverThunk(HANDLE process, bool relaxed) - : process_(process), ntdll_base_(NULL), - relaxed_(relaxed), relative_jump_(0) {} + : ntdll_base_(NULL), + process_(process), + relaxed_(relaxed), + relative_jump_(0) {} ~ServiceResolverThunk() override {} // Implementation of Resolver::Setup. diff --git a/testing/gtest.gyp b/testing/gtest.gyp index d61772e..79d7e66 100644 --- a/testing/gtest.gyp +++ b/testing/gtest.gyp @@ -191,6 +191,14 @@ ], 'msvs_disabled_warnings': [4800], }, + 'variables': { + 'clang_warning_flags': [ + # The Mutex constructor initializer list in gtest-port.cc is + # incorrectly ordered. See + # https://groups.google.com/d/msg/googletestframework/S5uSV8L2TX8/U1FaTDa6J6sJ. + '-Wno-reorder', + ] + }, }, { 'target_name': 'gtest_main', diff --git a/third_party/leveldatabase/env_chromium.cc b/third_party/leveldatabase/env_chromium.cc index ae830eb0..a8925b5 100644 --- a/third_party/leveldatabase/env_chromium.cc +++ b/third_party/leveldatabase/env_chromium.cc @@ -509,11 +509,11 @@ ChromiumEnv::ChromiumEnv() : ChromiumEnv("LevelDBEnv", false /* make_backup */) {} ChromiumEnv::ChromiumEnv(const std::string& name, bool make_backup) - : name_(name), + : kMaxRetryTimeMillis(1000), + name_(name), make_backup_(make_backup), bgsignal_(&mu_), - started_bgthread_(false), - kMaxRetryTimeMillis(1000) { + started_bgthread_(false) { uma_ioerror_base_name_ = name_ + ".IOError.BFE"; } diff --git a/third_party/power_gadget/PowerGadgetLib.cpp b/third_party/power_gadget/PowerGadgetLib.cpp index d7f20f1..170085e 100644 --- a/third_party/power_gadget/PowerGadgetLib.cpp +++ b/third_party/power_gadget/PowerGadgetLib.cpp @@ -104,6 +104,7 @@ static bool GetLibraryLocation(wstring& strLocation) CIntelPowerGadgetLib::CIntelPowerGadgetLib(void) : pInitialize(NULL), pGetNumNodes(NULL), + pGetNumMsrs(NULL), pGetMsrName(NULL), pGetMsrFunc(NULL), pGetIAFrequency(NULL), @@ -117,8 +118,7 @@ CIntelPowerGadgetLib::CIntelPowerGadgetLib(void) : pGetBaseFrequency(NULL), pGetPowerData(NULL), pStartLog(NULL), - pStopLog(NULL), - pGetNumMsrs(NULL) + pStopLog(NULL) { wstring strLocation; if (GetLibraryLocation(strLocation) == false) diff --git a/ui/base/dragdrop/os_exchange_data_provider_win.cc b/ui/base/dragdrop/os_exchange_data_provider_win.cc index 0257d22..0389429 100644 --- a/ui/base/dragdrop/os_exchange_data_provider_win.cc +++ b/ui/base/dragdrop/os_exchange_data_provider_win.cc @@ -119,7 +119,7 @@ static void CloneFormatEtc(FORMATETC* source, FORMATETC* clone) { FormatEtcEnumerator::FormatEtcEnumerator( DataObjectImpl::StoredData::const_iterator start, DataObjectImpl::StoredData::const_iterator end) - : ref_count_(0), cursor_(0) { + : cursor_(0), ref_count_(0) { // Copy FORMATETC data from our source into ourselves. while (start != end) { FORMATETC* format_etc = new FORMATETC; diff --git a/ui/base/ime/win/imm32_manager.cc b/ui/base/ime/win/imm32_manager.cc index 9f1913f..711c1b8 100644 --- a/ui/base/ime/win/imm32_manager.cc +++ b/ui/base/ime/win/imm32_manager.cc @@ -117,9 +117,9 @@ bool IsRTLPrimaryLangID(LANGID lang) { namespace ui { IMM32Manager::IMM32Manager() - : ime_status_(false), + : is_composing_(false), + ime_status_(false), input_language_id_(LANG_USER_DEFAULT), - is_composing_(false), system_caret_(false), caret_rect_(-1, -1, 0, 0), use_composition_window_(false) { diff --git a/ui/gfx/screen_win.cc b/ui/gfx/screen_win.cc index f19117b..f01d40a 100644 --- a/ui/gfx/screen_win.cc +++ b/ui/gfx/screen_win.cc @@ -87,9 +87,10 @@ std::vector<gfx::Display> GetDisplays() { namespace gfx { ScreenWin::ScreenWin() - : displays_(GetDisplays()), - singleton_hwnd_observer_(new SingletonHwndObserver( - base::Bind(&ScreenWin::OnWndProc, base::Unretained(this)))) {} + : singleton_hwnd_observer_(new SingletonHwndObserver( + base::Bind(&ScreenWin::OnWndProc, base::Unretained(this)))), + displays_(GetDisplays()) { +} ScreenWin::~ScreenWin() {} diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc index 1f1aeed..1c79304 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc @@ -295,8 +295,7 @@ void NativeThemeWin::Paint(SkCanvas* canvas, } NativeThemeWin::NativeThemeWin() - : theme_dll_(LoadLibrary(L"uxtheme.dll")), - draw_theme_(NULL), + : draw_theme_(NULL), draw_theme_ex_(NULL), get_theme_color_(NULL), get_theme_content_rect_(NULL), @@ -306,6 +305,7 @@ NativeThemeWin::NativeThemeWin() set_theme_properties_(NULL), is_theme_active_(NULL), get_theme_int_(NULL), + theme_dll_(LoadLibrary(L"uxtheme.dll")), color_change_listener_(this), is_using_high_contrast_(false), is_using_high_contrast_valid_(false) { diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc index 22f0794..485b553 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc @@ -306,7 +306,8 @@ class HWNDMessageHandler::ScopedRedrawLock { long HWNDMessageHandler::last_touch_message_time_ = 0; HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate) - : delegate_(delegate), + : msg_handled_(FALSE), + delegate_(delegate), fullscreen_handler_(new FullscreenHandler), waiting_for_close_now_(false), remove_standard_frame_(false), @@ -326,7 +327,6 @@ HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate) in_size_loop_(false), touch_down_contexts_(0), last_mouse_hwheel_time_(0), - msg_handled_(FALSE), dwm_transition_desired_(false), autohide_factory_(this), weak_factory_(this) { diff --git a/win8/metro_driver/chrome_app_view_ash.cc b/win8/metro_driver/chrome_app_view_ash.cc index 65e07ba..5ec2b20 100644 --- a/win8/metro_driver/chrome_app_view_ash.cc +++ b/win8/metro_driver/chrome_app_view_ash.cc @@ -348,9 +348,9 @@ class ChromeAppViewAsh::PointerInfoHandler { : x_(0), y_(0), wheel_delta_(0), + pointer_id_(0), update_kind_(winui::Input::PointerUpdateKind_Other), timestamp_(0), - pointer_id_(0), mouse_down_flags_(0), is_horizontal_wheel_(0), metro_dpi_scale_(metro_dpi_scale), diff --git a/win8/metro_driver/file_picker_ash.cc b/win8/metro_driver/file_picker_ash.cc index d88d286..e45301c 100644 --- a/win8/metro_driver/file_picker_ash.cc +++ b/win8/metro_driver/file_picker_ash.cc @@ -84,11 +84,11 @@ FilePickerSessionBase::FilePickerSessionBase(ChromeAppViewAsh* app_view, const base::string16& title, const base::string16& filter, const base::FilePath& default_path) - : app_view_(app_view), + : success_(false), title_(title), filter_(filter), default_path_(default_path), - success_(false) { + app_view_(app_view) { } bool FilePickerSessionBase::DoFilePicker() { diff --git a/win8/metro_driver/ime/text_store.cc b/win8/metro_driver/ime/text_store.cc index eff30b7..6466e9f 100644 --- a/win8/metro_driver/ime/text_store.cc +++ b/win8/metro_driver/ime/text_store.cc @@ -22,7 +22,6 @@ const TsViewCookie kViewCookie = 1; TextStore::TextStore() : text_store_acp_sink_mask_(0), window_handle_(NULL), - delegate_(NULL), committed_size_(0), selection_start_(0), selection_end_(0), @@ -30,7 +29,8 @@ TextStore::TextStore() current_lock_type_(0), category_manager_(NULL), display_attribute_manager_(NULL), - input_scope_(NULL) { + input_scope_(NULL), + delegate_(NULL) { } TextStore::~TextStore() { diff --git a/win8/metro_driver/metro_driver_win7.cc b/win8/metro_driver/metro_driver_win7.cc index 9c4b90d..3ace04c 100644 --- a/win8/metro_driver/metro_driver_win7.cc +++ b/win8/metro_driver/metro_driver_win7.cc @@ -538,8 +538,7 @@ class CoreWindowEmulation public InputHandler { public: CoreWindowEmulation(winapp::Core::IFrameworkView* app_view) - : core_hwnd_(NULL), - mouse_moved_handler_(NULL), + : mouse_moved_handler_(NULL), mouse_capture_lost_handler_(NULL), mouse_pressed_handler_(NULL), mouse_released_handler_(NULL), @@ -549,6 +548,7 @@ class CoreWindowEmulation key_down_handler_(NULL), key_up_handler_(NULL), character_received_handler_(NULL), + core_hwnd_(NULL), app_view_(app_view), window_activated_handler_(NULL) { dispatcher_ = mswr::Make<CoreDispatcherEmulation>(this); |