From: Ricardo Markiewicz Date: Fri, 16 Apr 2004 10:39:57 +0000 (+0000) Subject: * Agregue algunos memset para asegurar que la GUI se vea bonita (puede que alguno... X-Git-Tag: svn_import_r684~452 X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/commitdiff_plain/4905645b9485987df5d6a5a898c5c6d50ebeab31?ds=sidebyside * Agregue algunos memset para asegurar que la GUI se vea bonita (puede que alguno este de mas, pero me queria asegurar) --- diff --git a/emufs/tipo1.c b/emufs/tipo1.c index 42899b3..f1cc3c9 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -229,8 +229,7 @@ void* emufs_tipo1_leer_bloque(EMUFS* efs, EMUFS_BLOCK_ID block_id, int *err) return block; } -EMUFS_REG_ID emufs_tipo1_grabar_registro(EMUFS* efs, void* reg, - EMUFS_REG_SIZE reg_size, int* err) +EMUFS_REG_ID emufs_tipo1_grabar_registro(EMUFS* efs, void* reg, EMUFS_REG_SIZE reg_size, int* err) { EMUFS_TIPO1_REG_HEADER reg_header; /* cabecera del registro a guardar */ EMUFS_FREE fs; /* espacio libre en el bloque */ @@ -249,8 +248,7 @@ EMUFS_REG_ID emufs_tipo1_grabar_registro(EMUFS* efs, void* reg, /* si no hay bloques con suficiente espacio creo un bloque nuevo */ if (block_id == EMUFS_NOT_FOUND) { /* tamaño máximo ultilizable para datos en un bloque */ - EMUFS_BLOCK_SIZE block_space - = efs->tam_bloque - sizeof(EMUFS_TIPO1_REG_HEADER); + EMUFS_BLOCK_SIZE block_space = efs->tam_bloque - sizeof(EMUFS_TIPO1_REG_HEADER); /* identificador del bloque que se guarda */ EMUFS_BLOCK_ID curr_block_id = EMUFS_NOT_FOUND; /* tamaño de la porción de registro que se guarda */ @@ -273,11 +271,9 @@ EMUFS_REG_ID emufs_tipo1_grabar_registro(EMUFS* efs, void* reg, reg_header.size -= chunk_size; /* Resto lo que ya guardé */ chunk_size = MIN(reg_header.size, block_space); /* graba porción del registro en bloque */ - emufs_tipo1_escribir_reg_chunk_en_memoria(block, reg_header, - chunk_ptr, chunk_size); + emufs_tipo1_escribir_reg_chunk_en_memoria(block, reg_header, chunk_ptr, chunk_size); /* graba el bloque en el archivo */ - curr_block_id = emufs_tipo1_grabar_bloque(efs, block, - EMUFS_NOT_FOUND, err); + curr_block_id = emufs_tipo1_grabar_bloque(efs, block, EMUFS_NOT_FOUND, err); if (*err) { PERR("error al grabar bloque"); free(block); diff --git a/emufs/tipo2.c b/emufs/tipo2.c index d424bf0..2bdb6e9 100644 --- a/emufs/tipo2.c +++ b/emufs/tipo2.c @@ -115,7 +115,7 @@ EMUFS_REG_ID emufs_tipo2_grabar_registro(EMUFS *efs, void *ptr, EMUFS_REG_SIZE r if (wrt_offset == -1) { /* Obtengo un ID libre para el registro y luego grabo a disco */ - id_reg = emufs_idx_get_new_id(efs, err); + id_reg = emufs_idx_get_new_id(efs, err); fseek(f_data, 0, SEEK_END); reg_offset = ftell(f_data); @@ -131,11 +131,11 @@ EMUFS_REG_ID emufs_tipo2_grabar_registro(EMUFS *efs, void *ptr, EMUFS_REG_SIZE r } else { /* Obtengo un ID libre para el registro y luego grabo en disco */ - id_reg = emufs_idx_get_new_id(efs, err); + id_reg = emufs_idx_get_new_id(efs, err); reg_offset = wrt_offset; fseek(f_data,reg_offset,0); - /* Escribo [RegId]|[RegSize]|[RegData] */ + /* Escribo [RegId]|[RegSize]|[RegData] */ fwrite(&id_reg,sizeof(EMUFS_REG_ID),1,f_data); fwrite(®_size,sizeof(EMUFS_REG_SIZE),1,f_data); fwrite(ptr,reg_size,1,f_data); @@ -206,23 +206,24 @@ int emufs_tipo2_get_regsize(EMUFS *efs, EMUFS_OFFSET reg_pos, EMUFS_REG_SIZE *re /* Pisa con basura lo que es hasta el momento un reg en el disco para indicar su borrado (Debug Purposes Only) */ int emufs_tipo2_dummyfill(EMUFS *efs, EMUFS_OFFSET reg_pos, EMUFS_REG_SIZE amount) { - FILE *f_data; + FILE *f_data; char name_f[255]; - char *dummyfill; + char *dummyfill; char *ptr_cur; unsigned long fill_size,byte_count; - /* Armamos el filename del archivo de datos */ - strcpy(name_f,efs->nombre); + /* Armamos el filename del archivo de datos */ + strcpy(name_f,efs->nombre); strcat(name_f,".dat"); - if ((f_data = fopen(name_f,"rb+")) == NULL) return -1; /* ERROR */ + if ((f_data = fopen(name_f,"rb+")) == NULL) return -1; /* ERROR */ /* Preparo el garbage y se lo tiro encima */ fill_size = amount+sizeof(EMUFS_REG_ID)+sizeof(EMUFS_REG_SIZE); dummyfill = (char*)malloc(fill_size); + memset(dummyfill, 0, fill_size); ptr_cur = dummyfill; - for (byte_count = 0; byte_count < fill_size; ++byte_count) memcpy(ptr_cur+byte_count,"#",1); + for (byte_count = 0; byte_count < fill_size; ++byte_count) memcpy(ptr_cur+byte_count,0,1); fseek(f_data,reg_pos,SEEK_SET); fwrite(dummyfill,fill_size,1,f_data); fclose(f_data); diff --git a/emufs_gui/articulos.c b/emufs_gui/articulos.c index defdf7e..91bb4a7 100644 --- a/emufs_gui/articulos.c +++ b/emufs_gui/articulos.c @@ -463,6 +463,7 @@ void *procesar_guardar_articulo(t_Articulo *src, EMUFS_REG_SIZE *size, t_LstArti (*size) = i[0]+i[1]+i[2]+i[3]+i[4]+i[5]; tmp = (char *)malloc((*size)); if (tmp == NULL) return NULL; + memset(tmp, 0, *size); memcpy(tmp, &src->numero, i[0]); memcpy(tmp+i[0], src->desc, i[1]); memcpy(tmp+i[0]+i[1], src->presentacion, i[2]); @@ -475,6 +476,7 @@ void *procesar_guardar_articulo(t_Articulo *src, EMUFS_REG_SIZE *size, t_LstArti * registro se vea bien */ tmp = (char *)malloc(sizeof(t_Articulo)); + memset(tmp, '*', sizeof(t_Articulo)); memcpy(tmp, from, sizeof(t_Articulo)); (*size) = sizeof(t_Articulo); } diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index a7fbb61..9e791cf 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -115,10 +115,10 @@ char *leer_nota(xmlNode *node) } if (tmp) { - salida = (char *)malloc(sizeof(char)*400); /*(strlen(XML_GET_CONTENT(tmp->children))+1));*/ + salida = (char *)malloc(sizeof(char)*(strlen(XML_GET_CONTENT(tmp->children))+1)); strcpy(salida, XML_GET_CONTENT(tmp->children)); } else { - salida = (char *)malloc(sizeof(char)*400); + salida = (char *)malloc(sizeof(char)); salida[0] = '\0'; } return salida; @@ -170,7 +170,7 @@ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque) cant_items = 0; } tmp->fp = emufs_crear("facturas", tipo-1, tam_bloque, sizeof(t_Factura)-sizeof(char *)-sizeof(t_Item*)+cant_items*sizeof(t_Item)); - tmp->fp_texto = emufs_crear("notas", 1, 420, 400); + tmp->fp_texto = emufs_crear("notas", 1, 100, 0); for (node=inicio ; node ; node = node->next) { if (node->type == XML_ELEMENT_NODE) { if (strcmp(node->name, "FACTURA") == 0) { @@ -195,7 +195,7 @@ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque) error = 0; id = tmp->fp->grabar_registro(tmp->fp, save, size, &error); error = 0; - id_texto = tmp->fp_texto->grabar_registro(tmp->fp_texto, fact.nota, 400, &error); + id_texto = tmp->fp_texto->grabar_registro(tmp->fp_texto, fact.nota, strlen(fact.nota)+1, &error); agregar_nodo_factura(tmp, crear_nodo_factura(id, id_texto, fact.numero)); if (fact.items) free(fact.items); if (fact.nota) free(fact.nota); @@ -543,6 +543,7 @@ void *procesar_guardar_factura(t_Factura *f, t_LstFacturas *lst, EMUFS_REG_SIZE (*size) = i[0]+i[1]+i[2]+i[3]+i[4]+i[5]+i[6]+i[7]+i[8]+i[9]+i[10]; tmp = (char *)malloc(*size); if (tmp == NULL) return NULL; + memset(tmp, 0, *size); /* Ahora copio la info */ memcpy(tmp, &f->numero, i[0]); memcpy(tmp, &f->procdoi, i[1]);