mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
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:
parent
f8d4758a26
commit
0bc19dddf5
@ -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) \
|
||||
|
Loading…
Reference in New Issue
Block a user