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