Avoid triggering warnings about strict-aliasing violations.
[ircu2.10.12-pk.git] / include / ircd_events.h
index 7524090a52f75fcdcf0c5127433b3a1a513c541d..f8148a887a8f47457b91e204ea85ba18b4fd4eb2 100644 (file)
@@ -202,9 +202,9 @@ struct Event {
 
 /** List of all event generators. */
 struct Generators {
-  struct Socket* g_socket;     /**< list of socket generators */
-  struct Signal* g_signal;     /**< list of signal generators */
-  struct Timer*         g_timer;       /**< list of timer generators */
+  struct GenHeader* g_socket;  /**< list of socket generators */
+  struct GenHeader* g_signal;  /**< list of signal generators */
+  struct GenHeader* g_timer;   /**< list of timer generators */
 };
 
 /** Returns 1 if successfully initialized, 0 if not.
@@ -284,7 +284,7 @@ void timer_del(struct Timer* timer);
 void timer_chg(struct Timer* timer, enum TimerType type, time_t value);
 void timer_run(void);
 /** Retrieve the next timer's expiration time from Generators \a gen. */
-#define timer_next(gen)        ((gen)->g_timer ? (gen)->g_timer->t_expire : 0)
+#define timer_next(gen)        ((gen)->g_timer ? ((struct Timer*)(gen)->g_timer)->t_expire : 0)
 
 void signal_add(struct Signal* signal, EventCallBack call, void* data,
                int sig);