]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo2.c
Agregar en arbol B andando 10 puntos
[z.facultad/75.06/emufs.git] / emufs / tipo2.c
index e0c3aba849b9c3d33031bf6596f76347fb53089c..b2724e931d88667126b1ed8148322e07f97074d4 100644 (file)
@@ -318,6 +318,7 @@ void emufs_tipo2_compactar(EMUFS *efs)
        /* Obtengo la cantidad de gaps */
        if ( (fscfile = fopen(name_ffsc,"rb")) == NULL){
                        PERR("No se pudo abrir el archivo");
        /* Obtengo la cantidad de gaps */
        if ( (fscfile = fopen(name_ffsc,"rb")) == NULL){
                        PERR("No se pudo abrir el archivo");
+                       fclose(datfile);
                        return;
        }
        fseek(fscfile,0,SEEK_END);
                        return;
        }
        fseek(fscfile,0,SEEK_END);
@@ -478,12 +479,12 @@ void* emufs_tipo2_leer_registro_raw(EMUFS *efs, EMUFS_REG_ID id, EMUFS_REG_SIZE
        fseek(f_data,reg_offset+sizeof(EMUFS_REG_ID), SEEK_SET);
        fread(size,sizeof(EMUFS_REG_SIZE),1,f_data);
        registro = (char*)malloc(*size+sizeof(EMUFS_REG_ID)+sizeof(EMUFS_REG_SIZE)+100);
        fseek(f_data,reg_offset+sizeof(EMUFS_REG_ID), SEEK_SET);
        fread(size,sizeof(EMUFS_REG_SIZE),1,f_data);
        registro = (char*)malloc(*size+sizeof(EMUFS_REG_ID)+sizeof(EMUFS_REG_SIZE)+100);
-       if (reg_offset > 50) {
+       if (reg_offset >= 50) {
                fseek(f_data, reg_offset - 50, SEEK_SET);
                (*pos) = 50;
        } else {
                /* Si no hay 50 antes mio, estoy cerca del 0! */
                fseek(f_data, reg_offset - 50, SEEK_SET);
                (*pos) = 50;
        } else {
                /* Si no hay 50 antes mio, estoy cerca del 0! */
-               (*pos) = 50 - reg_offset;
+               (*pos) = reg_offset;
                fseek(f_data, 0, SEEK_SET);
        }
        (*size) += sizeof(EMUFS_REG_ID)+sizeof(EMUFS_REG_SIZE)+100;
                fseek(f_data, 0, SEEK_SET);
        }
        (*size) += sizeof(EMUFS_REG_ID)+sizeof(EMUFS_REG_SIZE)+100;