/*========================================================= * set_array_obj -- Set element (object) in array * grow if necessary *=======================================================*/ void set_array_obj (ARRAY array, INT i, OBJECT obj) { ASSERT(i>=0); ASSERT(i< 0x1000000); /* 16,777,216 */ if (i>=AMax(array)) { enlarge_array(array, i); } if (i>=ASize(array)) { int j; for (j=ASize(array); j<i; ++j) AData(array)[j] = 0; ASize(array)=i+1; } AData(array)[i] = obj; }
int find_conv_to_ind(char *lab) { int i, label; char *tmp; /* no string == empty label */ if (lab == NULL) return LABEL_EMPTY; /* empty string == empty label */ if (lab[0] == '\0') return LABEL_EMPTY; /* check if the label is already in the table */ label = -1; for (i = 0; i < num_labs; i++) if (strcmp(labels[i], lab) == 0) { label = i; break; } if (label < 0) { /* label not found in array. Add it. */ label = num_labs; if (label >= lab_array_size) if (enlarge_array()) return -1; if ((tmp = ostrdup(lab)) == NULL) return -1; labels[label] = tmp; num_labs++; } return(label + 1); }