]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/idx.c
Se agrego a la estructura de Estadisticas, el campo tam_datos_bytes, y se calcula...
[z.facultad/75.06/emufs.git] / emufs / idx.c
index 35ebcf452dad9ac71fb55f807221cb60fa4ab6b5..bd20b63070233247ae9b77d76d28986d87a6a93b 100644 (file)
@@ -37,6 +37,7 @@
 
 #include "idx.h"
 #include "did.h"
+#include "error.h"
 #include <stdlib.h>
 #include <strings.h>
 #include <unistd.h>
@@ -80,7 +81,7 @@ EMUFS_REG_ID emufs_idx_buscar_mayor_id_libre(EMUFS* emu, int* err)
 
        if ((f_idx = fopen(name_f_idx, "rb")) == NULL) {
                PERR("No se puede abrir archivo");
-               *err = 4; /* EMUFS_ERROR_CANT_OPEN_FILE */
+               *err = EMUFS_ERROR_CANT_OPEN_FILE;
                return EMUFS_NOT_FOUND;
        }
 
@@ -115,7 +116,7 @@ EMUFS_BLOCK_ID emufs_idx_buscar_registro(EMUFS *emu, EMUFS_REG_ID reg_id)
        
        if ((f_idx = fopen(name_f_idx, "rb")) == NULL) {
                PERR("No se puede abrir archivo");
-               /*    *err = 4; * EMUFS_ERROR_CANT_OPEN_FILE */
+               /* *err = EMUFS_ERROR_CANT_OPEN_FILE; */
                return EMUFS_NOT_FOUND;
        }
 
@@ -214,10 +215,11 @@ 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++;
-               /* TODO : Verificar errores :-D */
-               tmp = realloc(tmp, count);
-               tmp[count-1] = reg.id_reg;
+               if (reg.location != EMUFS_NOT_FOUND) {
+                       count++;
+                       tmp = realloc(tmp, count*sizeof(EMUFS_REG_ID));
+                       tmp[count-1] = reg.id_reg;
+               }
        }
        fclose(f_idx);
 
@@ -225,6 +227,10 @@ EMUFS_REG_ID *emufs_idx_get(EMUFS *emu, EMUFS_REG_ID *cant)
        return tmp;
 }
 
+/** @todo FIXME borrar cuando se cambie emufs_gui/registros.c que es el unico
+ * que lo usa.
+ * @deprecated Usar emufs_idx_buscar_registro.
+ */
 int emufs_idx_existe_id(EMUFS *emu, int ID)
 {
        FILE *f_idx;