> So I think > atomic_inc_uint(&(o)->m_ext.ext_refcnt); \ > should really be > atomic_inc_uint(&(o)->m_ext_ref->m_ext.ext_refcnt); \ > which, of course, is the same thing if MEXT_ISEMBEDDED(o) is true.
> Am I getting something wrong? Self-answer: Yes. m_ext is m_ext_ref->m_ext_storage, so the additional indirection is already performed.