b_plus_destruir_nodo(nodo);
nodo = b_plus_leer_nodo(idx,num_node);
prepostkey->clave = nodo->claves[0];
- prepostkey->num_bloque = nodo->hijos[0];
+ prepostkey->num_bloque = nodo->hijos[0];
+ exitcode = 1;
}
- else exitcode = 1; /* No hay mas */
+ else exitcode = -1; /* No hay mas */
}
else {
prepostkey->clave = nodo->claves[i+1];
b_plus_destruir_nodo(node);
node = b_plus_leer_nodo(idx,num_child);
}
- else break;
+ else {
+ b_plus_destruir_nodo(node);
+ return key;
+ }
}
/* Ahora estoy en la primer hoja del arbol, devuelvo la primer clave */
node = b_plus_leer_nodo(idx,0);
if (node == NULL) {
key.i_clave = -1;
+ b_plus_destruir_nodo(node);
return key;
}
node = b_plus_leer_nodo(idx,num_child);
cant_claves = node->cant_claves;
}
- else return key;
+ else {
+ b_plus_destruir_nodo(node);
+ return key;
+ }
}
/* Ahora estoy en la ultima hoja del arbol, devuelvo la ultima clave */
bucket = idx->padre->obtener_claves_raw(idx->padre,node->hijos[cant_claves-1]);
key = bucket->claves[bucket->cant_keys-1];
+ free(bucket->claves);
free (bucket);
b_plus_destruir_nodo(node);