/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// Inlining `new` like this is technically against C++ spec, but we crave perf.
MOZALLOC_EXPORT_NEW void* operatornew[](size_t size, const std::nothrow_t&) noexcept(true) { #ifdefined(__GNUC__) && !defined(__clang__) // GCC-14 codegen at -O2 causes false positive due to converting // `new A[n]` to `malloc(-1)` when `n > PTRDIFF_MAX/sizeof(A)`. // (See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85783, WONTFIX'd) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Walloc-size-larger-than=" #endif
return malloc_impl(size);
#ifdefined(__GNUC__) && !defined(__clang__) # pragma GCC diagnostic pop #endif
}
#ifdefined(XP_WIN) // We provide the global sized delete overloads unconditionally because the // MSVC runtime headers do, despite compiling with /Zc:sizedDealloc-
MOZALLOC_EXPORT_NEW voidoperatordelete(void* ptr,
size_t /*size*/) noexcept(true) { return free_impl(ptr);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.