Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: base/profiler/win32_stack_frame_unwinder.cc

Issue 1852433005: Convert //base to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase after r384946 Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/macros.h"
6 #include "base/profiler/win32_stack_frame_unwinder.h" 5 #include "base/profiler/win32_stack_frame_unwinder.h"
7 6
8 #include <windows.h> 7 #include <windows.h>
8
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/macros.h"
12 #include "base/memory/ptr_util.h"
13
11 namespace base { 14 namespace base {
12 15
13 // Win32UnwindFunctions ------------------------------------------------------- 16 // Win32UnwindFunctions -------------------------------------------------------
14 17
15 const HMODULE ModuleHandleTraits::kNonNullModuleForTesting = 18 const HMODULE ModuleHandleTraits::kNonNullModuleForTesting =
16 reinterpret_cast<HMODULE>(static_cast<uintptr_t>(-1)); 19 reinterpret_cast<HMODULE>(static_cast<uintptr_t>(-1));
17 20
18 // static 21 // static
19 bool ModuleHandleTraits::CloseHandle(HMODULE handle) { 22 bool ModuleHandleTraits::CloseHandle(HMODULE handle) {
20 if (handle == kNonNullModuleForTesting) 23 if (handle == kNonNullModuleForTesting)
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 } 105 }
103 106
104 } // namespace 107 } // namespace
105 108
106 // Win32StackFrameUnwinder ---------------------------------------------------- 109 // Win32StackFrameUnwinder ----------------------------------------------------
107 110
108 Win32StackFrameUnwinder::UnwindFunctions::~UnwindFunctions() {} 111 Win32StackFrameUnwinder::UnwindFunctions::~UnwindFunctions() {}
109 Win32StackFrameUnwinder::UnwindFunctions::UnwindFunctions() {} 112 Win32StackFrameUnwinder::UnwindFunctions::UnwindFunctions() {}
110 113
111 Win32StackFrameUnwinder::Win32StackFrameUnwinder() 114 Win32StackFrameUnwinder::Win32StackFrameUnwinder()
112 : Win32StackFrameUnwinder(make_scoped_ptr(new Win32UnwindFunctions)) { 115 : Win32StackFrameUnwinder(WrapUnique(new Win32UnwindFunctions)) {}
113 }
114 116
115 Win32StackFrameUnwinder::~Win32StackFrameUnwinder() {} 117 Win32StackFrameUnwinder::~Win32StackFrameUnwinder() {}
116 118
117 bool Win32StackFrameUnwinder::TryUnwind(CONTEXT* context, 119 bool Win32StackFrameUnwinder::TryUnwind(CONTEXT* context,
118 ScopedModuleHandle* module) { 120 ScopedModuleHandle* module) {
119 #ifdef _WIN64 121 #ifdef _WIN64
120 ScopedModuleHandle frame_module = 122 ScopedModuleHandle frame_module =
121 unwind_functions_->GetModuleForProgramCounter(context->Rip); 123 unwind_functions_->GetModuleForProgramCounter(context->Rip);
122 if (!frame_module.IsValid()) { 124 if (!frame_module.IsValid()) {
123 // There's no loaded module containing the instruction pointer. This can be 125 // There's no loaded module containing the instruction pointer. This can be
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 173
172 module->Set(frame_module.Take()); 174 module->Set(frame_module.Take());
173 return true; 175 return true;
174 #else 176 #else
175 NOTREACHED(); 177 NOTREACHED();
176 return false; 178 return false;
177 #endif 179 #endif
178 } 180 }
179 181
180 Win32StackFrameUnwinder::Win32StackFrameUnwinder( 182 Win32StackFrameUnwinder::Win32StackFrameUnwinder(
181 scoped_ptr<UnwindFunctions> unwind_functions) 183 std::unique_ptr<UnwindFunctions> unwind_functions)
182 : at_top_frame_(true), 184 : at_top_frame_(true), unwind_functions_(std::move(unwind_functions)) {}
183 unwind_functions_(std::move(unwind_functions)) {}
184 185
185 } // namespace base 186 } // namespace base
OLDNEW
« no previous file with comments | « base/profiler/win32_stack_frame_unwinder.h ('k') | base/profiler/win32_stack_frame_unwinder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698