[Epo] Multiple pdb loader...

ALLALI Julien allali@univ-mlv.fr
Tue Jan 30 11:28:02 2001


La solution est proche...
Une nouvelle air est arrivée.

Apres avoir examiner les sources de la KVM, il ne semble pas tres
difficile de gerer plusieurs pdb.

Les modif a faire sont:

dans les source pour le pilot:
j2me_cldc/kvm/VmPilot/src/

le fichier Main.c:
ligne 200:
ClassfileAltDB = DmOpenDatabaseByTypeCreator(KVMclassDBType, KVMCreator,

                                                 dmModeReadOnly);
Il faudrait remplacer ca par la fonction:
DmGetNextDatabaseByTypeCreator
et remplacer la structure ClassfileAlt de type  DmOpenRef par un truc du
genre:
DmOpenRef ClassfileAlt[MAX_PDB_OPEN_FILES]
et rajouter une variable:
int NbClassfileAltOpen;

Puis dans le fichier loaderPilot.c :
ligne 230 dans la fonction openFileInternal
Remplacer:
if (!findClassFromDatabase(ClassfileAltDB, fileName, &recordHandle,
NULL)) {
            return NULL;
        }
par un truc du genre
i=0;
while((i<NbClassfileAltOpen)
    && (findClassFromDatabase(ClassfileAltDB, fileName, &recordHandle,
NULL) ) )
    i++;
if (i==NbClassfileAltOpen)
    return NULL;

Et je crois que c'est tout....

Pas Mal Hein!!!

Allez j'ai bien gagné un café là :o)


PS:
A modifer aussi:
dans KVM.h
extern DmOpenRef ClassfileAltDB;
par extern DmOpenRef ClassfileAltDB[MAX_PDB_OPEN_FILES]

et dans Main.c ligne 280:
if (ClassfileAltDB != NULL) {
        DmCloseDatabase(ClassfileAltDB);
    }
une petit boucle for...

A voir:
Essayer de rajouter dans la KVM:
Un gestionnaire de pdb.
Un affichage au lancement de la liste des pdb trouvés.