aboutsummaryrefslogtreecommitdiff
path: root/jim.h
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-06-27 16:15:01 -0700
committerSteve Bennett <steveb@workware.net.au>2011-06-28 14:39:28 +1000
commitab51e987cb8a9e9fce6af1eeb3b6309f8c11941f (patch)
tree26d34452aee4dff13ac8cdef51d59facc389370d /jim.h
parent6ad813f67cad987471e4ab607e69e5dbaa74082a (diff)
downloadjimtcl-ab51e987cb8a9e9fce6af1eeb3b6309f8c11941f.zip
jimtcl-ab51e987cb8a9e9fce6af1eeb3b6309f8c11941f.tar.gz
jimtcl-ab51e987cb8a9e9fce6af1eeb3b6309f8c11941f.tar.bz2
Don't try to store an int into a (void *)
Instead do it properly with a union Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.h')
-rw-r--r--jim.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/jim.h b/jim.h
index 71ad398..9f1520b 100644
--- a/jim.h
+++ b/jim.h
@@ -194,7 +194,10 @@ typedef struct Jim_Stack {
typedef struct Jim_HashEntry {
const void *key;
- void *val;
+ union {
+ void *val;
+ int intval;
+ } u;
struct Jim_HashEntry *next;
} Jim_HashEntry;
@@ -229,13 +232,13 @@ typedef struct Jim_HashTableIterator {
/* ------------------------------- Macros ------------------------------------*/
#define Jim_FreeEntryVal(ht, entry) \
if ((ht)->type->valDestructor) \
- (ht)->type->valDestructor((ht)->privdata, (entry)->val)
+ (ht)->type->valDestructor((ht)->privdata, (entry)->u.val)
#define Jim_SetHashVal(ht, entry, _val_) do { \
if ((ht)->type->valDup) \
- entry->val = (ht)->type->valDup((ht)->privdata, _val_); \
+ entry->u.val = (ht)->type->valDup((ht)->privdata, _val_); \
else \
- entry->val = (_val_); \
+ entry->u.val = (_val_); \
} while(0)
#define Jim_FreeEntryKey(ht, entry) \