/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1985-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* David Korn <[email protected]> *18* Phong Vo <[email protected]> *19* *20***********************************************************************/21#pragma prototyped22/*23* Glenn Fowler24* AT&T Research25*26* hash table library27*/2829#include "hashlib.h"3031/*32* apply walker to each active bucket in the table33*/3435int36hashwalk(Hash_table_t* tab, int flags, register int (*walker)(const char*, char*, void*), void* handle)37{38register Hash_bucket_t* b;39register int v;40Hash_position_t* pos;4142if (!(pos = hashscan(tab, flags)))43return(-1);44v = 0;45while (b = hashnext(pos))46if ((v = (*walker)(hashname(b), (tab->flags & HASH_VALUE) ? b->value : (char*)b, handle)) < 0)47break;48hashdone(pos);49return(v);50}515253