Add errno_ptr property for Universal Parser

This commit is contained in:
yui-knk 2023-12-28 11:52:50 +09:00 коммит произвёл Yuichiro Kaneko
Родитель 02973b78f4
Коммит 4374236e95
3 изменённых файлов: 10 добавлений и 0 удалений

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

@ -450,6 +450,12 @@ ruby_verbose2(void)
return ruby_verbose;
}
static int *
rb_errno_ptr2(void)
{
return rb_errno_ptr();
}
static int
type_p(VALUE obj, int t)
{
@ -724,6 +730,7 @@ rb_parser_config_initialize(rb_parser_config_t *config)
config->bug = rb_bug;
config->fatal = rb_fatal;
config->verbose = ruby_verbose2;
config->errno_ptr = rb_errno_ptr2;
config->make_backtrace = rb_make_backtrace;

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

@ -1352,6 +1352,7 @@ typedef struct rb_parser_config_struct {
void (*bug)(const char *fmt, ...);
void (*fatal)(const char *fmt, ...);
VALUE (*verbose)(void);
int *(*errno_ptr)(void);
/* VM */
VALUE (*make_backtrace)(void);

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

@ -331,6 +331,8 @@ struct rb_imemo_tmpbuf_struct {
#define rb_fatal p->config->fatal
#undef ruby_verbose
#define ruby_verbose p->config->verbose()
#undef errno
#define errno (*p->config->errno_ptr())
#define rb_make_backtrace p->config->make_backtrace