| OLD | NEW |
| 1 // Copyright 2012 Google Inc. All Rights Reserved. | 1 // Copyright 2012 Google Inc. All Rights Reserved. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 } | 214 } |
| 215 | 215 |
| 216 void WINAPI asan_SetOnExceptionCallback(OnExceptionCallback callback) { | 216 void WINAPI asan_SetOnExceptionCallback(OnExceptionCallback callback) { |
| 217 if (callback != nullptr) { | 217 if (callback != nullptr) { |
| 218 agent::asan::SetOnExceptionCallback(base::Bind(callback)); | 218 agent::asan::SetOnExceptionCallback(base::Bind(callback)); |
| 219 } else { | 219 } else { |
| 220 agent::asan::ClearOnExceptionCallback(); | 220 agent::asan::ClearOnExceptionCallback(); |
| 221 } | 221 } |
| 222 } | 222 } |
| 223 | 223 |
| 224 #ifndef _WIN64 | |
| 225 // Unittesting seam. | 224 // Unittesting seam. |
| 226 AsanRuntime* WINAPI asan_GetActiveRuntime() { | 225 AsanRuntime* WINAPI asan_GetActiveRuntime() { |
| 227 return asan_runtime; | 226 return asan_runtime; |
| 228 } | 227 } |
| 229 | 228 |
| 229 #ifndef _WIN64 |
| 230 void __declspec(naked) asan_SetAllocationFilterFlag() { | 230 void __declspec(naked) asan_SetAllocationFilterFlag() { |
| 231 __asm { | 231 __asm { |
| 232 pushad | 232 pushad |
| 233 pushfd | 233 pushfd |
| 234 } | 234 } |
| 235 asan_runtime->set_allocation_filter_flag(true); | 235 asan_runtime->set_allocation_filter_flag(true); |
| 236 __asm { | 236 __asm { |
| 237 popfd | 237 popfd |
| 238 popad | 238 popad |
| 239 ret | 239 ret |
| (...skipping 13 matching lines...) Expand all Loading... |
| 253 } | 253 } |
| 254 } | 254 } |
| 255 #endif // !defined _WIN64 | 255 #endif // !defined _WIN64 |
| 256 | 256 |
| 257 int asan_CrashForException(EXCEPTION_POINTERS* exception) { | 257 int asan_CrashForException(EXCEPTION_POINTERS* exception) { |
| 258 DCHECK_NE(static_cast<EXCEPTION_POINTERS*>(nullptr), exception); | 258 DCHECK_NE(static_cast<EXCEPTION_POINTERS*>(nullptr), exception); |
| 259 return agent::asan::AsanRuntime::CrashForException(exception); | 259 return agent::asan::AsanRuntime::CrashForException(exception); |
| 260 } | 260 } |
| 261 | 261 |
| 262 } // extern "C" | 262 } // extern "C" |
| OLD | NEW |