]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo3.c
Insertar B+ en teoria fully working con encadenamiento en hojas y toda la mar en...
[z.facultad/75.06/emufs.git] / emufs / tipo3.c
index a28b635f5a0d120031b4ba3de425ae98b04e3320..a76725c33d4bbca3b47fbc69b2a4767debd2dc87 100644 (file)
@@ -354,9 +354,14 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, CLAVE k)
                cant_bloques = 1;
 
        PERR("Buscando datos del registro en el indice");
                cant_bloques = 1;
 
        PERR("Buscando datos del registro en el indice");
-       dato = emu->indices->existe_entrada(emu->indices, k);
-       num_bloque = dato.bloque; /*emufs_idx_buscar_registro(emu, ID);*/
-       ID = dato.id;
+       if (emu->indices != NULL) {
+               dato = emu->indices->existe_entrada(emu->indices, k);
+               num_bloque = dato.bloque;
+               ID = dato.id;
+       } else {
+               ID = k.i_clave;
+               num_bloque = emufs_idx_buscar_registro(emu, ID);
+       }
 
        if (!(bloque = emufs_tipo3_leer_bloque(emu, num_bloque, &err))) {
                /* TODO Manejo de errores */
 
        if (!(bloque = emufs_tipo3_leer_bloque(emu, num_bloque, &err))) {
                /* TODO Manejo de errores */
@@ -477,9 +482,9 @@ EMUFS_Estadisticas emufs_tipo3_leer_estadisticas(EMUFS *emu)
        return stats;   
 }
 
        return stats;   
 }
 
-EMUFS_REG_ID emufs_tipo3_modificar_registro(EMUFS *emu, EMUFS_REG_ID id, 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)
 {
 {
-       /*emufs_tipo3_borrar_registro(emu, id);*/
+       emufs_tipo3_borrar_registro(emu, k);
        return emufs_tipo3_grabar_registro(emu, data, size, error);
 }
 
        return emufs_tipo3_grabar_registro(emu, data, size, error);
 }