Browse Source

inpcom.c, inp_sort_params(), rename `param_skip', `ptr_array', `ptr_array_ordered'

pre-master-46
rlar 12 years ago
parent
commit
70b74028d1
  1. 26
      src/frontend/inpcom.c

26
src/frontend/inpcom.c

@ -3505,12 +3505,12 @@ get_param_str(char *line)
struct dependency
{
int level;
int param_skip;
int skip;
char *param_name;
char *param_str;
char *depends_on[100];
struct line *ptr_array;
struct line *ptr_array_ordered;
struct line *card;
struct line *card_ordered;
};
@ -3696,25 +3696,25 @@ inp_sort_params(struct line *start_card, struct line *end_card, struct line *car
deps[num_params].level = -1;
deps[num_params].param_name = get_param_name(c->li_line); /* strdup in fcn */
deps[num_params].param_str = strdup(get_param_str(c->li_line));
deps[num_params].ptr_array = c;
deps[num_params].card = c;
num_params ++;
}
// look for duplicately defined parameters and mark earlier one to skip
// param list is ordered as defined in netlist
for (i = 0; i < num_params; i++)
deps[i].param_skip = 0;
deps[i].skip = 0;
for (i = 0; i < num_params; i++)
for (j = num_params-1; j >= 0 && !deps[i].param_skip; j--)
for (j = num_params - 1; j >= 0 && !deps[i].skip; j--)
if (i != j && i < j && strcmp(deps[i].param_name, deps[j].param_name) == 0) {
// skip earlier one in list
deps[i].param_skip = 1;
deps[i].skip = 1;
skipped++;
}
for (i = 0; i < num_params; i++) {
if (deps[i].param_skip == 1)
if (deps[i].skip == 1)
continue;
param_name = deps[i].param_name;
@ -3837,8 +3837,8 @@ inp_sort_params(struct line *start_card, struct line *end_card, struct line *car
for (i = 0; i <= max_level; i++)
for (j = num_params-1; j >= 0; j--)
if (deps[j].level == i)
if (deps[j].param_skip == 0)
deps[ind++].ptr_array_ordered = deps[j].ptr_array;
if (deps[j].skip == 0)
deps[ind++].card_ordered = deps[j].card;
num_params -= skipped;
if (ind != num_params) {
@ -3848,10 +3848,10 @@ inp_sort_params(struct line *start_card, struct line *end_card, struct line *car
/* fix next ptrs */
c = card_bf_start->li_next;
card_bf_start->li_next = deps[0].ptr_array_ordered;
deps[num_params-1].ptr_array_ordered->li_next = c;
card_bf_start->li_next = deps[0].card_ordered;
deps[num_params-1].card_ordered->li_next = c;
for (i = 0; i < num_params-1; i++)
deps[i].ptr_array_ordered->li_next = deps[i+1].ptr_array_ordered;
deps[i].card_ordered->li_next = deps[i+1].card_ordered;
// clean up memory
for (i = 0; i < arr_size; i++) {

Loading…
Cancel
Save