EXPORT_C #endif DBusList* _dbus_list_alloc_link (void *data) { return alloc_link (data); }
/** * Prepends a value to the list. May return #FALSE * if insufficient memory exists to add a list link. * This is a constant-time operation. * * @param list address of the list head. * @param data the value to prepend. * @returns #TRUE on success. */ dbus_bool_t _dbus_list_prepend (DBusList **list, void *data) { DBusList *link; link = alloc_link (data); if (link == NULL) return FALSE; link_before (list, *list, link); return TRUE; }
/** * Inserts data into the list after the given existing link. * * @param list the list to modify * @param after_this_link existing link to insert after, or #NULL to prepend * @param data the value to insert * @returns #TRUE on success, #FALSE if memory allocation fails */ dbus_bool_t _dbus_list_insert_after (DBusList **list, DBusList *after_this_link, void *data) { DBusList *link; if (after_this_link == NULL) return _dbus_list_prepend (list, data); else { link = alloc_link (data); if (link == NULL) return FALSE; link_after (list, after_this_link, link); } return TRUE; }
/** * Inserts data into the list before the given existing link. * * @param list the list to modify * @param before_this_link existing link to insert before, or #NULL to append * @param data the value to insert * @returns #TRUE on success, #FALSE if memory allocation fails */ dbus_bool_t _dbus_list_insert_before (DBusList **list, DBusList *before_this_link, void *data) { DBusList *link; if (before_this_link == NULL) return _dbus_list_append (list, data); else { link = alloc_link (data); if (link == NULL) return FALSE; link_before (list, before_this_link, link); } return TRUE; }
/** * Allocates a linked list node. Useful for preallocating * nodes and using _dbus_list_append_link() to avoid * allocations. * * @param data the value to store in the link. * @returns a newly allocated link. */ DBusList* _dbus_list_alloc_link (void *data) { return alloc_link (data); }