From 694bb7f476cb7fa14c04b60e631e6ed357c0b119 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicol=C3=A1s=20Dimov?= Date: Sat, 29 May 2004 07:05:39 +0000 Subject: [PATCH] subo para que me den una mano con el valgrind, el error esta rondando la linea 1025 del tipo1.c --- emufs/tipo1.c | 6 ++++-- emufs/tipo1_bplus_main.c | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/emufs/tipo1.c b/emufs/tipo1.c index d93efd4..7de346f 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -978,6 +978,7 @@ int emufs_tipo1_eliminar_ordenado(EMUFS *emu, CLAVE clave, int *err) query.clave = clave; /*mando a buscar el bloque donde esta la clave que quiero eliminar*/ result = emufs_b_plus_get_bloque(emu->indices, &query, 0); + printf("el bloque es: %d\n", query.num_bloque); if ( result == 1 ){ PERR("SE PRODUJO UN ERROR EN EL ARBOL"); return -1; @@ -1006,9 +1007,11 @@ int emufs_tipo1_eliminar_ordenado(EMUFS *emu, CLAVE clave, int *err) while ( iter < emu->tam_bloque ){ memcpy(&tam_reg, aux+sizeof(EMUFS_REG_ID), sizeof(EMUFS_REG_SIZE)); clave_ajena = emufs_indice_generar_clave(emu->indices, aux+sizeof(EMUFS_TIPO1_REG_HEADER)); + printf("lei clave: %d\n", clave_ajena); if ( emufs_indice_es_igual(emu->indices, clave, clave_ajena) ){ /*tenngo que borrar este registro*/ /*limpio el espacio que ocupaba*/ + PERR("LA ENCONTRE"); memset(aux, 0, tam_reg+sizeof(EMUFS_TIPO1_REG_HEADER)); /*hay que reacomodar todo*/ /*me posiciono en el reg siguiente*/ @@ -1018,9 +1021,8 @@ int emufs_tipo1_eliminar_ordenado(EMUFS *emu, CLAVE clave, int *err) iter += tam_reg+sizeof(EMUFS_TIPO1_REG_HEADER); aux += iter; } - /*reacomodo el bloque */ - memcpy(bloque+iter-tam_reg-sizeof(EMUFS_TIPO1_REG_HEADER), aux+iter, emu->tam_bloque-iter-sizeof(int)); + memcpy(aux, aux+tam_reg+sizeof(EMUFS_TIPO1_REG_HEADER), emu->tam_bloque-iter-sizeof(int)); /*le vuelvo a copiar la cantidad de registros*/ cant_reg--; memcpy(bloque+emu->tam_bloque-sizeof(int), &cant_reg, sizeof(int)); diff --git a/emufs/tipo1_bplus_main.c b/emufs/tipo1_bplus_main.c index 3a8441a..7737356 100644 --- a/emufs/tipo1_bplus_main.c +++ b/emufs/tipo1_bplus_main.c @@ -116,18 +116,20 @@ int main (int argc,char* argv[]) PERR("REGISTRO 7 GRABADO"); free(r); +clave.i_clave = 93; +emufs_tipo1_eliminar_ordenado(emu, clave, &err); + +/* for ( i=0; i<10000; i++){ texto2="SETPTIMO REGISTRO, lo inserto donde entre carajo2ooooooooooooooooooCLAVE = 80"; srandom(i); clave.i_clave = random(); - /*printf("Clave random = %d\n", clave.i_clave);*/ r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2)); len = strlen(texto)+strlen(texto2)+sizeof(CLAVE); emufs_tipo1_insertar_ordenado(emu, r, len, &err); - /*PERR("REGISTRO 7 GRABADO");*/ free(r); } - +*/ emufs_destruir(emu); return 0; -- 2.43.0