]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/emufs.c
super test, cargando 10000 registros con claves random y el arbol se arma, al parecer...
[z.facultad/75.06/emufs.git] / emufs / emufs.c
index 42c81f1a1f727d2cf5975f51e7b4d54c49719588..8ad9604233fbc1c837de5540250fe503c0c880f0 100644 (file)
@@ -290,7 +290,18 @@ EMUFS *emufs_abrir(const char *filename)
 
 int emufs_destruir(EMUFS *e)
 {
+       INDICE *del, *cur;
+
        if (e == NULL) return 1;
+
+       /* libero indices */
+       cur = e->indices;
+       while (cur) {
+               del = cur;
+               cur = cur->sig;
+               emufs_indice_destruir(e, cur);
+       }
+
        free(e->nombre);
        free(e);
        return 0;
@@ -472,6 +483,7 @@ int guardar_indice(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, INDICE_TIPO
        fwrite(&cant, 1, sizeof(int), fp);
        fwrite(indices, cant, sizeof(t_Indice), fp);
        fclose(fp);
+       free(indices);
        return 1;
 }
 
@@ -495,7 +507,6 @@ EMUFS_BLOCK_ID emufs_create_new_block(EMUFS *emu)
        dummy = (char*)malloc(emu->tam_bloque);
        memset(dummy, 0, emu->tam_bloque);
        fwrite(dummy, emu->tam_bloque, 1, fp);
-       printf("new_block ftell = %d\n", ftell(fp));
        switch(emu->tipo){
                case T1: num = (ftell(fp)-sizeof(EMUFS_Tipo)-sizeof(EMUFS_BLOCK_SIZE))/emu->tam_bloque;
                        break;
@@ -527,7 +538,6 @@ EMUFS_BLOCK_ID emufs_get_new_block_number(EMUFS *emu)
        switch(emu->tipo){
                case T1: num = (ftell(fp)-sizeof(EMUFS_Tipo)-sizeof(EMUFS_BLOCK_SIZE))/emu->tam_bloque;
                        if (ftell(fp) ==  sizeof(EMUFS_Tipo)+sizeof(EMUFS_BLOCK_SIZE)) num = 0;
-                               PERR("PASE");
                        break;
                case T3: num = (ftell(fp)-sizeof(EMUFS_Tipo)-sizeof(EMUFS_BLOCK_SIZE)-sizeof(EMUFS_REG_SIZE))/emu->tam_bloque;
                        if (ftell(fp) ==  sizeof(EMUFS_Tipo)+sizeof(EMUFS_BLOCK_SIZE)+sizeof(EMUFS_REG_SIZE)) num = 0;