From e788b4026fcd2d87cf70cd6b117f415399e7883e Mon Sep 17 00:00:00 2001 From: Daniel Grund Date: Tue, 7 Jun 2005 14:05:05 +0000 Subject: [PATCH] Added pmap_for_each iterator [r5968] --- ir/adt/pmap.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/ir/adt/pmap.h b/ir/adt/pmap.h index 7e66208ef..c157fcfbc 100644 --- a/ir/adt/pmap.h +++ b/ir/adt/pmap.h @@ -7,7 +7,7 @@ * Modified by: * Created: 09.06.2002 * CVS-ID: $Id$ - * Copyright: (c) 2002 Universität Karlsruhe + * Copyright: (c) 2002 Universit�t Karlsruhe * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. */ @@ -15,7 +15,7 @@ #define _PMAP_H_ /* Map die Adressen auf Adressen abbildet. Der Vergleich und das - * Hashen findet über die Adresse statt. */ + * Hashen findet �ber die Adresse statt. */ typedef struct pmap pmap; @@ -28,30 +28,33 @@ typedef struct pmap_entry { /* Erzeugt eine neue leere Map. */ pmap * pmap_create(void); -/* Löscht eine Map. */ +/* L�scht eine Map. */ void pmap_destroy(pmap *); -/* Fügt ein Paar (key,value) in die Map ein. Gibt es bereits einen +/* F�gt ein Paar (key,value) in die Map ein. Gibt es bereits einen * Eintrag mit "key" in er Map, so wird der entsprechende "value" - * überschrieben. */ + * �berschrieben. */ void pmap_insert(pmap *, void * key, void * value); -/* Prüft ob ein Eintrag zu "key" exisitiert. */ +/* Pr�ft ob ein Eintrag zu "key" exisitiert. */ int pmap_contains(pmap *, void * key); -/* Gibt den Eintrag zu "key" zurück. */ +/* Gibt den Eintrag zu "key" zur�ck. */ pmap_entry * pmap_find(pmap *, void * key); -/* Gibt für den Eintrag zu "key" den "value" zurück. */ +/* Gibt f�r den Eintrag zu "key" den "value" zur�ck. */ void * pmap_get(pmap *, void * key); /* Mit den Funktionen "pmap_first" und "pmap_next" kann man durch die * Map iterieren. Die Funktionen geben einen Zeiger auf einen Eintrag - * zurück (key,value). Die Funktionen geben "NULL" zurück, wenn kein + * zur�ck (key,value). Die Funktionen geben "NULL" zur�ck, wenn kein * weiterer Eintrag existiert. */ pmap_entry * pmap_first(pmap *); pmap_entry * pmap_next(pmap *); +#define pmap_foreach(pmap, curr) \ + for(curr=pmap_first(pmap); curr; curr=pmap_next(pmap)) + void pmap_break(pmap *map); #endif /* _PMAP_H_ */ -- 2.20.1