From: Ricardo Markiewicz Date: Fri, 16 Apr 2004 19:54:13 +0000 (+0000) Subject: * BUGFIX : EN idx_get faltaba un sizeof(EMUFS_REG_ID) (aunque el valgrind se sigue... X-Git-Tag: svn_import_r684~446 X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/commitdiff_plain/5720b3f8df66478279f271065447e93848437fb7 * BUGFIX : EN idx_get faltaba un sizeof(EMUFS_REG_ID) (aunque el valgrind se sigue quejando) * tipo_leer_raw retocada. * Algunas cosa en GUI que no recuerdo --- diff --git a/emufs/idx.c b/emufs/idx.c index 35ebcf4..3362331 100644 --- a/emufs/idx.c +++ b/emufs/idx.c @@ -216,7 +216,7 @@ EMUFS_REG_ID *emufs_idx_get(EMUFS *emu, EMUFS_REG_ID *cant) if (fread(®, sizeof(EMUFS_IDX), 1, f_idx) != 1) continue; count++; /* TODO : Verificar errores :-D */ - tmp = realloc(tmp, count); + tmp = realloc(tmp, count*sizeof(EMUFS_REG_ID)); tmp[count-1] = reg.id_reg; } fclose(f_idx); diff --git a/emufs/tipo3.c b/emufs/tipo3.c index 8f56f84..c287cb4 100644 --- a/emufs/tipo3.c +++ b/emufs/tipo3.c @@ -400,7 +400,7 @@ void* emufs_tipo3_leer_registro_raw(EMUFS *emu, EMUFS_REG_ID ID, EMUFS_REG_SIZE if (emu->tam_reg < emu->tam_bloque) { /* Aca estoy en el caso de que 1 registro entra en 1 solo bloque */ block = emufs_idx_buscar_registro(emu,ID); - if ( block == EMUFS_NOT_FOUND ){ + if ( block == EMUFS_NOT_FOUND ) { return NULL; } if ((bloque = emufs_tipo3_leer_bloque(emu, block, &err)) == NULL) { @@ -431,13 +431,14 @@ void* emufs_tipo3_leer_registro_raw(EMUFS *emu, EMUFS_REG_ID ID, EMUFS_REG_SIZE if ( block == EMUFS_NOT_FOUND ){ return NULL; } - cant_bloques = emu->tam_reg / emu->tam_bloque + 1; + cant_bloques = emu->tam_reg / (emu->tam_bloque - sizeof(EMUFS_REG_ID))+1; *size = emu->tam_bloque*cant_bloques + cant_bloques*2 - sizeof(EMUFS_REG_ID)*(cant_bloques-1); bloque = (char *)malloc(*size); cur = bloque; *pos = 0; /* El bloque 0 va completo */ + err = 0; if ((tmp = emufs_tipo3_leer_bloque(emu, block, &err)) == NULL) { /* Oops! ... un bloque no existe, todo mal! */ free(bloque); @@ -451,6 +452,7 @@ void* emufs_tipo3_leer_registro_raw(EMUFS *emu, EMUFS_REG_ID ID, EMUFS_REG_SIZE /* En resto de los bloques no pongo el ID porque ya esta en el primero */ for(i=1; ifp); - /* TODO : Liberar lista */ + while (l->primero) { + del = l->primero; + l->primero = l->primero->sig; + free(del); + } free(l); lst_articulos = NULL; diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index 3d44564..f940890 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -144,6 +144,8 @@ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque) if (filename != NULL) { document = xmlReadFile(filename, "ISO-8859-1",0); if (document == NULL) { + free(tmp); + lst_facturas = NULL; return NULL; } diff --git a/emufs_gui/gui.c b/emufs_gui/gui.c index 2262cc3..3c7cdd9 100644 --- a/emufs_gui/gui.c +++ b/emufs_gui/gui.c @@ -395,7 +395,7 @@ void menu_estadisticas() mvwhline(menu_win, 2, 1, ACS_HLINE, COLS-3); mvwaddch(menu_win, 2, COLS-3, ACS_RTEE); wattron(menu_win, COLOR_PAIR(COLOR_RED)); - mvwaddstr(menu_win, 1, 1, "Menu Articulos"); + mvwaddstr(menu_win, 1, 1, "Menu Estadisticas"); wattroff(menu_win, COLOR_PAIR(COLOR_RED)); post_menu(menu); wrefresh(menu_win); @@ -421,7 +421,6 @@ void menu_estadisticas() } else { if (strcmp(item_name(cur), opciones[0]) == 0) { unpost_menu(menu); - fprintf(stderr, "Muestro\n"); ver_estadisticas( art_get_lst()->fp ); box(menu_win, 0, 0); post_menu(menu); @@ -779,9 +778,7 @@ void ver_estadisticas(EMUFS *fp) char s[40]; int i=3; - fprintf(stderr, "....! (%p)\n", fp->leer_estadisticas); stats = fp->leer_estadisticas(fp); - fprintf(stderr, "Vamos que pasamos!\n"); win = newwin(LINES-4, COLS-2, 2, 1);