]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* BUGFIX : EN idx_get faltaba un sizeof(EMUFS_REG_ID) (aunque el valgrind se sigue...
authorRicardo Markiewicz <gazer.arg@gmail.com>
Fri, 16 Apr 2004 19:54:13 +0000 (19:54 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Fri, 16 Apr 2004 19:54:13 +0000 (19:54 +0000)
 * tipo_leer_raw retocada.
 * Algunas cosa en GUI que no recuerdo

emufs/idx.c
emufs/tipo3.c
emufs_gui/articulos.c
emufs_gui/facturas.c
emufs_gui/gui.c

index 35ebcf452dad9ac71fb55f807221cb60fa4ab6b5..3362331adfafd74782a4099f6441669296ac27e1 100644 (file)
@@ -216,7 +216,7 @@ EMUFS_REG_ID *emufs_idx_get(EMUFS *emu, EMUFS_REG_ID *cant)
                if (fread(&reg, 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);
index 8f56f842f98d2e9a47128aebab1a0fd610bc4cbb..c287cb4295ddc3c839c82beed50b45492ad202c0 100644 (file)
@@ -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; i<cant_bloques; i++) {
+                       err = 0;
                        if ((tmp = emufs_tipo3_leer_bloque(emu, block+i, &err)) == NULL) {
                                /* Oops! ... un bloque no existe, todo mal! */
                                free(bloque);
index 91bb4a757b4466887f51b22c158c262e748897e0..b9605c2f7bb6712e3d201d116e815c7128020cec 100644 (file)
@@ -83,6 +83,8 @@ t_LstArticulos *art_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_articulos = NULL;
                        return NULL;
                }
 
@@ -151,9 +153,14 @@ int art_liberar(t_LstArticulos *l)
 {
        if (l == NULL) l = lst_articulos;
        if (l == NULL) return 1;
+       t_Reg_Articulo *del;
 
        emufs_destruir(l->fp);
-       /* TODO : Liberar lista */
+       while (l->primero) {
+               del = l->primero;
+               l->primero = l->primero->sig;
+               free(del);
+       }
        free(l);
 
        lst_articulos = NULL;
index 3d44564550e198dd9b396b7df6b6e935ddb0637e..f940890f9ffb842eb0cc62a7c8ea3361a22a7d79 100644 (file)
@@ -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;
                }
 
index 2262cc3f38e2227b6e211f7b0ebb16e177ff74d1..3c7cdd9c71c0d14e803fd74af877d8ea47fc9ef6 100644 (file)
@@ -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);