23#ifndef MALLOC_ALLOCATOR_INCLUDED
24#define MALLOC_ALLOCATOR_INCLUDED
61template <
class T =
void *>
89 assert(
m_key == other.psi_key());
93 if (
n == 0)
return nullptr;
94 if (
n >
max_size())
throw std::bad_alloc();
98 if (
p ==
nullptr)
throw std::bad_alloc();
104 template <
class U,
class... Args>
106 assert(
p !=
nullptr);
108 ::new ((
void *)
p)
U(std::forward<Args>(args)...);
115 assert(
p !=
nullptr);
124 return std::numeric_limits<size_t>::max() /
sizeof(T);
Malloc_allocator is a C++ STL memory allocator based on my_malloc/my_free.
Definition: malloc_allocator.h:62
size_t size_type
Definition: malloc_allocator.h:68
void construct(U *p, Args &&... args)
Definition: malloc_allocator.h:105
size_type max_size() const
Definition: malloc_allocator.h:123
PSI_memory_key psi_key() const
Definition: malloc_allocator.h:132
T & reference
Definition: malloc_allocator.h:74
const_pointer address(const_reference r) const
Definition: malloc_allocator.h:78
T value_type
Definition: malloc_allocator.h:67
pointer address(reference r) const
Definition: malloc_allocator.h:77
void deallocate(pointer p, size_type)
Definition: malloc_allocator.h:102
pointer allocate(size_type n, const_pointer hint=nullptr)
Definition: malloc_allocator.h:92
Malloc_allocator(const Malloc_allocator< U > &other)
Definition: malloc_allocator.h:83
void destroy(pointer p)
Definition: malloc_allocator.h:114
PSI_memory_key m_key
Definition: malloc_allocator.h:64
Malloc_allocator & operator=(const Malloc_allocator< U > &other)
Definition: malloc_allocator.h:87
const T * const_pointer
Definition: malloc_allocator.h:72
T * pointer
Definition: malloc_allocator.h:71
ptrdiff_t difference_type
Definition: malloc_allocator.h:69
Malloc_allocator(PSI_memory_key key)
Definition: malloc_allocator.h:80
const T & const_reference
Definition: malloc_allocator.h:75
const char * p
Definition: ctype-mb.cc:1236
#define U
Definition: ctype-tis620.cc:74
#define ME_FATALERROR
Definition: my_sys.h:151
#define MY_WME
Definition: my_sys.h:122
unsigned int PSI_memory_key
Instrumented memory key.
Definition: psi_memory_bits.h:48
bool operator==(const Malloc_allocator< T > &a1, const Malloc_allocator< T > &a2)
Definition: malloc_allocator.h:136
bool operator!=(const Malloc_allocator< T > &a1, const Malloc_allocator< T > &a2)
Definition: malloc_allocator.h:141
#define MYF(v)
Definition: my_inttypes.h:96
void * my_malloc(PSI_memory_key key, size_t size, int flags)
Allocates size bytes of memory.
Definition: my_memory.cc:56
void my_free(void *ptr)
Frees the memory pointed by the ptr.
Definition: my_memory.cc:80
Common header for many mysys elements.
const mysql_service_registry_t * r
Definition: pfs_example_plugin_employee.cc:85
required string key
Definition: replication_asynchronous_connection_failover.proto:59
Definition: malloc_allocator.h:128
Malloc_allocator< U > other
Definition: malloc_allocator.h:129
int n
Definition: xcom_base.cc:508