diff --git a/include/tr/interface/hashable.h b/include/tr/interface/hashable.h index 116334e..898e4d0 100644 --- a/include/tr/interface/hashable.h +++ b/include/tr/interface/hashable.h @@ -34,8 +34,21 @@ TR_INTERFACE(TR_Hashable) { fptr_TR_hashableHandleDouble handleDouble; }; -extern unsigned long TR_hashableGetHash(void *); -extern void TR_hashableHandleDouble(void *, void *); +inline +unsigned long +TR_hashableGetHash(void * hashable) +{ + unsigned long ret; + TR_RETCALL(hashable, TR_Hashable, getHash, ret); + return ret; +} + +inline +void +TR_hashableHandleDouble(void * hashable, void * new_hashable) +{ + TR_CALL(hashable, TR_Hashable, handleDouble, new_hashable); +} #endif // __TR_INTERFACE_HASHABLE_H__ diff --git a/include/tr/interface/iterable.h b/include/tr/interface/iterable.h index e74d5ca..0719283 100644 --- a/include/tr/interface/iterable.h +++ b/include/tr/interface/iterable.h @@ -42,10 +42,37 @@ TR_INTERFACE(TR_Iterable) { TR_iterableRewind((this)); \ for (; TR_iterableValid((this)); TR_iterableNext((this))) -extern void * TR_iterableCurrent(void *); -extern void TR_iterableNext(void *); -extern void TR_iterableRewind(void *); -extern int TR_iterableValid(void *); +inline +void * +TR_iterableCurrent(void * iterable) +{ + void * ret; + TR_RETCALL(iterable, TR_Iterable, current, ret); + return ret; +} + +inline +void +TR_iterableNext(void * iterable) +{ + TR_CALL(iterable, TR_Iterable, next); +} + +inline +void +TR_iterableRewind(void * iterable) +{ + TR_CALL(iterable, TR_Iterable, rewind); +} + +inline +int +TR_iterableValid(void * iterable) +{ + int ret; + TR_RETCALL(iterable, TR_Iterable, valid, ret); + return ret; +} #endif // __TR_INTERFACE_ITERABLE_H__ diff --git a/src/hash/interface/hashable.c b/src/hash/interface/hashable.c index 7de67da..68aa2f0 100644 --- a/src/hash/interface/hashable.c +++ b/src/hash/interface/hashable.c @@ -29,20 +29,7 @@ TR_CREATE_INTERFACE(TR_Hashable, 2); -unsigned long -TR_hashableGetHash(void * hashable) -{ - unsigned long ret; - - TR_RETCALL(hashable, TR_Hashable, getHash, ret); - - return ret; -} - -void -TR_hashableHandleDouble(void * hashable, void * new_hashable) -{ - TR_CALL(hashable, TR_Hashable, handleDouble, new_hashable); -} +extern inline unsigned long TR_hashableGetHash(void *); +extern inline void TR_hashableHandleDouble(void *, void *); // vim: set ts=4 sw=4: diff --git a/src/interface/iterable.c b/src/interface/iterable.c index 1cfd086..55d9c7b 100644 --- a/src/interface/iterable.c +++ b/src/interface/iterable.c @@ -25,32 +25,9 @@ TR_CREATE_INTERFACE(TR_Iterable, 4); -void * -TR_iterableCurrent(void * iterable) -{ - void * ret; - TR_RETCALL(iterable, TR_Iterable, current, ret); - return ret; -} - -void -TR_iterableNext(void * iterable) -{ - TR_CALL(iterable, TR_Iterable, next); -} - -void -TR_iterableRewind(void * iterable) -{ - TR_CALL(iterable, TR_Iterable, rewind); -} - -int -TR_iterableValid(void * iterable) -{ - int ret; - TR_RETCALL(iterable, TR_Iterable, valid, ret); - return ret; -} +extern inline void * TR_iterableCurrent(void *); +extern inline void TR_iterableNext(void *); +extern inline void TR_iterableRewind(void *); +extern inline int TR_iterableValid(void *); // vim: set ts=4 sw=4: