]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
mato bicho en obtener claves
authorNicolás Dimov <ndimov@gmail.com>
Sun, 30 May 2004 17:05:09 +0000 (17:05 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Sun, 30 May 2004 17:05:09 +0000 (17:05 +0000)
emufs/tipo1.c
emufs/tipo1_bplus_main.c
emufs/tipo3.c

index 319b3e298cc1fd233351b1495df1cdc823c1eb95..88706da34280b07c44e2a28f9e5a6d45cbcb7121 100644 (file)
@@ -1129,7 +1129,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 +1144,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 +1162,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;
 }
index 3d9b15d34eff683f0fe11dbf09a3d6245df4549d..119600a2d63512110e29a75026426ab05e8bee9e 100644 (file)
@@ -199,11 +199,11 @@ for ( i=0; i<100; i++){
 
 PERR("OBTENIENDO CLAVES");
 v = emufs_tipo1_obtener_claves_raw(emu, 3);
+printf("Las claves del bloque 3 son:\n");
 if (v==NULL) {
        PERR("NO HAY VECTOR");
        emufs_destruir(emu);
 }
-PERR("PASE");
 /*printf("Las claves del bloque 3 son:\n");*/
 for (i=0; i<v->cant_keys; i++)
        printf("v[%d] = %d\n", i, v->claves[i]);
index fb0acd5d6197adf4055df75063c0dab9206c237b..4973603c17356889ce74c8f6b4f19b20b698dd16 100644 (file)
@@ -986,7 +986,7 @@ EMUFS_REG_ID emufs_tipo3_modificar_registro_plus(EMUFS *emu, CLAVE k, void *ptr
 B_PLUS_KEYBUCKET *emufs_tipo3_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 = emu->tam_reg;
        
@@ -1001,6 +1001,7 @@ B_PLUS_KEYBUCKET *emufs_tipo3_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*/
@@ -1017,6 +1018,6 @@ B_PLUS_KEYBUCKET *emufs_tipo3_obtener_claves_raw(EMUFS *emu, int num_bloque)
                keys->claves[i] = emufs_indice_generar_clave(emu->indices, bloque+sizeof(EMUFS_REG_ID));
                bloque += tam_reg+sizeof(EMUFS_REG_ID);
        }
-       free(bloque);
+       free(aux);
        return keys;
 }