X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/d0cf2ab456ea8847d1bc8c2bd0b2e1cfa0087c9e..a680ab304d20541f4bf03709354b7b7c2ffdf993:/emufs/tipo1.c diff --git a/emufs/tipo1.c b/emufs/tipo1.c index 319b3e2..43fc9ef 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -722,7 +722,9 @@ EMUFS_BLOCK_ID emufs_tipo1_grabar_bloque_fsc(EMUFS *efs, void *block, EMUFS_REG_ID emufs_tipo1_modificar_registro(EMUFS* efs, CLAVE k, void *data, EMUFS_REG_SIZE size, int* err, INDICE_DATO dato) { + PERR("Tipo1 Modificar Borrando"); emufs_tipo1_borrar_registro(efs, k, dato); + PERR("Tipo1 Modificar Agregando de nuevo"); return emufs_tipo1_grabar_registro(efs, data, size, err); } @@ -1129,7 +1131,7 @@ EMUFS_REG_ID emufs_tipo1_modificar_registro_plus(EMUFS *emu, CLAVE k, void *ptr B_PLUS_KEYBUCKET *emufs_tipo1_obtener_claves_raw(EMUFS *emu, int num_bloque) { B_PLUS_KEYBUCKET *keys; - char *bloque; + char *bloque, *aux;; int err = 0, cant_reg, i; EMUFS_REG_SIZE tam_reg; @@ -1144,12 +1146,14 @@ B_PLUS_KEYBUCKET *emufs_tipo1_obtener_claves_raw(EMUFS *emu, int num_bloque) PERR("NO SE PUDO LEER EL BLOQUE"); return NULL; } + aux = bloque; /*leo la cantidad de registros*/ memcpy(&cant_reg, bloque+emu->tam_bloque-sizeof(int), sizeof(int)); /*ya se cuanto guardarle al vector*/ keys->claves = (CLAVE*)malloc(cant_reg*sizeof(CLAVE)); if (keys->claves == NULL){ PERR("NO SE PUDO CREAR EL ARRAY DE CLAVES"); + free(bloque); free(keys); return NULL; } @@ -1160,6 +1164,6 @@ B_PLUS_KEYBUCKET *emufs_tipo1_obtener_claves_raw(EMUFS *emu, int num_bloque) keys->claves[i] = emufs_indice_generar_clave(emu->indices, bloque+sizeof(EMUFS_TIPO1_REG_HEADER)); bloque += tam_reg+sizeof(EMUFS_TIPO1_REG_HEADER); } - free(bloque); + free(aux); return keys; }