| Index: runtime/platform/thread_win.cc
|
| diff --git a/runtime/platform/thread_win.cc b/runtime/platform/thread_win.cc
|
| index 662b376664f3a0503b61704a60776470daaf687e..6265f6f49f6eae798e3dd0b8664c20f777c1fb4c 100644
|
| --- a/runtime/platform/thread_win.cc
|
| +++ b/runtime/platform/thread_win.cc
|
| @@ -174,12 +174,15 @@ void Monitor::Exit() {
|
|
|
|
|
| void MonitorWaitData::ThreadExit() {
|
| - uword raw_wait_data =
|
| - Thread::GetThreadLocal(MonitorWaitData::monitor_wait_data_key_);
|
| - if (raw_wait_data != 0) {
|
| - MonitorWaitData* wait_data =
|
| - reinterpret_cast<MonitorWaitData*>(raw_wait_data);
|
| - delete wait_data;
|
| + if (MonitorWaitData::monitor_wait_data_key_ !=
|
| + Thread::kUnsetThreadLocalKey) {
|
| + uword raw_wait_data =
|
| + Thread::GetThreadLocal(MonitorWaitData::monitor_wait_data_key_);
|
| + if (raw_wait_data != 0) {
|
| + MonitorWaitData* wait_data =
|
| + reinterpret_cast<MonitorWaitData*>(raw_wait_data);
|
| + delete wait_data;
|
| + }
|
| }
|
| }
|
|
|
|
|