]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/idx.c
* BUGFIX : EN idx_get faltaba un sizeof(EMUFS_REG_ID) (aunque el valgrind se sigue...
[z.facultad/75.06/emufs.git] / emufs / idx.c
index 18d4722a4af763ba88eab83b877df09e29e62320..3362331adfafd74782a4099f6441669296ac27e1 100644 (file)
@@ -140,7 +140,7 @@ int emufs_idx_agregar(EMUFS *emu, EMUFS_REG_ID id_reg, EMUFS_BLOCK_ID location)
        strcpy(name_f_idx,emu->nombre);
        strcat(name_f_idx, EMUFS_IDX_EXT);
 
        strcpy(name_f_idx,emu->nombre);
        strcat(name_f_idx, EMUFS_IDX_EXT);
 
-       if ( (f_idx = fopen(name_f_idx,"a+"))==NULL ) return -1;
+       if ( (f_idx = fopen(name_f_idx,"r+"))==NULL ) return -1;
 
        fseek(f_idx, sizeof(EMUFS_IDX)*id_reg, SEEK_SET); 
        reg.id_reg = id_reg;
 
        fseek(f_idx, sizeof(EMUFS_IDX)*id_reg, SEEK_SET); 
        reg.id_reg = id_reg;
@@ -214,12 +214,10 @@ EMUFS_REG_ID *emufs_idx_get(EMUFS *emu, EMUFS_REG_ID *cant)
        count = 0;
        while (!feof(f_idx)) {
                if (fread(&reg, sizeof(EMUFS_IDX), 1, f_idx) != 1) continue;
        count = 0;
        while (!feof(f_idx)) {
                if (fread(&reg, sizeof(EMUFS_IDX), 1, f_idx) != 1) continue;
+               count++;
                /* TODO : Verificar errores :-D */
                /* TODO : Verificar errores :-D */
-               if (reg.location != EMUFS_NOT_FOUND) {
-                       count++;
-                       tmp = realloc(tmp, count);
-                       tmp[count-1] = reg.id_reg;
-               }
+               tmp = realloc(tmp, count*sizeof(EMUFS_REG_ID));
+               tmp[count-1] = reg.id_reg;
        }
        fclose(f_idx);
 
        }
        fclose(f_idx);
 
@@ -265,7 +263,6 @@ int emufs_idx_actualizar(EMUFS *emu, int ID, EMUFS_BLOCK_ID bloque)
                PERR("No se pudo abrir el archivo");
                return -1;
        }
                PERR("No se pudo abrir el archivo");
                return -1;
        }
-       printf("actualice el id = %d\n",ID);
        fseek(f_idx,0,SEEK_SET);
        fseek(f_idx,ID*sizeof(EMUFS_IDX),SEEK_SET);
        fread(&reg,sizeof(EMUFS_IDX),1,f_idx);
        fseek(f_idx,0,SEEK_SET);
        fseek(f_idx,ID*sizeof(EMUFS_IDX),SEEK_SET);
        fread(&reg,sizeof(EMUFS_IDX),1,f_idx);