From 00b63b1930300ddb1e40f3f16315c8d58c31543b Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Mon, 2 May 2022 13:06:31 +0200 Subject: Fixed undefined behaviour (but working) code in carc. --- include/stc/carc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/stc/carc.h b/include/stc/carc.h index 031c4f56..245ba708 100644 --- a/include/stc/carc.h +++ b/include/stc/carc.h @@ -130,7 +130,7 @@ STC_INLINE void _cx_memb(_drop)(_cx_self* self) { if (self->use_count && _i_atomic_dec_and_test(self->use_count)) { i_keydrop(self->get); - if (self->get != &((_cx_carc_rep *)self->use_count)->value) + if ((char *)self->get != (char *)self->use_count + offsetof(_cx_carc_rep, value)) c_free(self->get); c_free(self->use_count); } -- cgit v1.2.3