Public Member Functions | |
xml_allocator (xml_memory_page *root) | |
xml_memory_page * | allocate_page (size_t data_size) |
void * | allocate_memory_oob (size_t size, xml_memory_page *&out_page) |
void * | allocate_memory (size_t size, xml_memory_page *&out_page) |
void | deallocate_memory (void *ptr, size_t size, xml_memory_page *page) |
char_t * | allocate_string (size_t length) |
void | deallocate_string (char_t *string) |
Static Public Member Functions | |
static void | deallocate_page (xml_memory_page *page) |
Public Attributes | |
xml_memory_page * | _root |
size_t | _busy_size |
Definition at line 282 of file pugixml.cpp.
xml_allocator::xml_allocator | ( | xml_memory_page * | root | ) | [inline] |
Definition at line 283 of file pugixml.cpp.
void* xml_allocator::allocate_memory | ( | size_t | size, | |
xml_memory_page *& | out_page | |||
) | [inline] |
Definition at line 311 of file pugixml.cpp.
References _busy_size, _root, allocate_memory_oob(), and xml_memory_page::data.
Referenced by allocate_attribute(), allocate_node(), and allocate_string().
PUGI__FN_NO_INLINE void * xml_allocator::allocate_memory_oob | ( | size_t | size, | |
xml_memory_page *& | out_page | |||
) |
Definition at line 401 of file pugixml.cpp.
References _busy_size, _root, allocate_page(), xml_memory_page::busy_size, xml_memory_page::data, xml_memory_page::next, and xml_memory_page::prev.
Referenced by allocate_memory().
xml_memory_page* xml_allocator::allocate_page | ( | size_t | data_size | ) | [inline] |
Definition at line 286 of file pugixml.cpp.
References _root, xml_memory_management_function_storage< T >::allocate, xml_memory_page::allocator, xml_memory_page::construct(), and xml_memory_page::memory.
Referenced by allocate_memory_oob().
char_t* xml_allocator::allocate_string | ( | size_t | length | ) | [inline] |
Definition at line 353 of file pugixml.cpp.
References allocate_memory(), xml_memory_page::busy_size, xml_memory_page::data, xml_memory_string_header::full_size, and xml_memory_string_header::page_offset.
Referenced by strcpy_insitu().
void xml_allocator::deallocate_memory | ( | void * | ptr, | |
size_t | size, | |||
xml_memory_page * | page | |||
) | [inline] |
Definition at line 323 of file pugixml.cpp.
References _busy_size, _root, xml_memory_page::busy_size, xml_memory_page::data, deallocate_page(), xml_memory_page::freed_size, xml_memory_page::next, and xml_memory_page::prev.
Referenced by deallocate_string(), destroy_attribute(), and destroy_node().
static void xml_allocator::deallocate_page | ( | xml_memory_page * | page | ) | [inline, static] |
Definition at line 305 of file pugixml.cpp.
References xml_memory_management_function_storage< T >::deallocate, and xml_memory_page::memory.
Referenced by deallocate_memory().
void xml_allocator::deallocate_string | ( | char_t * | string | ) | [inline] |
Definition at line 380 of file pugixml.cpp.
References xml_memory_page::busy_size, deallocate_memory(), xml_memory_string_header::full_size, and xml_memory_string_header::page_offset.
Referenced by destroy_attribute(), destroy_node(), and strcpy_insitu().
size_t xml_allocator::_busy_size |
Definition at line 398 of file pugixml.cpp.
Referenced by allocate_memory(), allocate_memory_oob(), and deallocate_memory().
Definition at line 397 of file pugixml.cpp.
Referenced by allocate_memory(), allocate_memory_oob(), allocate_page(), and deallocate_memory().