/* slist_find -- Trouve le premier élément de la liste égal à item * (d'après le prédicat pred) et positionne le pointeur de liste dessus. * Renvoie un pointeur sur son son contenu. * Si l'élément n'a pas pu ^etre trouvé, renvoie NULL. * Complexité: O(longueur(list)*C(pred)) */ void *slist_find(SList *list, void *item, int (*pred)(void *, void *)) { assert((list != NULL) && (pred != NULL)); if (slist_empty(list)) return NULL; for (slist_reset(list); list->current != NULL; slist_next(list)) if (pred(slist_current(list), item)) break; if (list->current != NULL) return list->current->item; /* Trouvé */ else return NULL; /* Pas trouvé */ }
void obj_start(char *srcfile) { //printf("obj_start()\n"); rtlsym_reset(); slist_reset(); clearStringTab(); obj_init(&objbuf, srcfile, NULL); el_reset(); cg87_reset(); out_reset(); }
void obj_start(char *srcfile) { //printf("obj_start()\n"); rtlsym_reset(); slist_reset(); clearStringTab(); #if TARGET_WINDOS // Produce Ms COFF files for 64 bit code, OMF for 32 bit code assert(objbuf.size() == 0); objmod = global.params.mscoff ? MsCoffObj::init(&objbuf, srcfile, NULL) : Obj::init(&objbuf, srcfile, NULL); #else objmod = Obj::init(&objbuf, srcfile, NULL); #endif el_reset(); #if TX86 cg87_reset(); #endif out_reset(); }