]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo3.c
Compiling version para Nico aunque la anterior deberia haber estado functional
[z.facultad/75.06/emufs.git] / emufs / tipo3.c
index 1214afcc8d890aabd3733a7bc2b71793fb11b8eb..acffac856add1b0c0505aedc57858f9bd673c815 100644 (file)
@@ -340,7 +340,7 @@ int emufs_tipo3_grabar_bloque(EMUFS *emu, void *ptr, EMUFS_BLOCK_ID num)
 }
 
 /*borra un registro de un bloque y acomoda los registros que quedan*/
-int emufs_tipo3_borrar_registro(EMUFS *emu, CLAVE k)
+int emufs_tipo3_borrar_registro(EMUFS *emu, CLAVE k, INDICE_DATO dato1)
 {
        EMUFS_BLOCK_SIZE num_bloque;
        EMUFS_BLOCK_SIZE ptr_elim;
@@ -372,9 +372,6 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, CLAVE k)
                return -1;
        }
 
-       PERR("Borrando clave");
-       /* TODO Borrar en todos los indices!! */
-       emu->indices->borrar_entrada(emu->indices, k);
        /*apunto al registro que voy a eliminar*/
        ptr_elim = 0;
        while ( ptr_elim < emu->tam_bloque ){
@@ -435,6 +432,9 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, CLAVE k)
        }
 
        free(bloque);
+       PERR("Borrando claves");
+       emufs_indice_borrar(emu->indices, k, dato1);
+       PERR("Clave borrada de todos los indices");
        return 0;
 }
 
@@ -485,9 +485,9 @@ EMUFS_Estadisticas emufs_tipo3_leer_estadisticas(EMUFS *emu)
        return stats;   
 }
 
-EMUFS_REG_ID emufs_tipo3_modificar_registro(EMUFS *emu, CLAVE k, void *data, EMUFS_REG_SIZE size, int *error)
+EMUFS_REG_ID emufs_tipo3_modificar_registro(EMUFS *emu, CLAVE k, void *data, EMUFS_REG_SIZE size, int *error, INDICE_DATO dato)
 {
-       emufs_tipo3_borrar_registro(emu, k);
+       emufs_tipo3_borrar_registro(emu, k, dato);
        return emufs_tipo3_grabar_registro(emu, data, size, error);
 }