]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
subo para que luca valgrinee
authorNicolás Dimov <ndimov@gmail.com>
Fri, 28 May 2004 21:01:13 +0000 (21:01 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Fri, 28 May 2004 21:01:13 +0000 (21:01 +0000)
emufs/common.c
emufs/tipo1.c

index f2dfc93214a92093dcccfa42d39483d6ec07094a..3906e057b8eed03db48c42001b3de1cd7e4131f3 100644 (file)
@@ -46,6 +46,7 @@ long emufs_common_get_file_size(const char* filename, int* err)
                *err = EMUFS_ERROR_CANT_OPEN_FILE;
                return 0;
        }
                *err = EMUFS_ERROR_CANT_OPEN_FILE;
                return 0;
        }
+       fseek(file, 0, SEEK_END);
        file_size = ftell(file);
        fclose(file);
        if (file_size < 0) {
        file_size = ftell(file);
        fclose(file);
        if (file_size < 0) {
@@ -55,4 +56,3 @@ long emufs_common_get_file_size(const char* filename, int* err)
        }
        return file_size;
 }
        }
        return file_size;
 }
-
index 419306c02e8596cfcf040ac7a2bdf8c04df8d1e8..0381d3b14fbc74afb1059ef475a9b35c0cf53101 100644 (file)
@@ -633,7 +633,7 @@ EMUFS_BLOCK_ID emufs_tipo1_grabar_bloque_fsc(EMUFS *efs, void *block,
                PERR("Error al obtener tamaño del archivo.");
                return EMUFS_NOT_FOUND;
        }
                PERR("Error al obtener tamaño del archivo.");
                return EMUFS_NOT_FOUND;
        }
-
+       
        /* abre archivo */
        strcpy(name_f,efs->nombre);
        strcat(name_f,".dat");
        /* abre archivo */
        strcpy(name_f,efs->nombre);
        strcat(name_f,".dat");
@@ -857,6 +857,7 @@ int emufs_tipo1_insertar_ordenado(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, in
                        memcpy(bloque+emu->tam_bloque-sizeof(int), &i, sizeof(int));
                        PERR("PASE");
                        /*grabo el bloque original*/
                        memcpy(bloque+emu->tam_bloque-sizeof(int), &i, sizeof(int));
                        PERR("PASE");
                        /*grabo el bloque original*/
+                       printf("voya a grabar en bloque: %d\n", num_bloque);
                        emufs_tipo1_grabar_bloque_fsc(emu, bloque, num_bloque, EMUFS_NOT_FOUND, err);
                        PERR("GRABE EL BLOQUE 1 de 2");
                        /*actualizo el footer del nuevo bloque*/
                        emufs_tipo1_grabar_bloque_fsc(emu, bloque, num_bloque, EMUFS_NOT_FOUND, err);
                        PERR("GRABE EL BLOQUE 1 de 2");
                        /*actualizo el footer del nuevo bloque*/
@@ -867,6 +868,10 @@ int emufs_tipo1_insertar_ordenado(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, in
                        query.num_bloque = emufs_create_new_block(emu);
                        /*inserto el nuevo registro en el nuevo bloque y obtengo la clave del menor*/
                        clave = grabar_ordenado_en_bloque(emu,ptr,size,new_bloque,query.num_bloque, emu->tam_bloque-move_size,err);
                        query.num_bloque = emufs_create_new_block(emu);
                        /*inserto el nuevo registro en el nuevo bloque y obtengo la clave del menor*/
                        clave = grabar_ordenado_en_bloque(emu,ptr,size,new_bloque,query.num_bloque, emu->tam_bloque-move_size,err);
+                       if(*err != 0){
+                               PERR("NO SE PUDO GRABAR ORDENADO");
+                               return -1;
+                       }
                        /*actualizo el arbol con la nueva clave*/
                        emufs_b_plus_insertar(emu->indices, &query);
                        free(new_bloque);
                        /*actualizo el arbol con la nueva clave*/
                        emufs_b_plus_insertar(emu->indices, &query);
                        free(new_bloque);