summaryrefslogtreecommitdiff
path: root/include/libHX/defs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libHX/defs.h')
-rw-r--r--include/libHX/defs.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/libHX/defs.h b/include/libHX/defs.h
index 2ef5769..638ec15 100644
--- a/include/libHX/defs.h
+++ b/include/libHX/defs.h
@@ -18,10 +18,10 @@ template<typename Dst, typename Src> static inline auto containerof_cxx(Src *var
using K = typename std::is_const<typename std::remove_pointer<Src>::type>;
using Ch = typename std::conditional<K::value, const char, char>::type;
using D2 = typename std::conditional<K::value, const Dst, Dst>::type;
- return reinterpret_cast<D2 *>(reinterpret_cast<Ch *>(var) + ofs);
+ return reinterpret_cast<D2 *>(reinterpret_cast<Ch *>(var) - ofs);
}
}
-# define containerof(var, D1, member) containerof_cxx<D1>(var, -offsetof(D1, member))
+# define containerof(var, D1, member) containerof_cxx<D1>(var, offsetof(D1, member))
# endif
#else
# define HXsizeof_member(type, member) sizeof(((type *)NULL)->member)