diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-06-27 16:15:01 -0700 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-06-28 14:39:28 +1000 |
commit | ab51e987cb8a9e9fce6af1eeb3b6309f8c11941f (patch) | |
tree | 26d34452aee4dff13ac8cdef51d59facc389370d /jim.h | |
parent | 6ad813f67cad987471e4ab607e69e5dbaa74082a (diff) | |
download | jimtcl-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.h | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -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) \ |