X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/f813f72396d99790ac30bf384e992b9890af300c..9da17243492426daba1cf11c353f4216e7e34ca1:/emufs/b_plus.c diff --git a/emufs/b_plus.c b/emufs/b_plus.c index 30f99b8..61e7b4c 100644 --- a/emufs/b_plus.c +++ b/emufs/b_plus.c @@ -4,10 +4,10 @@ /**#*#*#*#*#**#*#*#*#*#* Private prototypes*#*#*#*#*#**#*#*#*#*#**#*#*#*/ /* numerando los bloques */ int b_plus_grabar_nodo(INDEXSPECS *idx, NODO_B_PLUS *nodo, int num_node); -NODO_B_PLUS *b_plus_leer_nodo(INDEXSPECS *idx, int num_node); +/*NODO_B_PLUS *b_plus_leer_nodo(INDEXSPECS *idx, int num_node);*/ NODO_B_PLUS *b_plus_crearnodo(INDEXSPECS *idx); int b_plus_destruir_nodo(NODO_B_PLUS *nodo); -int b_plus_insertar_clave(INDEXSPECS *idx, INDEX_DAT *query); +/*int b_plus_insertar_clave(INDEXSPECS *idx, INDEX_DAT *query);*/ /**#*#*#*#*#**#*#*#*#*#*FIN PROTOTYPES*#*#*#*#*#**#*#*#*#*#**#*#*#*#*#*/ @@ -86,9 +86,11 @@ int b_plus_insertar_clave(INDEXSPECS *idx, INDEX_DAT *query) } /* aca tengo el nodo donde deberia ir la clave, y su padre */ - if ( curnode->cant_claves < idx->size_claves ){ + if ( curnode->cant_claves < idx->size_claves/sizeof(int) ){ int *claves_aux = (int*)malloc(idx->size_claves); int *hijos_aux = (int*)malloc(idx->size_hijos); + memset(claves_aux,-1,idx->size_claves); + memset(hijos_aux,-1,idx->size_hijos); i = 0; while ( (curnode->claves[i] < query->clave.i_clave) && (i < curnode->cant_claves)){ claves_aux[i] = curnode->claves[i]; @@ -109,9 +111,7 @@ int b_plus_insertar_clave(INDEXSPECS *idx, INDEX_DAT *query) b_plus_grabar_nodo(idx, curnode, prox_nodo); b_plus_destruir_nodo(curnode); } - - - + /* si el nodo esta lleno tengo que splitear */ if ( curnode->cant_claves == idx->size_claves ) { @@ -149,7 +149,7 @@ int emufs_b_plus_get_bloque(INDEXSPECS *idx, INDEX_DAT *query) { b_plus_destruir_nodo(curnode); return 0; } - + PERR("TENGO LA HOJA"); /* Mientras no encontre la hoja con la clave, busco.. */ /* RECORDAR QUE LAS CLAVES DEBEN ESTAR ORDENADAS PARA QUE ESTO FUNCIONE !! */ while (curnode->nivel > 0 && curnode){