* This returns true on success (and may move *@p), or false on failure.
* On success, tal_count() of *@p will be @count.
*
+ * Note: if *p is take(), it will still be take() upon return, even if it
+ * has been moved.
+ *
* Example:
* tal_resize(&p, 100);
*/
/**
* tal_steal - change the parent of a tal-allocated pointer.
* @ctx: The new parent.
- * @ptr: The tal allocated object to move.
+ * @ptr: The tal allocated object to move, or NULL.
*
* This may need to perform an allocation, in which case it may fail; thus
- * it can return NULL, otherwise returns @ptr.
+ * it can return NULL, otherwise returns @ptr. If @ptr is NULL, this function does
+ * nothing.
*/
#if HAVE_STATEMENT_EXPR
/* Weird macro avoids gcc's 'warning: value computed is not used'. */
* @function: the function to call before it's freed.
*
* If @function has not been successfully added as a destructor, this returns
- * false.
+ * false. Note that if we're inside the destructor call itself, this will
+ * return false.
*/
#define tal_del_destructor(ptr, function) \
tal_del_destructor_((ptr), typesafe_cb(void, void *, (function), (ptr)))
* @function: the function to call before it's freed.
*
* If @function has not been successfully added as a destructor, this returns
- * false.
+ * false. Note that if we're inside the destructor call itself, this will
+ * return false.
*/
#define tal_del_destructor(ptr, function) \
tal_del_destructor_((ptr), typesafe_cb(void, void *, (function), (ptr)))
#ifdef CCAN_TAL_DEBUG
/**
- * tal_dump - dump entire tal tree.
+ * tal_dump - dump entire tal tree to stderr.
*
* This is a helper for debugging tal itself, which dumps all the tal internal
* state.