#include <glib.h>
#include <utils/eh_types.h>
Go to the source code of this file.
Defines | |
#define | EH_MEM_LEAK_START { glong __s = eh_mem_in_use(), __e; |
#define | EH_MEM_LEAK_END_WARN __e = eh_mem_in_use(); if ( __e!=__s ) { eh_watch_lng( __s ); eh_watch_lng(__e); } } |
#define | EH_MEM_LEAK_END_FATAL __e = eh_mem_in_use(); if ( __e!=__s ) { eh_watch_lng( __s ); eh_watch_lng(__e); eh_exit(0); } } |
#define | eh_compiler_require(exp) extern char _compiler_require[(exp)?1:-1] |
#define | API_ENTRY |
#define | LOCAL static |
#define | IS_POWER_2(x) ( !((x)&((x)-1)) ) |
#define | USE_WIN_ASSERT |
#define | assert_error _do_win_assert( __LINE__ ) |
#define | win_assert(exp) if ( !(exp) ) { assert_error; } else |
#define | USE_MY_VTABLE |
#define | eh_new(type, n) |
#define | eh_new0(type, n) |
#define | eh_renew(type, old, n) |
#define | eh_free(mem) ( (mem) = eh_free_mem( mem ) ) |
Functions | |
void API_ENTRY | report_win_assert (char *file_name, int line_no) |
gpointer API_ENTRY | eh_malloc (gsize w_size, Class_Desc desc, const char *file, int line_no) |
gpointer API_ENTRY | eh_realloc (gpointer old, gsize w_size, const char *file, int line_no) |
void API_ENTRY | eh_walk_heap (void) |
gboolean API_ENTRY | eh_is_ptr_ok (gpointer mem) |
gpointer API_ENTRY | eh_malloc_c_style (gsize w_size) |
gpointer API_ENTRY | eh_calloc_c_style (gsize n_blocks, gsize n_block_bytes) |
gpointer API_ENTRY | eh_realloc_c_style (gpointer mem, gsize w_size) |
glong API_ENTRY | eh_mem_in_use (void) |
void *API_ENTRY | eh_free_mem (gpointer mem) |
void API_ENTRY | eh_heap_dump (const char *file) |
void API_ENTRY | eh_free_c_style (gpointer mem) |
void ** | eh_alloc_2 (gssize m, gssize n, gssize size) |
void | eh_free_void_2 (void **p) |
#define assert_error _do_win_assert( __LINE__ ) |
#define eh_compiler_require | ( | exp | ) | extern char _compiler_require[(exp)?1:-1] |
#define eh_free | ( | mem | ) | ( (mem) = eh_free_mem( mem ) ) |
Definition at line 56 of file eh_mem.h.
Referenced by add_inter_1d(), add_inter_2d(), avulsion_destroy(), bing(), bio_conveyor(), bio_destroy(), c_tridiag(), compact(), compute_c_grain(), convlv(), deposit_in_river(), deposit_sediment_helper(), destroy_avulsion(), destroy_bbl(), destroy_bedload(), destroy_bioturbation(), destroy_constants(), destroy_cpr(), destroy_data_dump(), destroy_debris_flow(), destroy_diffusion(), destroy_erosion(), destroy_failure(), destroy_flow(), destroy_inflow(), destroy_isostasy(), destroy_met_station(), destroy_new_process(), destroy_plume(), destroy_plume_data(), destroy_plume_hypo(), destroy_quake(), destroy_river(), destroy_sea_level(), destroy_squall(), destroy_storm(), destroy_subsidence(), destroy_tide(), destroy_xshore(), destroyPosVec(), diffuse_col(), diffuse_profile(), diffuse_sediment(), diffuse_sediment_2(), dup_key(), eh_close_data_file(), eh_close_scanner(), eh_create_file_list(), eh_data_record_destroy(), eh_data_record_print(), eh_data_record_scan(), eh_dbl_array_conv(), eh_dbl_array_diff(), eh_dbl_array_diffuse_explicit(), eh_dbl_array_diffuse_implicit(), eh_dbl_grid_rebin_bad_val(), eh_dbl_grid_remesh(), eh_destroy_args(), eh_destroy_context(), eh_destroy_file_list(), eh_destroy_histogram(), eh_destroy_key(), eh_destroy_polygon(), eh_destroy_project(), eh_destroy_sequence(), eh_dlm_read(), eh_dlm_read_full(), eh_dlm_read_full_swap(), eh_dlm_remove_empty_lines(), eh_exit_on_error(), eh_fill_project_info(), eh_free_ndgrid_data(), eh_free_slist_data(), eh_free_void_2(), eh_get_arg_n(), eh_get_next_file(), eh_get_opt_defaults(), eh_grid_destroy(), eh_grid_free_data(), eh_grid_resize(), eh_grid_transpose(), eh_input_boolean(), eh_input_val_destroy(), eh_key_file_destroy(), eh_key_file_fprint_template(), eh_key_file_get_bool_value(), eh_key_file_get_dbl_array(), eh_key_file_get_dbl_value(), eh_key_file_get_groups(), eh_key_file_get_int_value(), eh_key_file_get_keys(), eh_key_file_pop_group(), eh_key_file_scan(), eh_key_file_scan_from_template(), eh_load_project(), eh_logger(), eh_low_pass_filter(), eh_ndgrid_destroy(), eh_ndgrid_id_to_sub(), eh_ndgrid_ind(), eh_ndgrid_sub_to_id(), eh_open_data_file(), eh_open_log(), eh_opt_print_opt_padded(), eh_opts_init(), eh_poly_fit(), eh_print_log(), eh_print_symbol_aligned(), eh_project_add_info_val(), eh_project_get_info_val(), eh_project_info_file_full_name(), eh_project_set_info_val(), eh_read_project_info_file(), eh_rebin_dbl_array_bad_val(), eh_render_command_str(), eh_reshape_ndgrid(), eh_scan_ascii_data_line(), eh_scan_ascii_data_line_dbl(), eh_scan_boolean_array(), eh_scan_dbl_array(), eh_scan_entry(), eh_scan_int_array(), eh_scan_label(), eh_scan_next_record(), eh_scan_str_array(), eh_set_error_strv(), eh_set_file_error_from_errno(), eh_set_project_dir(), eh_slist_remove_and_free(), eh_status_bar_destroy(), eh_str_case_hash(), eh_str_remove_white_space(), eh_str_to_boolean(), eh_str_to_dbl_range(), eh_str_to_time_range(), eh_svbksb(), eh_svdcmp(), eh_svdfit(), eh_symbol_table_bool_value(), eh_symbol_table_dbl_array_value(), eh_symbol_table_dbl_range(), eh_symbol_table_dbl_value(), eh_symbol_table_destroy(), eh_symbol_table_free_label(), eh_symbol_table_int_value(), eh_symbol_table_time_array_value(), eh_symbol_table_time_range(), eh_symbol_table_time_value(), eh_symbol_table_values(), eh_touch_file(), eh_try_open(), eh_write_project_info_file(), epoch_set_name(), erode_river_profile(), fail_destroy_fail_column(), fail_destroy_failure_profile(), fail_examine_fail_profile(), fail_get_fail_profile_fos(), fail_get_failure_line(), fail_get_janbu_parameters(), fail_reinit_fail_profile(), fail_update_fail_profile(), fill_sedflux_info_file(), fmg_3d(), free_2d(), free_3d(), free_d3tensor(), free_dmatrix(), free_link_data(), free_vector(), get_bruun_profile(), get_bruun_zones(), get_circle(), get_ellipse(), get_factor_of_safety(), get_failure_surface(), get_moveable_grains(), get_sediment_flux(), get_shelf_zones(), get_time_step(), get_zones(), inflow(), inflow_deposit_sediment(), inflow_destroy_bathy_data(), inflow_destroy_flood_data(), inflow_erode_sediment(), inflow_flood_from_cell(), inflow_scan_flood_file(), inflow_scan_parameter_file(), inflow_set_bathy_data_from_cube(), init_bbl(), init_bbl_data(), init_cpr_data(), init_subsidence_data(), interpolate_2_bad_val(), load_measuring_station_data(), ludcmp(), main(), mgm_1d(), mgm_2d(), move_sediment(), muddy(), my_hook(), parse_data_list(), plume_centerline_deposit(), plume_i_bar(), plume_i_bar_at_x(), plume_k_bar_at_x(), plume_k_bar_dy_at_x(), plume_scan_parameter_file(), plume_u_bar_at_x(), plume_v_bar_at_x(), plume_width_averaged_deposit(), plume_width_averaged_deposit_nd_num(), plume_width_averaged_deposit_num(), plumearray(), poly_interpolate(), print_opt_pad(), print_status(), run_bbl(), run_bedload(), run_compaction(), run_darcy_flow(), run_data_dump(), run_debris_flow(), run_diffusion(), run_erosion(), run_exponential_flow(), run_plume_hypo(), run_terzaghi_flow(), run_xshore(), sakura(), sakura_array_destroy(), sakura_deposit_all(), sakura_deposit_sediment(), sakura_destroy_bathy_data(), sakura_destroy_flood_data(), sakura_destroy_sediment_data(), sakura_erode(), sakura_erode_sediment(), sakura_flood_from_cell(), sakura_node_destroy(), sakura_node_set(), sakura_scan_flood_file(), sakura_scan_parameter_file(), sakura_sed_add_sediment(), sakura_sed_remove_sediment(), sakura_sed_set_flood_data(), sakura_sediment_destroy(), sakura_set_bathy_data_from_cube(), sakura_set_outflow(), sakura_wrapper(), savgol(), sed_cell_array_delete_empty(), sed_cell_array_free(), sed_cell_destroy(), sed_cell_list_destroy(), sed_cell_new_bedload(), sed_cell_new_classed(), sed_cell_new_typed(), sed_cell_separate(), sed_cell_separate_amount(), sed_cell_separate_fraction(), sed_column_avg_property(), sed_column_avg_property_with_load(), sed_column_bioturbate(), sed_column_destroy(), sed_column_property(), sed_cube_add(), sed_cube_all_branches(), sed_cube_all_leaves(), sed_cube_avulse_river(), sed_cube_copy_line(), sed_cube_copy_scalar_data(), sed_cube_find_river_mouth(), sed_cube_free(), sed_cube_mass_in_suspension(), sed_cube_new_from_file(), sed_cube_property_subgrid(), sed_cube_remove(), sed_cube_remove_all_trunks(), sed_cube_river_path_id(), sed_cube_set_name(), sed_cube_write(), sed_diag_destroy(), sed_epoch_destroy(), sed_epoch_new_from_table(), sed_epoch_queue_destroy(), sed_epoch_queue_new(), sed_epoch_set_filename(), sed_epoch_sscan_time(), sed_find_river_mouth(), sed_get_floor(), sed_get_floor_sequence_2(), sed_hydro_array_destroy(), sed_hydro_array_eventize(), sed_hydro_average_records(), sed_hydro_check(), sed_hydro_destroy(), sed_hydro_file_destroy(), sed_hydro_file_new(), sed_hydro_new_from_table(), sed_hydro_process_records(), sed_hydro_scan_n_records(), sed_hydrotrend_byte_order(), sed_hydrotrend_data_start(), sed_hydrotrend_header_destroy(), sed_hydrotrend_join_header_from_byte_order(), sed_hydrotrend_n_grains(), sed_hydrotrend_read_header_from_byte_order(), sed_hydrotrend_read_n_recs(), sed_hydrotrend_read_next_rec_from_byte_order(), sed_hydrotrend_record_size(), sed_hydrotrend_write_record_to_byte_order(), sed_measurement_copy(), sed_measurement_destroy(), sed_measurement_new(), sed_ocean_storm_destroy(), sed_process_destroy(), sed_process_link_destroy(), sed_process_queue_destroy(), sed_process_queue_validate(), sed_process_render_flag_str(), sed_process_scan(), sed_property_copy(), sed_property_destroy(), sed_property_file_attr_destroy(), sed_property_file_destroy(), sed_property_file_header_destroy(), sed_property_file_header_fprint(), sed_river_copy(), sed_river_destroy(), sed_river_hinge_destroy(), sed_sediment_destroy(), sed_sediment_scan(), sed_tripod_attr_destroy(), sed_tripod_destroy(), sed_tripod_header_destroy(), sed_tripod_header_fprint(), sed_tripod_write(), sed_type_destroy(), sed_wave_destroy(), sedflux_get_file_name_interactively(), set_default_values(), solve_excess_pore_pressure(), solve_excess_pore_pressure_mg(), solve_excess_pore_pressure_mg_2d(), squall(), subside_grid_load(), test_2d(), tpool_destroy(), tridiag(), and xshore().
#define EH_MEM_LEAK_END_FATAL __e = eh_mem_in_use(); if ( __e!=__s ) { eh_watch_lng( __s ); eh_watch_lng(__e); eh_exit(0); } } |
#define EH_MEM_LEAK_END_WARN __e = eh_mem_in_use(); if ( __e!=__s ) { eh_watch_lng( __s ); eh_watch_lng(__e); } } |
#define EH_MEM_LEAK_START { glong __s = eh_mem_in_use(), __e; |
#define eh_new | ( | type, | |||
n | ) |
Value:
( (type*)eh_malloc( ((gsize)(sizeof(type)))*((gsize)(n)) , \ G_STRINGIFY(type) , \ __FILE__ , \ __LINE__ ) )
Definition at line 44 of file eh_mem.h.
Referenced by add_inter_1d(), allocate_1d(), allocate_2d(), allocate_3d(), avulsion_new(), bing(), bio_conveyor(), bio_conveyor_layers(), bio_diffuse_layers(), c_tridiag(), compute_c_grain(), convlv(), createPosVec(), deposit_sediment_helper(), derivative(), diffuse_sediment(), diffuse_sediment_2(), eh_alloc_2(), eh_create_args(), eh_create_file_list(), eh_create_histogram(), eh_create_sequence(), eh_dbl_array_cum_max_dir(), eh_dbl_array_cum_min_dir(), eh_dbl_array_cum_sum_dir(), eh_dbl_array_diff(), eh_dbl_array_diffuse_implicit(), eh_dbl_array_gradient(), eh_dbl_array_new(), eh_dbl_array_new_set(), eh_dbl_array_rebin_larger(), eh_dbl_array_rebin_smaller(), eh_dbl_array_set(), eh_dbl_array_to_col(), eh_dbl_grid_line_ids(), eh_dbl_grid_new_set(), eh_dbl_grid_rebin_bad_val(), eh_dbl_grid_remesh(), eh_dlm_read_full(), eh_dlm_read_full_swap(), eh_find_polygon_crossings(), eh_get_input_val(), eh_get_polygon_from_grid(), eh_get_rectangle_polygon(), eh_grid_resize(), eh_grid_to_ndgrid(), eh_grid_transpose(), eh_id_array(), eh_ind_2_dup(), eh_input_boolean(), eh_input_str(), eh_key_file_get_bool_values(), eh_key_file_get_dbl_array(), eh_key_file_get_dbl_values(), eh_key_file_scan_from_template(), eh_linear_fit(), eh_linspace(), eh_load_file_list(), eh_logger(), eh_ndgrid_id_to_sub(), eh_ndgrid_ind(), eh_ndgrid_malloc(), eh_ndgrid_sub_to_id(), eh_opts_init(), eh_poly_fit(), eh_rebin_dbl_array_bad_val(), eh_reshape_ndgrid(), eh_scan_ascii_data_line_dbl(), eh_scan_boolean_array(), eh_scan_dbl_array(), eh_scan_int_array(), eh_status_bar_new(), eh_str_remove_white_space(), eh_str_to_dbl_range(), eh_str_to_time_range(), eh_str_trim_left(), eh_str_trim_right(), eh_strv_append(), eh_svbksb(), eh_svdcmp(), eh_svdfit(), eh_symbol_table_dbl_array_value(), eh_symbol_table_time_array_value(), eh_uniform_array(), f3tensor(), fail_create_fail_column(), fail_create_fail_profile(), fail_examine_fail_profile(), fail_get_fail_profile_fos(), fail_get_failure_line(), fail_get_janbu_parameters(), fail_load_fail_column(), fail_load_fail_profile(), fail_reinit_fail_profile(), fill_sedflux_info_file(), fmg_1d(), fmg_2d(), fmg_3d(), get_bruun_profile(), get_ellipse(), get_factor_of_safety(), get_max_erosion_profile(), get_sediment_flux(), get_shelf_zones(), get_wave_from_beaufort_scale(), get_wave_from_beaufort_scale_old(), get_wave_from_beaufort_scale_power_law(), get_zone_boundaries(), get_zones(), getline(), inflow(), inflow_deposit_sediment(), inflow_erode_sediment(), inflow_scan_parameter_file(), inflow_set_bathy_data(), inflow_set_constant_data(), inflow_set_flood_data(), inflow_set_sediment_data(), inflow_set_sediment_data_from_env(), init_plume_hypo_data(), interpolate_2_bad_val(), load_cpr_data(), load_data_dump_data(), load_measuring_station_data(), load_subsidence_data(), ludcmp(), main(), matrix(), mgm_1d(), move_sediment(), muddy(), new_d3tensor(), new_dmatrix(), parse_data_list(), plume_centerline_deposit(), plume_centerline_deposit_nd(), plume_centerline_inv(), plume_centerline_inv_nd(), plume_i_bar_at_x(), plume_inv(), plume_inv_nd(), plume_k_bar_at_x(), plume_k_bar_dy_at_x(), plume_scan_parameter_file(), plume_u_bar_at_x(), plume_v_bar_at_x(), plume_width_averaged_deposit(), plume_width_averaged_deposit_nd(), plume_width_averaged_deposit_nd_num(), plume_width_averaged_deposit_num(), plume_width_averaged_inv(), plume_wrapper(), plumearray(), plumeout2(), plumeread(), poly_interpolate(), run_bedload(), run_compaction(), run_darcy_flow(), run_debris_flow(), run_exponential_flow(), run_plume_hypo(), run_terzaghi_flow(), sakura_array_new(), sakura_deposit_all(), sakura_deposit_sediment(), sakura_erode(), sakura_erode_sediment(), sakura_get_phe(), sakura_new_bathy_data(), sakura_node_set(), sakura_scan_parameter_file(), sakura_sed_set_flood_data(), sakura_sediment_new(), sakura_set_bathy_data(), sakura_set_constant_data(), sakura_set_flood_data(), sakura_set_sediment_data(), sakura_set_sediment_data_from_env(), sakura_wrapper(), savgol(), sed_cell_copy_fraction(), sed_cell_list_new(), sed_cell_separate(), sed_cell_separate_fraction(), sed_column_at_property(), sed_column_avg_property(), sed_column_avg_property_with_load(), sed_column_bioturbate(), sed_column_extract_top_n_cells(), sed_column_property(), sed_column_read(), sed_column_resize(), sed_cube_add(), sed_cube_copy_line(), sed_cube_find_shore(), sed_cube_new_empty(), sed_cube_property_subgrid(), sed_cube_read(), sed_cube_remove(), sed_cube_river_path_id(), sed_cube_x(), sed_cube_y(), sed_get_floor_sequence_2(), sed_hydro_array_dup(), sed_hydro_copy_concentration(), sed_hydro_file_fill_buffer(), sed_hydro_process_records(), sed_hydrotrend_read_header_from_byte_order(), sed_hydrotrend_read_next_rec_from_byte_order(), sed_hydrotrend_read_recs(), sed_hydrotrend_write_record_to_byte_order(), sed_process_create(), sed_process_link_new(), sed_process_malloc_user_data(), sed_process_queue_obj_data(), sed_process_queue_push(), sed_property_file_header_fprint(), sed_river_hinge_new(), sed_sediment_copy(), sed_sediment_property(), sed_tripod_header_fprint(), sed_tripod_write(), sedflux_get_file_name_interactively(), sedflux_parse_command_line(), solve_excess_pore_pressure(), solve_excess_pore_pressure_mg(), squall(), subside_grid_load(), test_2d(), tpool_add_work(), tpool_init(), tridiag(), vector(), and xshore().
#define eh_new0 | ( | type, | |||
n | ) |
Value:
( (type*)eh_malloc( ((gsize)(sizeof(type)))*((gsize)(n)) , \ G_STRINGIFY(type) , \ __FILE__ , \ __LINE__ ) )
Definition at line 48 of file eh_mem.h.
Referenced by bio_array_to_cell_array(), bio_conveyor_layers(), bio_diffuse_layers(), compact(), diffuse_sediment(), eh_dbl_array_conv(), eh_dbl_array_diff(), eh_dlm_remove_empty_lines(), eh_low_pass_filter(), eh_open_data_file(), fail_create_fail_profile(), get_bruun_zones(), get_circle(), get_failure_surface(), get_moveable_grains(), get_shelf_zones(), get_zones(), inflow_scan_flood_file(), init_plume_hypo_data(), main(), mgm_1d(), move_sediment(), muddy(), plume_centerline_deposit(), plume_width_averaged_deposit(), plume_width_averaged_deposit_num(), plumemass(), run_xshore(), sakura_array_new(), sakura_node_set(), sakura_scan_flood_file(), sakura_sed_add_sediment(), sakura_sed_remove_sediment(), sakura_sediment_new(), sakura_set_outflow(), sed_cell_new(), sed_cell_new_bedload(), sed_cell_new_classed(), sed_cell_new_typed(), sed_cell_separate_amount(), sed_column_total_load(), sed_column_total_property(), sed_hydro_average_records(), sed_hydro_file_new(), sed_hydro_new(), sed_hydro_scan_n_records(), sed_process_create(), squall(), and xshore().
#define eh_renew | ( | type, | |||
old, | |||||
n | ) |
Value:
( (type*)eh_realloc( (old) , \ ((gsize)sizeof(type))*((gsize)(n)) , \ __FILE__ , \ __LINE__ ) )
Definition at line 52 of file eh_mem.h.
Referenced by eh_data_record_scan_file(), eh_grid_resize(), eh_grid_transpose(), eh_project_add_info_val(), eh_str_remove_comments(), eh_strv_append(), getline(), sed_column_resize(), sed_hydro_resize(), and sed_sediment_resize().
#define USE_WIN_ASSERT |
Value:
static char source_file[] = __FILE__; \ int static _do_win_assert( int line_no ) { \ report_win_assert( source_file , line_no ); \ win_assert( line_no ); \ return( 0 ); \ }
#define win_assert | ( | exp | ) | if ( !(exp) ) { assert_error; } else |
void** eh_alloc_2 | ( | gssize | m, | |
gssize | n, | |||
gssize | size | |||
) |
gpointer API_ENTRY eh_calloc_c_style | ( | gsize | n_blocks, | |
gsize | n_block_bytes | |||
) |
void API_ENTRY eh_free_c_style | ( | gpointer | mem | ) |
Referenced by eh_create_project(), eh_init_glib(), and eh_realloc_c_style().
void* API_ENTRY eh_free_mem | ( | gpointer | mem | ) |
Referenced by eh_key_file_new(), free_f3tensor(), and free_matrix().
void API_ENTRY eh_heap_dump | ( | const char * | file | ) |
Referenced by main().
gboolean API_ENTRY eh_is_ptr_ok | ( | gpointer | mem | ) |
gpointer API_ENTRY eh_malloc | ( | gsize | w_size, | |
Class_Desc | desc, | |||
const char * | file, | |||
int | line_no | |||
) |
Definition at line 166 of file eh_mem.c.
References add_to_linked_list(), assert_error, DO_ALIGN, eh_mem_profile_log(), EH_MEM_PROFILE_MALLOC, and eh_require.
Referenced by eh_calloc_c_style(), eh_malloc_c_style(), and eh_realloc().
gpointer API_ENTRY eh_malloc_c_style | ( | gsize | w_size | ) |
gpointer API_ENTRY eh_realloc | ( | gpointer | old, | |
gsize | w_size, | |||
const char * | file, | |||
int | line_no | |||
) |
Definition at line 269 of file eh_mem.c.
References add_to_linked_list(), assert_error, DO_ALIGN, eh_malloc(), EH_MEM_PROFILE_FREE, eh_mem_profile_log(), EH_MEM_PROFILE_REALLOC, Heap_Prefix::mem, Heap_Prefix::postfix, Heap_Postfix::prefix, remove_from_linked_list(), and verify_heap_pointer().
Referenced by eh_realloc_c_style().
gpointer API_ENTRY eh_realloc_c_style | ( | gpointer | mem, | |
gsize | w_size | |||
) |
Definition at line 321 of file eh_mem.c.
References eh_free_c_style(), and eh_realloc().
Referenced by eh_init_glib().
void API_ENTRY eh_walk_heap | ( | void | ) |
Definition at line 341 of file eh_mem.c.
References Heap_Prefix::next, render_desc(), and verify_heap_pointer().
void API_ENTRY report_win_assert | ( | char * | file_name, | |
int | line_no | |||
) |