rb_execution_context_t: pack bits, 256 -> 252 bytes (on 32-bit)

Maybe execution contexts will become more common.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
normal 2018-10-19 20:56:10 +00:00
Родитель 98d0ccc86a
Коммит 62c3610583
2 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

@ -268,7 +268,7 @@ VALUE rb_get_message(VALUE exc);
void
rb_ec_error_print(rb_execution_context_t * volatile ec, volatile VALUE errinfo)
{
volatile int raised_flag = ec->raised_flag;
volatile uint8_t raised_flag = ec->raised_flag;
volatile VALUE errat = Qundef;
volatile VALUE emesg = Qundef;

Просмотреть файл

@ -845,8 +845,12 @@ typedef struct rb_execution_context_struct {
VALUE errinfo;
VALUE passed_block_handler; /* for rb_iterate */
const rb_callable_method_entry_t *passed_bmethod_me; /* for bmethod */
int raised_flag;
enum method_missing_reason method_missing_reason;
uint8_t raised_flag; /* only 3 bits needed */
/* n.b. only 7 bits needed, really: */
BITFIELD(enum method_missing_reason, method_missing_reason, 8);
VALUE private_const_reference;
/* for GC */