Use INLINE (which we define) instead of __inline (which is nonstandard) in ht.h. Resolves bug 270; maybe sun C will work now.

svn:r6153
This commit is contained in:
Nick Mathewson 2006-03-13 15:09:49 +00:00
parent f8d4758a26
commit 0bc19dddf5

View File

@ -61,7 +61,7 @@
#define HT_CLEAR(name, head) name##_HT_CLEAR(head)
/* Helper: */
static __inline unsigned
static INLINE unsigned
ht_improve_hash(unsigned h)
{
/* Aim to protect against poor hash functions by adding logic here
@ -74,7 +74,7 @@ ht_improve_hash(unsigned h)
}
/** Basic string hash function, from Java standard String.hashCode(). */
static __inline unsigned
static INLINE unsigned
ht_string_hash(const char *s)
{
unsigned h = 0;
@ -103,7 +103,7 @@ ht_string_hash(const char *s)
int _##name##_HT_REP_OK(struct name *ht); \
/* Helper: returns a pointer to the right location in the table \
* 'head' to find or insert the element 'elm'. */ \
static __inline struct type ** \
static INLINE struct type ** \
_##name##_HT_FIND_P(struct name *head, struct type *elm) \
{ \
struct type **p; \
@ -119,7 +119,7 @@ ht_string_hash(const char *s)
} \
/* Return a pointer to the element in the table 'head' matching 'elm', \
* or NULL if no such element exists */ \
static __inline struct type * \
static INLINE struct type * \
name##_HT_FIND(struct name *head, struct type *elm) \
{ \
struct type **p; \
@ -129,7 +129,7 @@ ht_string_hash(const char *s)
} \
/* Insert the element 'elm' into the table 'head'. Do not call this \
* function if the table might already contain a matching element. */ \
static __inline void \
static INLINE void \
name##_HT_INSERT(struct name *head, struct type *elm) \
{ \
struct type **p; \
@ -144,7 +144,7 @@ ht_string_hash(const char *s)
/* Insert the element 'elm' into the table 'head'. If there already \
* a matching element in the table, replace that element and return \
* it. */ \
static __inline struct type * \
static INLINE struct type * \
name##_HT_REPLACE(struct name *head, struct type *elm) \
{ \
struct type **p, *r; \
@ -165,7 +165,7 @@ ht_string_hash(const char *s)
} \
/* Remove any element matching 'elm' from the table 'head'. If such \
* an element is found, return it; otherwise return NULL. */ \
static __inline struct type * \
static INLINE struct type * \
name##_HT_REMOVE(struct name *head, struct type *elm) \
{ \
struct type **p, *r; \
@ -183,7 +183,7 @@ ht_string_hash(const char *s)
* using 'data' as its second argument. If the function returns \
* nonzero, remove the most recently examined element before invoking \
* the function again. */ \
static __inline void \
static INLINE void \
name##_HT_FOREACH_FN(struct name *head, \
int (*fn)(struct type *, void *), \
void *data) \
@ -212,7 +212,7 @@ ht_string_hash(const char *s)
/* Return a pointer to the first element in the table 'head', under \
* an arbitrary order. This order is stable under remove operations, \
* but not under others. If the table is empty, return NULL. */ \
static __inline struct type ** \
static INLINE struct type ** \
name##_HT_START(struct name *head) \
{ \
unsigned b = 0; \
@ -228,7 +228,7 @@ ht_string_hash(const char *s)
* NULL. If 'elm' is to be removed from the table, you must call \
* this function for the next value before you remove it. \
*/ \
static __inline struct type ** \
static INLINE struct type ** \
name##_HT_NEXT(struct name *head, struct type **elm) \
{ \
if ((*elm)->field.hte_next) { \
@ -243,7 +243,7 @@ ht_string_hash(const char *s)
return NULL; \
} \
} \
static __inline struct type ** \
static INLINE struct type ** \
name##_HT_NEXT_RMV(struct name *head, struct type **elm) \
{ \
unsigned h = (*elm)->field.hte_hash; \
@ -272,7 +272,7 @@ ht_string_hash(const char *s)
unsigned hti_bucket; \
}
static __inline void \
static INLINE void \
name##_HT_ITER_START(struct name *head, struct type##_ITER *iter) \
{ \
/* XXXX Magic to stop modifications? */ \
@ -285,17 +285,17 @@ ht_string_hash(const char *s)
} \
iter->hti_nextp = NULL; \
} \
static __inline int \
static INLINE int \
name##_HT_ITER_DONE(struct name *head, struct type##_ITER *iter) \
{ \
return iter->hti_nextp == NULL; \
} \
static __inline struct type * \
static INLINE struct type * \
name##_HT_ITER_GET(struct name *head, struct type##_ITER *iter) \
{ \
return *iter->hti_nextp; \
} \
static __inline void \
static INLINE void \
name##_HT_ITER_NEXT(struct name *head, struct type##_ITER *iter) \
{ \
if (!iter->hti_nextp) \
@ -312,7 +312,7 @@ ht_string_hash(const char *s)
} \
iter->hti_nextp = NULL; \
} \
static __inline void \
static INLINE void \
name##_HT_ITER_NEXT_RMV(struct name *head, struct type##_ITER *iter) \
{ \
if (!iter->hti_nextp) \