]> git.llucax.com Git - software/eventxx.git/blobdiff - eventxx
Fix inifinite recursion when using operator| for eventxx::type.
[software/eventxx.git] / eventxx
diff --git a/eventxx b/eventxx
index d599f6472f7350322042e7845845aa845f7f3757..c5f13d1480f8a41c4cb05af1d7ac767ea7cb3410 100644 (file)
--- a/eventxx
+++ b/eventxx
  *
  * @author Leandro Lucarella <llucax+eventxx@gmail.com>
  *
- * @version 0.2
+ * @version 0.3
  *
  * @par License
  * This program is under the BOLA license (see
@@ -416,7 +416,7 @@ enum type
 
 type operator| (const type& t1, const type& t2)
 {
-       int r = t1 | t2;
+       int r = static_cast< int >(t1) | static_cast< int >(t2);
        return *reinterpret_cast< type* >(&r);
 }
 
@@ -1007,7 +1007,7 @@ struct dispatcher
        protected:
                internal::event_base* _event_base;
                template < typename F >
-               static void wrapper(int fd, type ev, void* h)
+               static void wrapper(int fd, short ev, void* h)
                {
                        F& handler = *reinterpret_cast< F* >(h);
                        handler(fd, *reinterpret_cast< type* >(&ev));