* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: refcount.h,v 1.3 2001/02/09 00:26:20 gson Exp $ */
+/* $Id: refcount.h,v 1.4 2003/07/24 06:41:20 marka Exp $ */
#ifndef ISC_REFCOUNT_H
#define ISC_REFCOUNT_H 1
#define isc_refcount_increment(rp, tp) \
do { \
+ unsigned int _tmp = (unsigned int *)(tp); \
LOCK(&(rp)->lock); \
REQUIRE((rp)->refs > 0); \
++((rp)->refs); \
- if ((tp) != NULL) \
- *(unsigned int *)(tp) = ((rp)->refs); \
+ if (_tmp != NULL) \
+ *_tmp = ((rp)->refs); \
UNLOCK(&(rp)->lock); \
} while (0)
#define isc_refcount_decrement(rp, tp) \
do { \
+ unsigned int _tmp = (unsigned int *)(tp); \
LOCK(&(rp)->lock); \
REQUIRE((rp)->refs > 0); \
--((rp)->refs); \
- if ((tp) != NULL) \
- *(unsigned int *)(tp) = ((rp)->refs); \
+ if (_tmp != NULL) \
+ *_tmp = ((rp)->refs); \
UNLOCK(&(rp)->lock); \
} while (0)