--- rpl/src/instructions_c6.c 2012/03/01 10:14:05 1.35 +++ rpl/src/instructions_c6.c 2012/04/03 13:38:27 1.36 @@ -836,66 +836,66 @@ instruction_clrfuse(struct_processus *s_ ================================================================================ */ -void -instruction_crtab(struct_processus *s_etat_processus) +static inline struct_objet * +creation_table(struct_liste_chainee *dimensions) { - struct_liste_chainee *l_element_courant; + struct_objet *s_table; - struct_objet *s_objet_argument; - struct_objet *s_objet_resultat; + unsigned long i; - struct_objet * - creation_table(struct_liste_chainee *dimensions) + if ((s_table = allocation(s_etat_processus, TBL)) == NULL) { - struct_objet *s_table; - - unsigned long i; - - if ((s_table = allocation(s_etat_processus, TBL)) == NULL) - { - return(NULL); - } + return(NULL); + } - (*((struct_tableau *) (*s_table).objet)).nombre_elements = - (unsigned long) (*((integer8 *) (*(*dimensions).donnee).objet)); + (*((struct_tableau *) (*s_table).objet)).nombre_elements = + (unsigned long) (*((integer8 *) (*(*dimensions).donnee).objet)); - dimensions = (*dimensions).suivant; + dimensions = (*dimensions).suivant; - if (((*((struct_tableau *) (*s_table).objet)).elements = - malloc((*((struct_tableau *) (*s_table).objet)) - .nombre_elements * sizeof(struct_objet *))) == NULL) - { - return(NULL); - } + if (((*((struct_tableau *) (*s_table).objet)).elements = + malloc((*((struct_tableau *) (*s_table).objet)) + .nombre_elements * sizeof(struct_objet *))) == NULL) + { + return(NULL); + } - if (dimensions == NULL) + if (dimensions == NULL) + { + for(i = 0; i < (*((struct_tableau *) (*s_table).objet)) + .nombre_elements; i++) { - for(i = 0; i < (*((struct_tableau *) (*s_table).objet)) - .nombre_elements; i++) + if (((*((struct_tableau *) (*s_table).objet)).elements[i] = + allocation(s_etat_processus, LST)) == NULL) { - if (((*((struct_tableau *) (*s_table).objet)).elements[i] = - allocation(s_etat_processus, LST)) == NULL) - { - return(NULL); - } + return(NULL); } } - else + } + else + { + for(i = 0; i < (*((struct_tableau *) (*s_table).objet)) + .nombre_elements; i++) { - for(i = 0; i < (*((struct_tableau *) (*s_table).objet)) - .nombre_elements; i++) + if (((*((struct_tableau *) (*s_table).objet)).elements[i] = + creation_table(dimensions)) == NULL) { - if (((*((struct_tableau *) (*s_table).objet)).elements[i] = - creation_table(dimensions)) == NULL) - { - return(NULL); - } + return(NULL); } } - - return(s_table); } + return(s_table); +} + +void +instruction_crtab(struct_processus *s_etat_processus) +{ + struct_liste_chainee *l_element_courant; + + struct_objet *s_objet_argument; + struct_objet *s_objet_resultat; + (*s_etat_processus).erreur_execution = d_ex; if ((*s_etat_processus).affichage_arguments == 'Y')