772Fermer774
Kevin KoflerLe 20/10/2004 à 21:45
Martial Demolins
:Tiens au fait, comment faites-vous pour vous en tirer quand vous êtess rendu au deuxième ou troisième niveau d'appel de fonctions, que vous faites une alloc qui ne marche pas? Si on a sauvegardé les registres à chaque nouvelle fonction, il n'est pas du tout évident de restaurer la pile correctement! J'ai pensé à sauvegarder a7 au début du prog principal, et de le restaurer "de force" en quittant, mais est-ce une méthode propre?

exit de TIGCCLIB fonctionne comme ça.

Sinon, tu peux aussi utiliser ER_throw et consortes (ça fonctionne presque comme les exceptions C++ ou Java), ou renvoyer des valeurs d'erreur (NULL, -1 etc.) dans les fonctions en cas d'échec (comme suggéré par Ximoon dans le ./771).
Martial Demolins
:Réflexion soudaine-> ce n'est pas la peine de le faire en kernel en fait, il le fait tout seul non?

Si, Universal OS ne le fait pas.