/** The autoloader cleanup function. It is run on shutdown and frees any memory used by the autoloader code to keep track of loaded files. */ static void parse_util_destroy() { if( all_loaded ) { hash_foreach2( all_loaded, &clear_loaded_entry, 0 ); hash_destroy( all_loaded ); free( all_loaded ); all_loaded = 0; } }
/** Part of the autoloader cleanup */ static void clear_loaded_entry( void *key, void *data, void *handler ) { autoload_t *loaded = (autoload_t *)data; hash_foreach2( &loaded->load_time, &clear_hash_value, handler ); hash_destroy( &loaded->load_time ); hash_destroy( &loaded->is_loading ); free( loaded->old_path ); free( loaded ); free( (void *)key ); }
void anna_hash_add_method(anna_function_t *fun) { al_push(&anna_hash_additional_methods, fun); hash_foreach2(&anna_hash_specialization, &add_hash_method, fun); }
void hash_get_keys( hash_table_t *h, array_list_t *arr ) { hash_foreach2( h, &hash_put_key, arr ); }
void hash_get_data( hash_table_t *h, array_list_t *arr ) { hash_foreach2( h, &hash_put_data, arr ); }