]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo3.c
al parecer andan bien los insertar y eliminar ordenado en los tipos 1 y 3
[z.facultad/75.06/emufs.git] / emufs / tipo3.c
index f9905ecfef879fe909f00d3b7f3370d457e415aa..435e86cad5923e1474a8fdb14f1affebee6a3eaa 100644 (file)
@@ -853,17 +853,17 @@ int emufs_tipo3_eliminar_ordenado(EMUFS *emu, CLAVE clave, int *err)
                        break;/*ya borre, corto aca*/
                }
                iter += tam_reg+sizeof(EMUFS_REG_ID);
                        break;/*ya borre, corto aca*/
                }
                iter += tam_reg+sizeof(EMUFS_REG_ID);
-               aux += iter;
+               aux += tam_reg+sizeof(EMUFS_REG_ID);
        }
        }
-       
        /*reacomodo el bloque */
        /*reacomodo el bloque */
-       memcpy(bloque+iter-tam_reg-sizeof(EMUFS_REG_ID), aux+iter, emu->tam_bloque-iter-sizeof(int)); 
+       memcpy(aux, aux+tam_reg+sizeof(EMUFS_REG_ID), emu->tam_bloque-iter-sizeof(int));
        /*le vuelvo a copiar la cantidad de registros*/
        cant_reg--;
        memcpy(bloque+emu->tam_bloque-sizeof(int), &cant_reg, sizeof(int));
        /*grabo el bloque en el archivo*/
        /*le vuelvo a copiar la cantidad de registros*/
        cant_reg--;
        memcpy(bloque+emu->tam_bloque-sizeof(int), &cant_reg, sizeof(int));
        /*grabo el bloque en el archivo*/
-       if ( emufs_tipo3_grabar_bloque(emu, bloque, query.num_bloque) == EMUFS_NOT_FOUND ){
+       if ( emufs_tipo3_grabar_bloque(emu, bloque, query.num_bloque) == -1){
                PERR("NO SE PUDO GRABAR EL BLOQUE");
                PERR("NO SE PUDO GRABAR EL BLOQUE");
+               free(bloque);
                return -1;
        }
        free(bloque);
                return -1;
        }
        free(bloque);