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 * | allocate_object (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) |
bool | reserve () |
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 508 of file pugixml.cpp.
|
inline |
Definition at line 510 of file pugixml.cpp.
|
inline |
Definition at line 541 of file pugixml.cpp.
References _busy_size, _root, allocate_memory_oob(), PUGI__UNLIKELY, and xml_memory_page_size.
Referenced by allocate_object(), and allocate_string().
PUGI__FN_NO_INLINE void * xml_allocator::allocate_memory_oob | ( | size_t | size, |
xml_memory_page *& | out_page | ||
) |
Definition at line 707 of file pugixml.cpp.
References _busy_size, _root, allocate_page(), xml_memory_page::busy_size, xml_memory_page::next, xml_memory_page::prev, and xml_memory_page_size.
Referenced by allocate_memory().
|
inline |
Definition at line 587 of file pugixml.cpp.
References allocate_memory().
Referenced by allocate_attribute(), and allocate_node().
|
inline |
Definition at line 517 of file pugixml.cpp.
References _root, xml_memory_management_function_storage< T >::allocate, xml_memory_page::allocator, and xml_memory_page::construct().
Referenced by allocate_memory_oob().
|
inline |
Definition at line 637 of file pugixml.cpp.
References allocate_memory(), xml_memory_page::busy_size, xml_memory_string_header::full_size, xml_memory_string_header::page_offset, PUGI__STATIC_ASSERT, xml_memory_block_alignment, and xml_memory_page_size.
Referenced by strcpy_insitu().
|
inline |
Definition at line 593 of file pugixml.cpp.
References _busy_size, _root, xml_memory_page::busy_size, 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().
|
inlinestatic |
Definition at line 534 of file pugixml.cpp.
References xml_memory_management_function_storage< T >::deallocate.
Referenced by deallocate_memory().
|
inline |
Definition at line 671 of file pugixml.cpp.
References deallocate_memory(), xml_memory_string_header::full_size, xml_memory_string_header::page_offset, and xml_memory_block_alignment.
Referenced by destroy_attribute(), destroy_node(), and strcpy_insitu().
|
inline |
Definition at line 690 of file pugixml.cpp.
Referenced by append_new_attribute(), append_new_node(), and strcpy_insitu().
size_t xml_allocator::_busy_size |
Definition at line 700 of file pugixml.cpp.
Referenced by allocate_memory(), allocate_memory_oob(), and deallocate_memory().
xml_memory_page* xml_allocator::_root |
Definition at line 699 of file pugixml.cpp.
Referenced by allocate_memory(), allocate_memory_oob(), allocate_page(), and deallocate_memory().