Files
palemoon27/memory/mozalloc/msvc_raise_wrappers.cpp
T
roytam1 850741b596 import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1189709 - Reduce scope of MessageChannel window neutering. r=jimm (a73623101e)
- Bug 1202051 - Use a PersistentRooted to automate tracing of unwrappedException_; r=sfink (32964b4bcb)
- missing part of Bug 1135236 - Remove unused print callbacks in profiler backend. (a6427e4a23)
- Bug 1164785 - Append line number to systrace scopedTrace object name. r=BenWa (be4fb076b0)
- missing parts of Bug 779291: Implement SPS stackwalk (fefa7c961c)
- Bug 1186709 - Remove MOZ_IMPLICIT from security/sandbox/chromium. r=bobowen (7c1419cd3a)
- Bug 1274253. Properly test the cpuid bits. (039f594ab3)
- Bug 1168291 - Install mozcrt.lib instead of mozglue.lib in the SDK. r=mshal (00d4309281)
- Bug 1198334 (follow-up) - Fix SM(e) bustage (which doesn't show up on try pushes, grr). r=bustage. (4431457ede)
- Bug 1194560 - Add tools/power/rapl, a RAPL-reading program for power rofiling. r=erahm,glandium. (47b61fd39c)
- Bug 1147243 - Build memory/jemalloc in unified mode; r=glandium (81173f8bc2)
- Bug 1201738 - Update jemalloc4 to 594c759 + two pending patches. r=njn (66f4f3fe49)
- Bug 1135583: Prevent the inclusion of Char16.h in VS2015's fallible.obj. r=glandium (3e5ac84efb)
- bug 1171122 - Swap some XP_MACOSX for XP_DARWIN in mozalloc. r=glandium (6d03543291)
- Bug 1170177 - Disable our own abort() method with MOZ_ASAN. r=froydnj (cdc43fcb8c)
- Bug 1120793 - Remove obsolete _Throw wrapping. r=froydnj (a5c53780ec)
- Bug 1189967 - Avoid conflicting declarations for our raise wrappers on Windows. r=nfroyd (e0a606ef14)
- Bug 1203476 - Fix an Android-only warning in mozalloc_abort.cpp. r=glandium. (806b791d54)
- pointer style (97a2b4ffea)
- Bug 1147353 - Odin: simplify the masked index bounds check test. r=sfink, r=luke (fa6007c8dd)
2022-02-11 22:28:17 +08:00

68 lines
1.7 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* vim: sw=4 ts=4 et :
*/
/* 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 <stdio.h>
#if defined(XP_WIN)
# define MOZALLOC_EXPORT __declspec(dllexport)
#endif
#include "mozalloc_abort.h"
__declspec(noreturn) static void abort_from_exception(const char* const which,
const char* const what);
static void
abort_from_exception(const char* const which, const char* const what)
{
fprintf(stderr, "fatal: STL threw %s: ", which);
mozalloc_abort(what);
}
namespace std {
// NB: user code is not supposed to touch the std:: namespace. We're
// doing this after careful review because we want to define our own
// exception throwing semantics. Don't try this at home!
MOZALLOC_EXPORT __declspec(noreturn) void
moz_Xinvalid_argument(const char* what)
{
abort_from_exception("invalid_argument", what);
}
MOZALLOC_EXPORT __declspec(noreturn) void
moz_Xlength_error(const char* what)
{
abort_from_exception("length_error", what);
}
MOZALLOC_EXPORT __declspec(noreturn) void
moz_Xout_of_range(const char* what)
{
abort_from_exception("out_of_range", what);
}
MOZALLOC_EXPORT __declspec(noreturn) void
moz_Xoverflow_error(const char* what)
{
abort_from_exception("overflow_error", what);
}
MOZALLOC_EXPORT __declspec(noreturn) void
moz_Xruntime_error(const char* what)
{
abort_from_exception("runtime_error", what);
}
void
moz_Xbad_function_call()
{
abort_from_exception("bad_function_call", "bad function call");
}
} // namespace std