--- rpl/src/analyse.c 2010/04/29 07:30:57 1.13 +++ rpl/src/analyse.c 2010/05/05 21:19:24 1.14 @@ -46,6 +46,10 @@ creation_instruction(struct_processus *s unsigned char *ptr; + BUG(strlen(instruction) >= d_longueur_maximale_instruction, + printf("%s -> %d >= %d\n", instruction, (int) strlen(instruction), + d_longueur_maximale_instruction)); + if ((*s_etat_processus).arbre_instructions == NULL) { if (((*s_etat_processus).arbre_instructions = @@ -941,7 +945,8 @@ analyse(struct_processus *s_etat_process unsigned char *position; unsigned char *bibliotheque_candidate; - unsigned char *instruction_majuscule; + unsigned char instruction_majuscule + [d_longueur_maximale_instruction]; unsigned char registre_instruction_valide; void (*instruction)(); @@ -994,13 +999,8 @@ analyse(struct_processus *s_etat_process if (fonction == NULL) { - if ((instruction_majuscule = conversion_majuscule( - (*s_etat_processus).instruction_courante)) == NULL) - { - (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; - return; - } - + conversion_majuscule_limitee((*s_etat_processus).instruction_courante, + instruction_majuscule, d_longueur_maximale_instruction); instruction = analyse_instruction(s_etat_processus, instruction_majuscule); @@ -1029,8 +1029,6 @@ analyse(struct_processus *s_etat_process profilage(s_etat_processus, NULL); } } - - free(instruction_majuscule); } else {