From ee98a67093a8f8d008ae7781590c993d341ce642 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 19 Apr 2004 06:55:05 +0000 Subject: [PATCH] * Se agregan fclose faltantes . 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 | 3 +++ emufs_gui/articulos.c | 10 +++++++++- emufs_gui/emufs_view.c | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/emufs/fsc.c b/emufs/fsc.c index 73f043d..344adb6 100644 --- a/emufs/fsc.c +++ b/emufs/fsc.c @@ -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+"*/ + 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); @@ -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; + fclose(f_fsc); 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; + fclose(f_fsc); return EMUFS_NOT_FOUND; } /* no hay otro lugar consecutivo */ diff --git a/emufs_gui/articulos.c b/emufs_gui/articulos.c index b7d8ee0..f768dc2 100644 --- a/emufs_gui/articulos.c +++ b/emufs_gui/articulos.c @@ -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)); + 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; - memset(&art, '*', sizeof(t_Articulo)); + memset(&art, 0, sizeof(t_Articulo)); prop = xml_get_prop(node, "NroArtículo"); art.numero = atoi(prop); xmlFree(prop); diff --git a/emufs_gui/emufs_view.c b/emufs_gui/emufs_view.c index 8750c48..06826da 100644 --- a/emufs_gui/emufs_view.c +++ b/emufs_gui/emufs_view.c @@ -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); + break; case 5: s = preguntar_file(); if (s) { -- 2.43.0