Public Member Functions | |
void | clear () |
base_list (const base_list &tmp) | |
base_list (bool) | |
bool | push_back (void *info) |
bool | push_back (void *info, memory::Root *mem_root) |
bool | push_front (void *info) |
void | remove (list_node **prev) |
void | concat (base_list *list) |
void * | pop () |
void | disjoin (base_list *list) |
void | prepand (base_list *list) |
void | swap (base_list &rhs) |
bool | is_empty () |
Static Public Member Functions | |
static void * | operator new (size_t size) |
static void * | operator new (size_t size, Root *mem_root) |
static void * | operator new[] (size_t size) |
static void * | operator new[] (size_t size, Root *mem_root) |
static void | operator delete (void *, size_t) |
static void | operator delete (void *, Root *) |
static void | operator delete[] (void *, Root *) |
static void | operator delete[] (void *, size_t) |
Protected Member Functions | |
void | after (void *info, list_node *node) |
Protected Attributes | |
list_node * | first |
list_node ** | last |
uint32_t | elements |
Friends | |
class | base_list_iterator |
Definition at line 110 of file sql_list.h.
drizzled::base_list::base_list | ( | const base_list & | tmp | ) | [inline] |
This is a shallow copy constructor that implicitly passes the ownership from the source list to the new instance. The old instance is not updated, so both objects end up sharing the same nodes. If one of the instances then adds or removes a node, the other becomes out of sync ('last' pointer), while still operational. Some old code uses and relies on this behaviour. This logic is quite tricky: please do not use it in any new code.
Definition at line 128 of file sql_list.h.
void drizzled::base_list::swap | ( | base_list & | rhs | ) | [inline] |
Swap two lists.
Definition at line 223 of file sql_list.h.
Referenced by drizzled::prepare_alter_table().