summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-02-22 12:01:41 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-02-22 13:24:27 +0900
commit4e32a4ab81d510b1cb3cd45f7faafc917aa071cc (patch)
tree44fa6203c07b9daf76176d816286d4b97e413f33 /win32
parenta7dda449e843ab1c208ba4d1bdbe269271fe66d2 (diff)
Search subclasses from constants
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/4209
Diffstat (limited to 'win32')
-rwxr-xr-xwin32/mkexports.rb9
1 files changed, 3 insertions, 6 deletions
diff --git a/win32/mkexports.rb b/win32/mkexports.rb
index 3c535211a9..70b7f3f228 100755
--- a/win32/mkexports.rb
+++ b/win32/mkexports.rb
@@ -9,14 +9,11 @@ end
class Exports
PrivateNames = /(?:Init_|InitVM_|ruby_static_id_|threadptr|_ec_|DllMain\b)/
- @@subclass = []
- def self.inherited(klass)
- @@subclass << [/#{klass.name.sub(/.*::/, '').downcase}/i, klass]
- end
-
def self.create(*args, &block)
platform = RUBY_PLATFORM
- pat, klass = @@subclass.find {|p, k| p =~ platform}
+ klass = constants.find do |p|
+ break const_get(p) if platform.include?(p.to_s.downcase)
+ end
unless klass
raise ArgumentError, "unsupported platform: #{platform}"
end