]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
- bugfixes. guardar_registro() ya guarda registros mas grandes que el bloque.
authorLeandro Lucarella <llucax@gmail.com>
Fri, 16 Apr 2004 04:48:29 +0000 (04:48 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Fri, 16 Apr 2004 04:48:29 +0000 (04:48 +0000)
emufs/tipo1.c

index 8bccc4ce03bf2a1d8b40f14150e9aa9d8f77938e..fa24cf0ad71051cae620f9ef3950168c492c2f91 100644 (file)
@@ -257,9 +257,10 @@ EMUFS_REG_ID emufs_tipo1_grabar_registro(EMUFS* efs, void* reg,
                                return EMUFS_NOT_FOUND;
                        }
                        /* grabo el nuevo registro en el archivo de espacios libres */
                                return EMUFS_NOT_FOUND;
                        }
                        /* grabo el nuevo registro en el archivo de espacios libres */
-                       *err = emufs_fsc_agregar(efs, block_id, block_space - chunk_size);
+                       *err = emufs_fsc_agregar(efs, curr_block_id, block_space - chunk_size);
                        if (*err) {
                                PERR("No se pudo agregar fsc");
                        if (*err) {
                                PERR("No se pudo agregar fsc");
+                               free(block);
                                return EMUFS_NOT_FOUND;
                        }
                        /* si es el primer id de bloque obtenido, lo guardo para
                                return EMUFS_NOT_FOUND;
                        }
                        /* si es el primer id de bloque obtenido, lo guardo para
@@ -267,7 +268,7 @@ EMUFS_REG_ID emufs_tipo1_grabar_registro(EMUFS* efs, void* reg,
                        if (block_id == EMUFS_NOT_FOUND) {
                                block_id = curr_block_id;
                        }
                        if (block_id == EMUFS_NOT_FOUND) {
                                block_id = curr_block_id;
                        }
-               } while (chunk_size > block_space);
+               } while (reg_header.size > block_space);
                free(block);
 
        /* Encontró espacio en un bloque existente, graba registro ahí */
                free(block);
 
        /* Encontró espacio en un bloque existente, graba registro ahí */