vector elt_list

This commit is contained in:
David Parkhurst 2021-03-16 00:23:56 -06:00
parent 0957a528df
commit e8c90279e6
13 changed files with 93 additions and 113 deletions

View File

@ -715,9 +715,7 @@ void Phreeqc::init(void)
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
* Element List * Element List
*---------------------------------------------------------------------- */ *---------------------------------------------------------------------- */
elt_list = NULL;
count_elts = 0; count_elts = 0;
max_elts = MAX_ELTS;
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
* Species * Species
*---------------------------------------------------------------------- */ *---------------------------------------------------------------------- */
@ -1624,9 +1622,7 @@ Phreeqc::InternalCopy(const Phreeqc *pSrc)
* Element List * Element List
*---------------------------------------------------------------------- */ *---------------------------------------------------------------------- */
/* /*
elt_list = NULL;
count_elts = 0; count_elts = 0;
max_elts = MAX_ELTS;
*/ */
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
* Reaction * Reaction

View File

@ -1463,11 +1463,8 @@ protected:
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
* Element List * Element List
*---------------------------------------------------------------------- */ *---------------------------------------------------------------------- */
std::vector<elt_list> elt_list;
struct elt_list *elt_list; /* structure array of working space while reading equations
names are in "strings", initially in input order */
int count_elts; /* number of elements in elt_list = position of next */ int count_elts; /* number of elements in elt_list = position of next */
int max_elts;
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
* Reaction * Reaction
*---------------------------------------------------------------------- */ *---------------------------------------------------------------------- */

View File

@ -1124,8 +1124,8 @@ diff_layer_total(const char *total_name, const char *surface_name)
} }
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t) count_elts,
(size_t) sizeof(struct elt_list), Phreeqc:: elt_list_compare); sizeof(struct elt_list), Phreeqc:: elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*
@ -2422,8 +2422,8 @@ surf_total_no_redox(const char *total_name, const char *surface_name)
} }
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*
@ -2838,8 +2838,8 @@ kinetics_formula(std::string kin_name, cxxNameDouble &stoichiometry)
//elt_list[count_elts].elt = NULL; //elt_list[count_elts].elt = NULL;
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
stoichiometry = elt_list_NameDouble(); stoichiometry = elt_list_NameDouble();
@ -3272,8 +3272,8 @@ system_total_elt(const char *total_name)
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*
@ -3360,8 +3360,8 @@ system_total_elt(const char *total_name)
} }
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*
@ -3407,8 +3407,8 @@ system_total_elt(const char *total_name)
add_elt_list(phase_ptr->next_elt, x[i]->moles); add_elt_list(phase_ptr->next_elt, x[i]->moles);
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
for (j = 0; j < count_elts; j++) for (j = 0; j < count_elts; j++)
@ -3448,9 +3448,8 @@ system_total_elt(const char *total_name)
comp_ptr->Get_moles()); comp_ptr->Get_moles());
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), sizeof(struct elt_list), elt_list_compare);
elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
for (j = 0; j < count_elts; j++) for (j = 0; j < count_elts; j++)
@ -3489,8 +3488,8 @@ system_total_elt(const char *total_name)
add_elt_list(phase_ptr->next_elt, phase_ptr->moles_x); add_elt_list(phase_ptr->next_elt, phase_ptr->moles_x);
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*
@ -3544,8 +3543,8 @@ system_total_elt_secondary(const char *total_name)
} }
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*
@ -3674,8 +3673,8 @@ system_total_elt_secondary(const char *total_name)
add_elt_list(phase_ptr->next_sys_total, x[i]->moles); add_elt_list(phase_ptr->next_sys_total, x[i]->moles);
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
for (j = 0; j < count_elts; j++) for (j = 0; j < count_elts; j++)
@ -3716,9 +3715,8 @@ system_total_elt_secondary(const char *total_name)
comp_ptr->Get_moles()); comp_ptr->Get_moles());
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), sizeof(struct elt_list), elt_list_compare);
elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
for (j = 0; j < count_elts; j++) for (j = 0; j < count_elts; j++)
@ -3759,8 +3757,8 @@ system_total_elt_secondary(const char *total_name)
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*
@ -3851,8 +3849,8 @@ solution_sum_secondary(const char *total_name)
} }
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*
@ -3968,8 +3966,8 @@ system_total_solids(cxxExchange *exchange_ptr,
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
return (OK); return (OK);

View File

@ -726,8 +726,8 @@ sum_diffuse_layer(cxxSurfaceCharge *charge_ptr)
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t) count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
return (OK); return (OK);

View File

@ -60,9 +60,6 @@ initialize(void)
cell_data[i].print = FALSE; cell_data[i].print = FALSE;
} }
space((void **) ((void *) &elt_list), INIT, &max_elts,
sizeof(struct elt_list));
inverse = (struct inverse *) PHRQ_malloc((size_t) sizeof(struct inverse)); inverse = (struct inverse *) PHRQ_malloc((size_t) sizeof(struct inverse));
if (inverse == NULL) malloc_error(); if (inverse == NULL) malloc_error();
count_inverse = 0; count_inverse = 0;

View File

@ -140,7 +140,7 @@ parse_eq(char *eqn, struct elt_list **elt_ptr, int association)
/* /*
* Sort elements in reaction and combine * Sort elements in reaction and combine
*/ */
qsort(elt_list, (size_t) count_elts, (size_t) sizeof(struct elt_list), qsort(elt_list.data(), (size_t) count_elts, sizeof(struct elt_list),
elt_list_compare); elt_list_compare);
if (elt_list_combine() == ERROR) if (elt_list_combine() == ERROR)
return (ERROR); return (ERROR);
@ -228,7 +228,7 @@ check_eqn(int association)
/* /*
* Sort elements in reaction and combine * Sort elements in reaction and combine
*/ */
qsort(elt_list, (size_t) count_elts, (size_t) sizeof(struct elt_list), qsort(elt_list.data(), (size_t) count_elts, sizeof(struct elt_list),
elt_list_compare); elt_list_compare);
if (elt_list_combine() == ERROR) if (elt_list_combine() == ERROR)
return (ERROR); return (ERROR);
@ -607,10 +607,9 @@ get_elts_in_species(char **t_ptr, LDBLE coef)
{ {
return (ERROR); return (ERROR);
} }
if (count_elts >= max_elts) if (count_elts >= (int)elt_list.size())
{ {
space((void **) ((void *) &elt_list), count_elts, &max_elts, elt_list.resize((size_t)count_elts + 1);
sizeof(struct elt_list));
} }
elt_list[count_elts].elt = element_store(element); elt_list[count_elts].elt = element_store(element);
if (get_num(t_ptr, &d) == ERROR) if (get_num(t_ptr, &d) == ERROR)
@ -622,10 +621,9 @@ get_elts_in_species(char **t_ptr, LDBLE coef)
/* /*
* Expand working space for elements if necessary * Expand working space for elements if necessary
*/ */
if (count_elts >= max_elts) if (count_elts >= (int)elt_list.size())
{ {
space((void **) ((void *) &elt_list), count_elts, &max_elts, elt_list.resize((size_t)count_elts + 1);
sizeof(struct elt_list));
} }
continue; continue;
} }
@ -875,10 +873,9 @@ get_secondary_in_species(char **t_ptr, LDBLE coef)
/* /*
* Expand working space for elements if necessary * Expand working space for elements if necessary
*/ */
if (count_elts >= max_elts) if (count_elts >= (int)elt_list.size())
{ {
space((void **) ((void *) &elt_list), count_elts, &max_elts, elt_list.resize((size_t)count_elts + 1);
sizeof(struct elt_list));
} }
continue; continue;
} }

View File

@ -5303,8 +5303,8 @@ write_mb_eqn_x(void)
} }
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
return (OK); return (OK);
@ -5356,10 +5356,9 @@ write_mb_for_species_list(int n)
{ {
if (strcmp(elt_list[i].elt->name, "O(-2)") == 0) if (strcmp(elt_list[i].elt->name, "O(-2)") == 0)
{ {
if (count_elts >= max_elts) if (count_elts >= (int)elt_list.size())
{ {
space((void **) ((void *) &elt_list), count_elts, &max_elts, elt_list.resize((size_t)count_elts + 1);
sizeof(struct elt_list));
} }
elt_list[count_elts].elt = element_h_one; elt_list[count_elts].elt = element_h_one;
elt_list[count_elts].coef = elt_list[i].coef * 2; elt_list[count_elts].coef = elt_list[i].coef * 2;
@ -5368,8 +5367,8 @@ write_mb_for_species_list(int n)
} }
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
s[n]->next_sys_total = s[n]->next_sys_total =
@ -5419,10 +5418,9 @@ write_phase_sys_total(int n)
{ {
if (strcmp(elt_list[i].elt->name, "O(-2)") == 0) if (strcmp(elt_list[i].elt->name, "O(-2)") == 0)
{ {
if (count_elts >= max_elts) if (count_elts >= (int)elt_list.size())
{ {
space((void **) ((void *) &elt_list), count_elts, &max_elts, elt_list.resize((size_t)count_elts + 1);
sizeof(struct elt_list));
} }
elt_list[count_elts].elt = element_h_one; elt_list[count_elts].elt = element_h_one;
elt_list[count_elts].coef = elt_list[i].coef * 2; elt_list[count_elts].coef = elt_list[i].coef * 2;
@ -5431,8 +5429,8 @@ write_phase_sys_total(int n)
} }
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
phases[n]->next_sys_total = phases[n]->next_sys_total =
@ -6545,8 +6543,8 @@ change_hydrogen_in_elt_list(LDBLE charge)
found_o = -1; found_o = -1;
coef_h = 0.0; coef_h = 0.0;
coef_o = 0.0; coef_o = 0.0;
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
for (j = 0; j < count_elts; j++) for (j = 0; j < count_elts; j++)
{ {
@ -6571,8 +6569,8 @@ change_hydrogen_in_elt_list(LDBLE charge)
elt_list[count_elts].elt = s_hplus->primary->elt; elt_list[count_elts].elt = s_hplus->primary->elt;
elt_list[count_elts].coef = coef; elt_list[count_elts].coef = coef;
count_elts++; count_elts++;
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
return (OK); return (OK);
} }

View File

@ -318,8 +318,8 @@ print_diffuse_layer(cxxSurfaceCharge *charge_ptr)
*/ */
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t)count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*

View File

@ -1028,8 +1028,8 @@ add_gas_phase(cxxGasPhase *gas_phase_ptr)
*/ */
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t) count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*

View File

@ -292,7 +292,8 @@ clean_up(void)
/* miscellaneous work space */ /* miscellaneous work space */
elt_list = (struct elt_list *) free_check_null(elt_list); //elt_list = (struct elt_list *) free_check_null(elt_list);
elt_list.clear();
trxn.token = (struct rxn_token_temp *) free_check_null(trxn.token); trxn.token = (struct rxn_token_temp *) free_check_null(trxn.token);
mb_unknowns = (struct unknown_list *) free_check_null(mb_unknowns); mb_unknowns = (struct unknown_list *) free_check_null(mb_unknowns);
line = (char *) free_check_null(line); line = (char *) free_check_null(line);
@ -586,8 +587,8 @@ elt_list_save(void)
*/ */
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*

View File

@ -550,8 +550,8 @@ fill_tally_table(int *n_user, int index_conservative, int n_buffer)
{ {
add_elt_list(exchange_ptr->Get_exchange_comps()[j].Get_totals(), 1.0); add_elt_list(exchange_ptr->Get_exchange_comps()[j].Get_totals(), 1.0);
} }
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t) count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
elt_list_to_tally_table(tally_table[i].total[n_buffer]); elt_list_to_tally_table(tally_table[i].total[n_buffer]);
} }
@ -572,8 +572,8 @@ fill_tally_table(int *n_user, int index_conservative, int n_buffer)
{ {
add_elt_list(surface_ptr->Get_surface_comps()[j].Get_totals(), 1.0); add_elt_list(surface_ptr->Get_surface_comps()[j].Get_totals(), 1.0);
} }
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t) count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
elt_list_to_tally_table(tally_table[i].total[n_buffer]); elt_list_to_tally_table(tally_table[i].total[n_buffer]);
} }
@ -643,8 +643,8 @@ fill_tally_table(int *n_user, int index_conservative, int n_buffer)
add_elt_list(phase_ptr->next_elt, (*gc)[l].Get_moles()); add_elt_list(phase_ptr->next_elt, (*gc)[l].Get_moles());
} }
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t) count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
elt_list_to_tally_table(tally_table[i].total[n_buffer]); elt_list_to_tally_table(tally_table[i].total[n_buffer]);
break; break;
@ -921,8 +921,8 @@ build_tally_table(void)
strcpy(token, phase_ptr->formula); strcpy(token, phase_ptr->formula);
add_elt_list(phase_ptr->next_elt, 1.0); add_elt_list(phase_ptr->next_elt, 1.0);
} }
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t) count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
tally_table[n].formula = elt_list_save(); tally_table[n].formula = elt_list_save();
} }
@ -973,8 +973,8 @@ build_tally_table(void)
paren_count = 0; paren_count = 0;
strcpy(token, phase_ptr->formula); strcpy(token, phase_ptr->formula);
add_elt_list(phase_ptr->next_elt, 1.0); add_elt_list(phase_ptr->next_elt, 1.0);
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
tally_table[n].formula = elt_list_save(); tally_table[n].formula = elt_list_save();
} }
@ -1041,8 +1041,8 @@ build_tally_table(void)
free_check_null(temp_name); free_check_null(temp_name);
} }
} }
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
tally_table[n].formula = elt_list_save(); tally_table[n].formula = elt_list_save();
} }

View File

@ -1287,8 +1287,8 @@ tidy_inverse(void)
*/ */
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t) count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
/* /*
@ -3495,8 +3495,8 @@ tidy_min_exchange(void)
error_msg(error_string, CONTINUE); error_msg(error_string, CONTINUE);
continue; continue;
} }
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
for (jj = 0; jj < count_elts; jj++) for (jj = 0; jj < count_elts; jj++)
{ {
@ -3675,8 +3675,8 @@ update_min_exchange(void)
error_msg(error_string, CONTINUE); error_msg(error_string, CONTINUE);
continue; continue;
} }
qsort(elt_list, (size_t)count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t)sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
for (jj = 0; jj < count_elts; jj++) for (jj = 0; jj < count_elts; jj++)
{ {
@ -3900,8 +3900,8 @@ tidy_min_surface(void)
free_check_null(temp_formula); free_check_null(temp_formula);
} }
} }
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
/* Makes no sense: sorbed species need not be in mineral structure... */ /* Makes no sense: sorbed species need not be in mineral structure... */
/* But elements that can desorb into solution must be in mineral */ /* But elements that can desorb into solution must be in mineral */
@ -4273,8 +4273,8 @@ tidy_kin_surface(void)
/* save kinetics formula */ /* save kinetics formula */
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
elt_list_kinetics = elt_list_save(); elt_list_kinetics = elt_list_save();
@ -4302,8 +4302,8 @@ tidy_kin_surface(void)
} }
if (count_elts > 0) if (count_elts > 0)
{ {
qsort(elt_list, (size_t) count_elts, qsort(elt_list.data(), (size_t)count_elts,
(size_t) sizeof(struct elt_list), elt_list_compare); sizeof(struct elt_list), elt_list_compare);
elt_list_combine(); elt_list_combine();
} }
for (int j = 0; j < count_elts; j++) for (int j = 0; j < count_elts; j++)

View File

@ -19,10 +19,9 @@ add_elt_list(struct elt_list *elt_list_ptr, LDBLE coef)
for (elt_list_ptr1 = elt_list_ptr; elt_list_ptr1->elt != NULL; for (elt_list_ptr1 = elt_list_ptr; elt_list_ptr1->elt != NULL;
elt_list_ptr1++) elt_list_ptr1++)
{ {
if (count_elts >= max_elts) if (count_elts >= (int)elt_list.size())
{ {
space((void **) ((void *) &elt_list), count_elts, &max_elts, elt_list.resize((size_t)count_elts + 1);
sizeof(struct elt_list));
} }
elt_list[count_elts].elt = elt_list_ptr1->elt; elt_list[count_elts].elt = elt_list_ptr1->elt;
elt_list[count_elts].coef = elt_list_ptr1->coef * coef; elt_list[count_elts].coef = elt_list_ptr1->coef * coef;
@ -65,10 +64,9 @@ add_elt_list_multi_surf(struct elt_list *elt_list_ptr, LDBLE coef, struct elemen
for (elt_list_ptr1 = elt_list_ptr; elt_list_ptr1->elt != NULL; for (elt_list_ptr1 = elt_list_ptr; elt_list_ptr1->elt != NULL;
elt_list_ptr1++) elt_list_ptr1++)
{ {
if (count_elts >= max_elts) if (count_elts >= (int)elt_list.size())
{ {
space((void **) ((void *) &elt_list), count_elts, &max_elts, elt_list.resize((size_t)count_elts + 1);
sizeof(struct elt_list));
} }
if (elt_list_ptr1->elt == surf_elt_ptr) if (elt_list_ptr1->elt == surf_elt_ptr)
{ {
@ -93,10 +91,9 @@ add_elt_list_multi_surf(struct elt_list *elt_list_ptr, LDBLE coef, struct elemen
for (elt_list_ptr1 = elt_list_ptr; elt_list_ptr1->elt != NULL; for (elt_list_ptr1 = elt_list_ptr; elt_list_ptr1->elt != NULL;
elt_list_ptr1++) elt_list_ptr1++)
{ {
if (count_elts >= max_elts) if (count_elts >= (int)elt_list.size())
{ {
space((void **) ((void *) &elt_list), count_elts, &max_elts, elt_list.resize((size_t)count_elts + 1);
sizeof(struct elt_list));
} }
if (elt_list_ptr1->elt == surf_elt_ptr) if (elt_list_ptr1->elt == surf_elt_ptr)
{ {
@ -115,10 +112,9 @@ add_elt_list(const cxxNameDouble & nd, LDBLE coef)
cxxNameDouble::const_iterator cit = nd.begin(); cxxNameDouble::const_iterator cit = nd.begin();
for ( ; cit != nd.end(); cit++) for ( ; cit != nd.end(); cit++)
{ {
if (count_elts >= max_elts) if (count_elts >= (int)elt_list.size())
{ {
space((void **) ((void *) &elt_list), count_elts, &max_elts, elt_list.resize((size_t)count_elts + 1);
sizeof(struct elt_list));
} }
elt_list[count_elts].elt = element_store(cit->first.c_str()); elt_list[count_elts].elt = element_store(cit->first.c_str());
elt_list[count_elts].coef = cit->second * coef; elt_list[count_elts].coef = cit->second * coef;