third_party/cairo/src/cairo-hash.c
void
_cairo_hash_table_destroy (cairo_hash_table_t *hash_table)
{
    /* The hash table must be empty. Otherwise, halt. */
    assert (hash_table->live_entries == 0);
    /* No iterators can be running. Otherwise, halt. */
    assert (hash_table->iterating == 0);

    free (hash_table->entries);
    free (hash_table);
}
/**
 * _cairo_hash_table_destroy:
 * @hash_table: an empty hash table to destroy
 *
 * Immediately destroys the given hash table, freeing all resources
 * associated with it.
 *
 * WARNING: The hash_table must have no live entries in it before
 * _cairo_hash_table_destroy is called. It is a fatal error otherwise,
 * and this function will halt. The rationale for this behavior is to
 * avoid memory leaks and to avoid needless complication of the API
 * with destroy notify callbacks.
 *
 * WARNING: The hash_table must have no running iterators in it when
 * _cairo_hash_table_destroy is called. It is a fatal error otherwise,
 * and this function will halt.
 **/
@hash_table: an empty hash table to destroy

Immediately destroys the given hash table, freeing all resources
associated with it.

The hash_table must have no live entries in it before
_cairo_hash_table_destroy is called. It is a fatal error otherwise,
and this function will halt. The rationale for this behavior is to
avoid memory leaks and to avoid needless complication of the API
with destroy notify callbacks.

The hash_table must have no running iterators in it when
_cairo_hash_table_destroy is called. It is a fatal error otherwise,
and this function will halt.
@hash_table : an empty hash table to destroy Immediately destroys the given hash table freeing all resources associated with it . The hash_table must have no live entries in it before _cairo_hash_table_destroy is called . It is a fatal error otherwise and this function will halt . The rationale for this behavior is to avoid memory leaks and to avoid needless complication of the API with destroy notify callbacks . The hash_table must have no running iterators in it when _cairo_hash_table_destroy is called . It is a fatal error otherwise and this function will halt .
void
_cairo_hash_table_destroy (cairo_hash_table_t *hash_table)
{
    assert (hash_table->live_entries == 0);
    assert (hash_table->iterating == 0);
    free (hash_table->entries);
    free (hash_table);
}
void _cairo_hash_table_destroy ( cairo_hash_table_t * hash_table ) { assert ( hash_table -> live_entries == 0 ) ; assert ( hash_table -> iterating == 0 ) ; free ( hash_table -> entries ) ; free ( hash_table ) ; }
_cairo_hash_table_destroy:
 @hash_table: an empty hash table to destroy
_cairo_hash_table_destroy : @hash_table : an empty hash table to destroy
/* The hash table must be empty. Otherwise, halt. */ /* No iterators can be running. Otherwise, halt. */