1*6777b538SAndroid Build Coastguard Worker // Copyright 2020 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "base/win/atl_throw.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include <winerror.h> 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Worker #include "base/compiler_specific.h" 10*6777b538SAndroid Build Coastguard Worker #include "base/debug/alias.h" 11*6777b538SAndroid Build Coastguard Worker #include "base/immediate_crash.h" 12*6777b538SAndroid Build Coastguard Worker #include "base/process/memory.h" 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker namespace base { 15*6777b538SAndroid Build Coastguard Worker namespace win { 16*6777b538SAndroid Build Coastguard Worker AtlThrowImpl(HRESULT hr)17*6777b538SAndroid Build Coastguard WorkerNOINLINE void __stdcall AtlThrowImpl(HRESULT hr) { 18*6777b538SAndroid Build Coastguard Worker base::debug::Alias(&hr); 19*6777b538SAndroid Build Coastguard Worker if (hr == E_OUTOFMEMORY) 20*6777b538SAndroid Build Coastguard Worker base::TerminateBecauseOutOfMemory(0); 21*6777b538SAndroid Build Coastguard Worker ImmediateCrash(); 22*6777b538SAndroid Build Coastguard Worker } 23*6777b538SAndroid Build Coastguard Worker 24*6777b538SAndroid Build Coastguard Worker } // namespace win 25*6777b538SAndroid Build Coastguard Worker } // namespace base 26