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 15 extern AllocateFunction g_alloc; 16 extern 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 operator new(std::size_t n)21void* operator new(std::size_t n) throw() { 22 return g_alloc(n); 23 } 24 operator delete(void * p)25void operator delete(void* p) throw() { 26 g_dealloc(p); 27 } 28