From da23d52cdd28470c286024c709a978e7aa9eb12b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicol=C3=A1s=20Dimov?= Date: Wed, 26 May 2004 21:19:07 +0000 Subject: [PATCH] para que compile --- emufs/tipo1.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/emufs/tipo1.c b/emufs/tipo1.c index 99cf50c..98ddb6e 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -76,7 +76,7 @@ static EMUFS_BLOCK_ID emufs_tipo1_grabar_bloque_fsc(EMUFS*, void*, EMUFS_BLOCK_ID, EMUFS_FREE, int*); -CLAVE insertar_odenado_en_bloque(EMUFS *emu, void *ptr, void *bloque, int num_bloque); +CLAVE insertar_odenado_en_bloque(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, void *bloque, int num_bloque, int *err); /*------------------ Funciones públicas ----------------------*/ @@ -858,7 +858,7 @@ int emufs_tipo1_insertar_ordenado(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, in } /*aca deberia estar apuntando al final de los registros. espacio libre*/ fs -= sizeof(int); /*footer*/ if ( fs >= size ){ /* puedo meter el registro en este bloque*/ - insertar_odenado_en_bloque(emu, ptr, bloque, query->num_bloque); + insertar_odenado_en_bloque(emu, ptr, size, bloque, query->num_bloque, err); /*en teoria el nuevo registro no debe cambiar el ancla, por lo cual no actualizo el arbol*/ return 0; /*aca va lo que saque*/ @@ -870,15 +870,18 @@ int emufs_tipo1_insertar_ordenado(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, in } /*inserta un registro ordenado en un bloque y devuelve la menor de las claves*/ -CLAVE insertar_odenado_en_bloque(EMUFS *emu, void *ptr, void *bloque, int num_bloque) +CLAVE insertar_odenado_en_bloque(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, void *bloque, int num_bloque, int *err) { - #ifdef CAMBIAR + /*#ifdef CAMBIAR*/ char *aux, *new_bloque; int cant_reg, tam_reg, i, j; EMUFS_TIPO1_REG_HEADER header; + EMUFS_FREE fs; CLAVE clave, clave_ajena; - header.id = emufs_idx_get_new_id(efs, err); + memcpy(&cant_reg, bloque+emu->tam_bloque-sizeof(int), sizeof(int)); + clave = emufs_indice_generar_clave(emu->indices, ptr); + header.id = emufs_idx_get_new_id(emu, err); header.size = size; cant_reg++; new_bloque = (char*)malloc(emu->tam_bloque); @@ -888,11 +891,12 @@ CLAVE insertar_odenado_en_bloque(EMUFS *emu, void *ptr, void *bloque, int num_bl if ( emu->tam_bloque-fs < sizeof(EMUFS_TIPO1_REG_HEADER)+emu->indices->offset ){ PERR("ESTOY LEYENDO FUERA DEL BLOQUE!!!"); free(new_bloque); + *err = -1; return clave; } clave_ajena = emufs_indice_generar_clave(emu->indices, bloque); /*leo la clave*/ bloque -= sizeof(EMUFS_TIPO1_REG_HEADER); /*vuelvo al principio*/ - if ( iindices, clave_ajena, clave) ){ memcpy(&tam_reg, bloque+sizeof(EMUFS_REG_ID), sizeof(EMUFS_REG_SIZE)); /*copio el reg al bloque nuevo*/ memcpy(new_bloque, bloque, sizeof(EMUFS_TIPO1_REG_HEADER)+tam_reg); @@ -919,9 +923,9 @@ CLAVE insertar_odenado_en_bloque(EMUFS *emu, void *ptr, void *bloque, int num_bl free(bloque);/*no lo uso mas*/ /*grabo el bloque en el archivo*/ new_bloque = aux; /*apunto al principio del bloque*/ - emufs_tipo1_grabar_bloque_fsc(emu, new_bloque, query->num_bloque, EMUFS_NOT_FOUND, err); + emufs_tipo1_grabar_bloque_fsc(emu, new_bloque, num_bloque, EMUFS_NOT_FOUND, err); clave = emufs_indice_generar_clave(emu->indices, new_bloque+sizeof(EMUFS_TIPO1_REG_HEADER)); free(new_bloque); return clave; - #endif CAMBIAR + /*#endif CAMBIAR*/ } -- 2.43.0