I added an inner loop inside the DS_MARK-DS_RELEASE macro :
// The inseparable pair :
#define DS_MARK \
do { \
datastack_mark_type mark_variable; \
DO_MARK(mark_variable); \
do {
// double-loop prevents break from skipping the release
#define DS_RELEASE \
} while(0); \
scan_destructors(mark_variable.destructor); \
DO_RELEASE(mark_variable); \
} while(0);
It only occurred to me that a break between the two macros would skip the release... now it's fixed.
Yann Guidon / YGDES
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.