Kevin, Nitro : j'ai peut-être une solution pour régler ces problèmes.
La première chose à faire au lancement du programme, c'est un
Heapcompress. Ainsi les fichiers (sources) auquels le compilo va accéder sont placé au début de la RAM, et n'auront plus de raison de bouger avec d'autres GC en RAM. Donc on peut accéder directement à leur contenu avec un pointeur, sans problème. C'est plus rapide. Ca marche
J'espère que la suite marche aussi, je n'ai pas encore essayé :
Ensuite, pour la table des symboles (allouée en mémoire haute pour gêner au minimum les fichiers de sortie) et toutes les autres structures dont vous vous servez, les structures FILE des fichiers (entrées & sorties), ..., lors d'une réallocation (que ce soit un bloc ou plusieurs), je dé-lock tout le petit monde cité précédemment. Je réalloue ce que je voulais. Puis avec
HeapDeref je met à jour tous les pointeurs vers mon petit monde (

), puis je relock tout pour que l'écriture des fichiers de sortie ne les déplace pas

[edit]Edité par Thibaut le 05-09-2001 à 11:25:24[/edit]