| Index: components/nacl/common/nacl_debug_exception_handler_win.cc
|
| diff --git a/components/nacl/common/nacl_debug_exception_handler_win.cc b/components/nacl/common/nacl_debug_exception_handler_win.cc
|
| index fdf4a590397b48986036b6ea43d5d2bff1557976..f8efafce0ca5078e1c573fca46a3fd93dbd461f0 100644
|
| --- a/components/nacl/common/nacl_debug_exception_handler_win.cc
|
| +++ b/components/nacl/common/nacl_debug_exception_handler_win.cc
|
| @@ -14,11 +14,11 @@ namespace {
|
| class DebugExceptionHandler : public base::PlatformThread::Delegate {
|
| public:
|
| DebugExceptionHandler(
|
| - base::ProcessHandle nacl_process,
|
| + base::Process nacl_process,
|
| const std::string& startup_info,
|
| const scoped_refptr<base::MessageLoopProxy>& message_loop,
|
| const base::Callback<void(bool)>& on_connected)
|
| - : nacl_process_(nacl_process),
|
| + : nacl_process_(nacl_process.Pass()),
|
| startup_info_(startup_info),
|
| message_loop_(message_loop),
|
| on_connected_(on_connected) {}
|
| @@ -30,21 +30,22 @@ class DebugExceptionHandler : public base::PlatformThread::Delegate {
|
| // NaClDebugExceptionHandlerRun() receives debug events for the
|
| // process.
|
| bool attached = false;
|
| - int pid = GetProcessId(nacl_process_.Get());
|
| - if (pid == 0) {
|
| - LOG(ERROR) << "Invalid process handle";
|
| - } else {
|
| + int pid = nacl_process_.pid();
|
| + if (nacl_process_.IsValid()) {
|
| + DCHECK(pid);
|
| if (!DebugActiveProcess(pid)) {
|
| LOG(ERROR) << "Failed to connect to the process";
|
| } else {
|
| attached = true;
|
| }
|
| + } else {
|
| + LOG(ERROR) << "Invalid process handle";
|
| }
|
| message_loop_->PostTask(FROM_HERE, base::Bind(on_connected_, attached));
|
|
|
| if (attached) {
|
| NaClDebugExceptionHandlerRun(
|
| - nacl_process_.Get(),
|
| + nacl_process_.Handle(),
|
| reinterpret_cast<const void*>(startup_info_.data()),
|
| startup_info_.size());
|
| }
|
| @@ -52,7 +53,7 @@ class DebugExceptionHandler : public base::PlatformThread::Delegate {
|
| }
|
|
|
| private:
|
| - base::win::ScopedHandle nacl_process_;
|
| + base::Process nacl_process_;
|
| std::string startup_info_;
|
| const scoped_refptr<base::MessageLoopProxy> message_loop_;
|
| base::Callback<void(bool)> on_connected_;
|
| @@ -63,14 +64,14 @@ class DebugExceptionHandler : public base::PlatformThread::Delegate {
|
| } // namespace
|
|
|
| void NaClStartDebugExceptionHandlerThread(
|
| - base::ProcessHandle nacl_process,
|
| + base::Process nacl_process,
|
| const std::string& startup_info,
|
| const scoped_refptr<base::MessageLoopProxy>& message_loop,
|
| const base::Callback<void(bool)>& on_connected) {
|
| // The new PlatformThread will take ownership of the
|
| // DebugExceptionHandler object, which will delete itself on exit.
|
| DebugExceptionHandler* handler = new DebugExceptionHandler(
|
| - nacl_process, startup_info, message_loop, on_connected);
|
| + nacl_process.Pass(), startup_info, message_loop, on_connected);
|
| if (!base::PlatformThread::CreateNonJoinable(0, handler)) {
|
| on_connected.Run(false);
|
| delete handler;
|
|
|