break;
case IND_B_PLUS:
/* llenar metodos */
+ /* hacer que la cantidad de claves quede par o impar, no me acuerdo (SAGAR)!!!*/
PERR("Creando indice con Arbol B+");
tmp->size_claves = (tmp->tam_bloque - SIZE_B_PLUS_HEADER - sizeof(CLAVE))/2;
tmp->size_hijos = tmp->size_claves + sizeof(CLAVE);
{
/* TODO Sacar el indice de la lista en EMUFS */
+ if (!i) return;
+
if (i->tipo == IDX_STRING)
emufs_destruir(i->emu_string);
+ if (i->funcion != IND_PRIMARIO)
+ emufs_destruir(i->emu_mult);
free(i->filename);
free(i->nombre);
free(i);
/* Hack feo :-D */
sprintf(salvar, "%s", data);
k.i_clave = idx->emu_string->grabar_registro(idx->emu_string,
- salvar,
- strlen(salvar)+1,
- &error
- );
+ salvar,
+ strlen(salvar)+1,
+ &error
+ );
}
return k;
PERR(idx->nombre);
PERR(data+idx->offset);
k.i_clave = idx->emu_string->grabar_registro(idx->emu_string,
- data+idx->offset,
- strlen(data+idx->offset)+1,
- &error
- );
+ data+idx->offset,
+ strlen(data+idx->offset)+1,
+ &error
+ );
}
return k;
}
}
+
+void emufs_indice_borrar(INDICE *primero, CLAVE k, INDICE_DATO dato)
+{
+ INDICE *iter = primero;
+
+ while (iter) {
+ iter->borrar_entrada(iter, k, dato);
+ iter = iter->sig;
+ }
+}