8Fermer10
PpHdLe 05/11/2013 à 17:12
Folco (./7) :
short kernel__hd2full(HANDLE h, char buffer[18])
{
    SYM_ENTRY* se = SymFindFirst (NULL, FO_RECURSE);

    while (se != NULL && se->handle != h);
    {
        se = SymFindNext ();
    }
    if (se == NULL)
       return 0;
    return sprintf (buffer, "%s\%s", SymFindFolderName (), se);
}

Fixed

Ca me parait plus rapide, et la validité du résultat est garantie par le TIOS, il n'y a qu'une erreur possible (le handle n'appartient pas à un fichier, ou n'est pas alloué).
En effet, les deux kernel::Hd2Sym font chacun un SymFindFirst/SymFindNext, et le kernel::Ptr2Hd fait carrément un lookup de la table des handles, avec calcul de l'adresse de fin du handle.

Ouep.