summaryrefslogtreecommitdiff
path: root/lib/ktl/stub-new.cc
blob: 919d941784c15dd5dd9154f49194a5800d112877 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Copyright 2020 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT

#include <new>

// std::stable_sort (used as ktl::stable_sort) uses std::get_temporary_buffer,
// which uses operator new to request a temporary buffer but then works fine
// if it can't get one.  There is no "default" memory allocation in the
// kernel, so just provide a stub operator new that always fails so
// std::stable_sort falls back to its no-allocation algorithm.

namespace std {

const nothrow_t nothrow;

}  // namespace std

void* operator new(std::size_t, const std::nothrow_t&) noexcept { return nullptr; }

void* operator new(std::size_t, std::align_val_t, const std::nothrow_t&) noexcept {
  return nullptr;
}