diff options
Diffstat (limited to 'include/stc/cbox.h')
| -rw-r--r-- | include/stc/cbox.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/stc/cbox.h b/include/stc/cbox.h index bcb1b275..a0966fcc 100644 --- a/include/stc/cbox.h +++ b/include/stc/cbox.h @@ -77,7 +77,7 @@ typedef i_keyraw _cx_raw; _cx_deftypes(_c_cbox_types, _cx_self, i_key); #endif -// constructors (takes ownsership) +// constructors (take ownership) STC_INLINE _cx_self _cx_memb(_init)(void) { return c_INIT(_cx_self){NULL}; } @@ -110,6 +110,9 @@ STC_INLINE _cx_self _cx_memb(_move)(_cx_self* self) { return ptr; } +STC_INLINE _cx_value* _cx_memb(_release)(_cx_self* self) + { return _cx_memb(_move)(self).get; } + STC_INLINE void _cx_memb(_reset)(_cx_self* self) { _cx_memb(_drop)(self); self->get = NULL; @@ -117,8 +120,7 @@ STC_INLINE void _cx_memb(_reset)(_cx_self* self) { // take ownership of p STC_INLINE void _cx_memb(_reset_to)(_cx_self* self, _cx_value* p) { - if (self->get) - i_keydrop(self->get); + _cx_memb(_drop)(self); self->get = p; } |
