]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo1.c
al parecer el tipo3 tambien anda... ahora falta debug de eliminacion e implemetar...
[z.facultad/75.06/emufs.git] / emufs / tipo1.c
index ddaa437b20190fae4bc8732825b01083812ac72e..d93efd4f3e092627cd6a6a2d0338d0c3177c5f49 100644 (file)
@@ -75,7 +75,7 @@ static void* emufs_tipo1_leer_bloque(EMUFS*, EMUFS_BLOCK_ID, int*);
 static EMUFS_BLOCK_ID emufs_tipo1_grabar_bloque_fsc(EMUFS*, void*,
                EMUFS_BLOCK_ID, EMUFS_FREE, int*);
 
 static EMUFS_BLOCK_ID emufs_tipo1_grabar_bloque_fsc(EMUFS*, void*,
                EMUFS_BLOCK_ID, EMUFS_FREE, int*);
 
-CLAVE grabar_ordenado_en_bloque(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, 
+static CLAVE grabar_ordenado_en_bloque(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, 
                void *bloque, int num_bloque, EMUFS_FREE fs, int *err);
 
 /*------------------ Funciones públicas ----------------------*/
                void *bloque, int num_bloque, EMUFS_FREE fs, int *err);
 
 /*------------------ Funciones públicas ----------------------*/
@@ -884,6 +884,9 @@ int emufs_tipo1_insertar_ordenado(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, in
                                emufs_tipo1_grabar_bloque_fsc(emu, new_bloque, query.num_bloque, EMUFS_NOT_FOUND, err);
                                /*grabo el registro en el bloque original*/
                                grabar_ordenado_en_bloque(emu,ptr,size,bloque,num_bloque,fs+move_size,err);
                                emufs_tipo1_grabar_bloque_fsc(emu, new_bloque, query.num_bloque, EMUFS_NOT_FOUND, err);
                                /*grabo el registro en el bloque original*/
                                grabar_ordenado_en_bloque(emu,ptr,size,bloque,num_bloque,fs+move_size,err);
+                               /*actualizo el arbol con la menor clave del bloque nuevo*/
+                               query.clave = emufs_indice_generar_clave(emu->indices, new_bloque+sizeof(EMUFS_TIPO1_REG_HEADER));
+                               emufs_b_plus_insertar(emu->indices, &query);
                        }
                        if(*err != 0){
                                PERR("NO SE PUDO GRABAR ORDENADO");
                        }
                        if(*err != 0){
                                PERR("NO SE PUDO GRABAR ORDENADO");