- memcpy(new_bloque+emu->tam_bloque, &dif, sizeof(int));
- /*genero un nuevo espacio para un bloque en el archivo y lo cargo en query
- la clave ya estaba en query desde antes*/
- query.num_bloque = emufs_create_new_block(emu);
- /*inserto el nuevo registro en el nuevo bloque y obtengo la clave del menor*/
- clave = grabar_ordenado_en_bloque(emu,ptr,size,new_bloque,query.num_bloque, emu->tam_bloque-move_size,err);
+ memcpy(new_bloque+emu->tam_bloque-sizeof(int), &dif, sizeof(int));
+ menor_clave_bloque_nuevo = emufs_indice_generar_clave(emu->indices, new_bloque+sizeof(EMUFS_TIPO1_REG_HEADER));
+ /* TENGO QUE VER EN CUAL DE LOS DOS BLOQUES METO EL REGISTRO NUEVO */
+ if ( emufs_indice_es_menor(emu->indices, menor_clave_bloque_nuevo, clave) ){
+ /*genero un nuevo espacio para un bloque en el archivo y lo cargo en queryla clave ya estaba en query desde antes*/
+ query.num_bloque = emufs_create_new_block(emu);
+ printf("numero de bloque nuevo: %d\n", query.num_bloque);
+ /*inserto el nuevo registro en el nuevo bloque y obtengo la clave del menor*/
+ clave = grabar_ordenado_en_bloque(emu,ptr,size,new_bloque,query.num_bloque, emu->tam_bloque-move_size,err);
+ /*actualizo el arbol con la nueva clave*/
+ query.clave = clave;
+ emufs_b_plus_insertar(emu->indices, &query);
+ /*grabo el bloque original*/
+ printf("numero de bloque viejo: %d\n", num_bloque);
+ emufs_tipo1_grabar_bloque_fsc(emu, bloque, num_bloque, EMUFS_NOT_FOUND, err);
+ } else {
+ /*grabo el bloque nuevo*/
+ query.num_bloque = emufs_create_new_block(emu);
+ printf("numero de bloque nuevo: %d\n", query.num_bloque);
+ emufs_tipo1_grabar_bloque_fsc(emu, new_bloque, emufs_create_new_block(emu), EMUFS_NOT_FOUND, err);
+ printf("numero de bloque viejo %d\n", num_bloque);
+ grabar_ordenado_en_bloque(emu,ptr,size,bloque,query.num_bloque, fs-move_size,err);
+
+ }