diff --git a/lib/forwardable.rb b/lib/forwardable.rb index 5652e728642906..76267c2cd18c57 100644 --- a/lib/forwardable.rb +++ b/lib/forwardable.rb @@ -192,9 +192,7 @@ def def_instance_delegator(accessor, method, ali = method) # If it's not a class or module, it's an instance mod = Module === self ? self : singleton_class - ret = mod.module_eval(&gen) - mod.__send__(:ruby2_keywords, ali) if RUBY_VERSION >= '2.7' - ret + mod.module_eval(&gen) end alias delegate instance_delegate @@ -211,7 +209,8 @@ def self._delegator_method(obj, accessor, method, ali) accessor = "#{accessor}()" end - method_call = ".__send__(:#{method}, *args, &block)" + args = RUBY_VERSION >= '2.7' ? '...' : '*args, &block' + method_call = ".__send__(:#{method}, #{args})" if _valid_method?(method) loc, = caller_locations(2,1) pre = "_ =" @@ -222,7 +221,7 @@ def self._delegator_method(obj, accessor, method, ali) ::Kernel.warn #{mesg.dump}"\#{_.class}"'##{method}', uplevel: 1 _#{method_call} else - _.#{method}(*args, &block) + _.#{method}(#{args}) end end; end @@ -230,7 +229,7 @@ def self._delegator_method(obj, accessor, method, ali) _compile_method("#{<<-"begin;"}\n#{<<-"end;"}", __FILE__, __LINE__+1) begin; proc do - def #{ali}(*args, &block) + def #{ali}(#{args}) #{pre} begin #{accessor} @@ -312,9 +311,7 @@ def def_single_delegators(accessor, *methods) def def_single_delegator(accessor, method, ali = method) gen = Forwardable._delegator_method(self, accessor, method, ali) - ret = instance_eval(&gen) - singleton_class.__send__(:ruby2_keywords, ali) if RUBY_VERSION >= '2.7' - ret + instance_eval(&gen) end alias delegate single_delegate diff --git a/process.c b/process.c index 8d6953282aaa41..e2ca6612d2d674 100644 --- a/process.c +++ b/process.c @@ -4012,8 +4012,8 @@ retry_fork_async_signal_safe(struct rb_process_status *status, int *ep, prefork(); disable_child_handler_before_fork(&old); - // Older versions of ASAN does not work with vfork - // See https://github.com/google/sanitizers/issues/925 + // Older versions of ASAN does not work with vfork + // See https://github.com/google/sanitizers/issues/925 #if defined(HAVE_WORKING_VFORK) && !defined(RUBY_ASAN_ENABLED) if (!has_privilege()) pid = vfork();