From: yui-knk Date: Thu, 28 Dec 2023 02:52:50 +0000 (+0900) Subject: Add errno_ptr property for Universal Parser X-Git-Tag: v3_4_0_preview1~3165 X-Git-Url: https://repo.or.cz/ruby.git/commitdiff_plain/4374236e959c1e585611acfc7a2e3d2142265ab0 Add errno_ptr property for Universal Parser --- diff --git a/ruby_parser.c b/ruby_parser.c index 68d45768be..844dbbaa6a 100644 --- a/ruby_parser.c +++ b/ruby_parser.c @@ -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; diff --git a/rubyparser.h b/rubyparser.h index 0add750038..e6a0a6bc8d 100644 --- a/rubyparser.h +++ b/rubyparser.h @@ -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); diff --git a/universal_parser.c b/universal_parser.c index 8fc358b14a..61acaf7e05 100644 --- a/universal_parser.c +++ b/universal_parser.c @@ -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