mirror of https://github.com/roytam1/UXP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.2 KiB
53 lines
1.2 KiB
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
/* This Source Code Form is subject to the terms of the Mozilla Public |
|
* License, v. 2.0. If a copy of the MPL was not distributed with this |
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * |
|
*/ |
|
|
|
#include "IUnknownImpl.h" |
|
|
|
#include "nsDebug.h" |
|
|
|
namespace mozilla { |
|
namespace a11y { |
|
|
|
HRESULT |
|
GetHRESULT(nsresult aResult) |
|
{ |
|
switch (aResult) { |
|
case NS_OK: |
|
return S_OK; |
|
|
|
case NS_ERROR_INVALID_ARG: |
|
return E_INVALIDARG; |
|
|
|
case NS_ERROR_OUT_OF_MEMORY: |
|
return E_OUTOFMEMORY; |
|
|
|
case NS_ERROR_NOT_IMPLEMENTED: |
|
return E_NOTIMPL; |
|
|
|
default: |
|
return E_FAIL; |
|
} |
|
} |
|
|
|
int |
|
FilterExceptions(unsigned int aCode, EXCEPTION_POINTERS* aExceptionInfo) |
|
{ |
|
if (aCode == EXCEPTION_ACCESS_VIOLATION) { |
|
#ifdef MOZ_CRASHREPORTER |
|
// MSAA swallows crashes (because it is COM-based) but we still need to |
|
// learn about those crashes so we can fix them. Make sure to pass them to |
|
// the crash reporter. |
|
CrashReporter::WriteMinidumpForException(aExceptionInfo); |
|
#endif |
|
} else { |
|
NS_NOTREACHED("We should only be catching crash exceptions"); |
|
} |
|
|
|
return EXCEPTION_CONTINUE_SEARCH; |
|
} |
|
|
|
} // namespace a11y |
|
} // namespace mozilla
|
|
|