]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* Se agregan fclose faltantes .
authorRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 19 Apr 2004 06:55:05 +0000 (06:55 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 19 Apr 2004 06:55:05 +0000 (06:55 +0000)
 Lo que hacia es que al tener mmmuuucchhhooss datos la aplicacion moria porque
 se le llenaba la tabla de archivos abiertos, y como luca no vino a
 esta teorica no se le ocurrio :-P

emufs/fsc.c
emufs_gui/articulos.c
emufs_gui/emufs_view.c

index 73f043d6a9b258daac482c0370e58ebdd87e33f8..344adb645c36eab8fd6d91f5e59d51c2ee206152 100644 (file)
@@ -58,6 +58,7 @@ int emufs_fsc_agregar(EMUFS *emu, EMUFS_BLOCK_ID marker, EMUFS_FREE freespace)
        strcat(name_f_fsc, EMUFS_FSC_EXT);
        
        /* Lo guardo en el archivo al final "a+"*/
        strcat(name_f_fsc, EMUFS_FSC_EXT);
        
        /* Lo guardo en el archivo al final "a+"*/
+       PERR(name_f_fsc);
        if ( (f_fsc = fopen(name_f_fsc,"r+"))==NULL ) return -1;
        /* lo busco.. si esta lo modifico y si no lo agrego */
        fseek(f_fsc,0,SEEK_SET);
        if ( (f_fsc = fopen(name_f_fsc,"r+"))==NULL ) return -1;
        /* lo busco.. si esta lo modifico y si no lo agrego */
        fseek(f_fsc,0,SEEK_SET);
@@ -387,6 +388,7 @@ EMUFS_BLOCK_ID emufs_fsc_buscar_n_lugares(EMUFS* efs, size_t n,
                        if (feof(f_fsc)) break;
                        PERR("No se puede leer el archivo");
                        *err = EMUFS_ERROR_FILE_READ;
                        if (feof(f_fsc)) break;
                        PERR("No se puede leer el archivo");
                        *err = EMUFS_ERROR_FILE_READ;
+                       fclose(f_fsc);
                        return EMUFS_NOT_FOUND;
                }
                if (reg.freespace >= size) {
                        return EMUFS_NOT_FOUND;
                }
                if (reg.freespace >= size) {
@@ -398,6 +400,7 @@ EMUFS_BLOCK_ID emufs_fsc_buscar_n_lugares(EMUFS* efs, size_t n,
                                        if (feof(f_fsc)) break;
                                        PERR("No se puede leer el archivo");
                                        *err = EMUFS_ERROR_FILE_READ;
                                        if (feof(f_fsc)) break;
                                        PERR("No se puede leer el archivo");
                                        *err = EMUFS_ERROR_FILE_READ;
+                                       fclose(f_fsc);
                                        return EMUFS_NOT_FOUND;
                                }
                                /* no hay otro lugar consecutivo */
                                        return EMUFS_NOT_FOUND;
                                }
                                /* no hay otro lugar consecutivo */
index b7d8ee09f453946dc766ab7fa5dd3f67242a210d..f768dc204e0798ae532578be6bc64373b4f89d4b 100644 (file)
@@ -108,12 +108,20 @@ t_LstArticulos *art_cargar(const char *filename, int tipo, int tam_bloque)
                fprintf(stderr, "Articulos : Tipo=%d Bloque=%d\n", tipo-1, tam_bloque);
 #endif
                tmp->fp = emufs_crear("articulos", tipo-1, tam_bloque, sizeof(t_Articulo));
                fprintf(stderr, "Articulos : Tipo=%d Bloque=%d\n", tipo-1, tam_bloque);
 #endif
                tmp->fp = emufs_crear("articulos", tipo-1, tam_bloque, sizeof(t_Articulo));
+               if (!tmp->fp) {
+                       PERR("NO SE PUDO CREAR ARCHIVO ARTICULOS");
+                       free(tmp);
+                       xmlFreeDoc(document);
+                       xmlCleanupParser();
+                       lst_articulos = NULL;
+                       return NULL;
+               }
                for (node=inicio ; node ; node = node->next) {
                        if (node->type == XML_ELEMENT_NODE) {
                                if (strcmp(node->name, "ARTICULO") == 0) {
                                        t_Articulo art;
                                        void *save;
                for (node=inicio ; node ; node = node->next) {
                        if (node->type == XML_ELEMENT_NODE) {
                                if (strcmp(node->name, "ARTICULO") == 0) {
                                        t_Articulo art;
                                        void *save;
-                                       memset(&art, '*', sizeof(t_Articulo));
+                                       memset(&art, 0, sizeof(t_Articulo));
                                        prop = xml_get_prop(node, "NroArtĂ­culo");
                                        art.numero = atoi(prop);
                                        xmlFree(prop);
                                        prop = xml_get_prop(node, "NroArtĂ­culo");
                                        art.numero = atoi(prop);
                                        xmlFree(prop);
index 8750c48a36998fad19500fe364bbbf623ba1080f..06826da3a23eb6d18365de9cb169c24ed6c3ebd1 100644 (file)
@@ -541,6 +541,7 @@ void menu_mantenimiento()
                                dlg = msg_box(stdscr, COLS, LINES, "Cambiando el formato de archivo .... Aguarde");
                                fact_reformatear(nuevo_tipo, nuevo_tam_bloque, nuevo_tam_registro, nuevo_tipo1, nuevo_tam_bloque1, nuevo_tam_registro1);
                                msg_box_free(stdscr, dlg);
                                dlg = msg_box(stdscr, COLS, LINES, "Cambiando el formato de archivo .... Aguarde");
                                fact_reformatear(nuevo_tipo, nuevo_tam_bloque, nuevo_tam_registro, nuevo_tipo1, nuevo_tam_bloque1, nuevo_tam_registro1);
                                msg_box_free(stdscr, dlg);
+                       break;
                        case 5:
                                s = preguntar_file();
                                if (s) {
                        case 5:
                                s = preguntar_file();
                                if (s) {