From: Eric Wong Date: 2014-09-09T09:50:25+00:00 Subject: [ruby-core:64892] Re: [ruby-trunk - Feature #10187] minor iseq memory reductions ko1@atdot.net wrote: > > Subject: [PATCH] iseq_inline_storage_entry: 24=>16 bytes on x86-64 > > > +#define RUNNING_THREAD_ONCE_DONE ((rb_thread_t *)(0x1)) > > How about to define macro such as > > #define ONCE_FINISHED(once) ((once)->running_thread == 0x01) > > and use as > > if (ONCE_FINIHSED(&is->once)) { ... } I would need another macro for setting 0x1: + is->once.running_thread = RUNNING_THREAD_ONCE_DONE; /* success */ I prefer to only introduce one new macro.