1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "allocator_shim/allocator_stub.h"
6
7#if !defined(LIBPEERCONNECTION_IMPLEMENTATION) || defined(LIBPEERCONNECTION_LIB)
8#error "Only compile the allocator proxy with the shared_library implementation"
9#endif
10
11#if defined(OS_MACOSX) || defined(OS_ANDROID)
12#error "The allocator proxy isn't supported (or needed) on mac or android."
13#endif
14
15extern AllocateFunction g_alloc;
16extern DellocateFunction g_dealloc;
17
18// Override the global new/delete routines and proxy them over to the allocator
19// routines handed to us via InitializeModule.
20
21void* operator new(std::size_t n) throw() {
22  return g_alloc(n);
23}
24
25void operator delete(void* p) throw() {
26  g_dealloc(p);
27}
28