From 79b3462799c28af8ba586349bd671b1b56e72353 Mon Sep 17 00:00:00 2001 From: Jason Maskell Date: Mon, 9 May 2016 10:39:54 +0200 Subject: Initial commit with PS4 and XBone stuff trimmed. --- src/CustomMemory.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/CustomMemory.h (limited to 'src/CustomMemory.h') diff --git a/src/CustomMemory.h b/src/CustomMemory.h new file mode 100644 index 0000000..390101c --- /dev/null +++ b/src/CustomMemory.h @@ -0,0 +1,49 @@ +#pragma once + +#include + +void* internalMalloc( size_t size ); +void internalFree( void* p ); +void resetMemoryManagementCallbacksToDefaults(); + +#if defined(TARGET_PLATFORM_NIXLIKE) +#define __CRTDECL +#endif + +template class myAllocator +{ +public: + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef T* pointer; + typedef const T* const_pointer; + typedef T& reference; + typedef const T& const_reference; + typedef T value_type; + template struct rebind { typedef myAllocator other; }; + myAllocator () throw() { } + myAllocator (const myAllocator&) throw () { } + template myAllocator(const myAllocator&) throw() { } + template myAllocator& operator=(const myAllocator&) throw() { return *this; } + ~myAllocator () throw() { } + pointer address(reference value) const { return &value; } + const_pointer address(const_reference value) const { return &value; } + size_type max_size() const throw() { return 1000000; } + void construct(pointer p, const T& value) { new((void*)p) T(value); } + void destroy(pointer p) { p->~T(); } + + pointer allocate (size_type num, typename myAllocator::const_pointer = 0) + { + return (pointer)(internalMalloc(num*sizeof(T))); + } + void deallocate(pointer p, size_type n) + { + internalFree((void*)p); + } +}; +template bool operator==(const myAllocator&, const myAllocator&) throw() { return true; } +template bool operator!=(const myAllocator&, const myAllocator&) throw() { return false; } + +typedef std::basic_string< char, std::char_traits, myAllocator< char > > mystring; +typedef std::basic_stringstream< char, std::char_traits, myAllocator< char > > mystringstream; + -- cgit v1.2.3