summaryrefslogtreecommitdiffhomepage
path: root/mrbgems
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-02-06 23:35:26 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2019-02-12 17:30:34 +0900
commit37bc343e0ad6b837de672c8c0cf6bf00876f746b (patch)
treece675d6f6f0c120586a6c082e877424946e07e1f /mrbgems
parent06ba5905f019ca1a8d8e498fe6dce7a94702c9ad (diff)
downloadmruby-37bc343e0ad6b837de672c8c0cf6bf00876f746b.tar.gz
mruby-37bc343e0ad6b837de672c8c0cf6bf00876f746b.zip
Disable `Symbol.all_symbols`.
Diffstat (limited to 'mrbgems')
-rw-r--r--mrbgems/mruby-symbol-ext/src/symbol.c9
-rw-r--r--mrbgems/mruby-symbol-ext/test/symbol.rb11
2 files changed, 11 insertions, 9 deletions
diff --git a/mrbgems/mruby-symbol-ext/src/symbol.c b/mrbgems/mruby-symbol-ext/src/symbol.c
index 05e7d5b91..ccb2971dc 100644
--- a/mrbgems/mruby-symbol-ext/src/symbol.c
+++ b/mrbgems/mruby-symbol-ext/src/symbol.c
@@ -3,11 +3,6 @@
#include <mruby/array.h>
#include <mruby/string.h>
-typedef struct symbol_name {
- size_t len;
- const char *name;
-} symbol_name;
-
/*
* call-seq:
* Symbol.all_symbols => array
@@ -23,6 +18,7 @@ typedef struct symbol_name {
* :Tms, :getwd, :$=, :ThreadGroup,
* :wait2, :$>]
*/
+#ifdef MRB_ENABLE_ALL_SYMBOLS
static mrb_value
mrb_sym_all_symbols(mrb_state *mrb, mrb_value self)
{
@@ -36,6 +32,7 @@ mrb_sym_all_symbols(mrb_state *mrb, mrb_value self)
return ary;
}
+#endif
/*
* call-seq:
@@ -61,7 +58,9 @@ void
mrb_mruby_symbol_ext_gem_init(mrb_state* mrb)
{
struct RClass *s = mrb->symbol_class;
+#ifdef MRB_ENABLE_ALL_SYMBOLS
mrb_define_class_method(mrb, s, "all_symbols", mrb_sym_all_symbols, MRB_ARGS_NONE());
+#endif
mrb_define_method(mrb, s, "length", mrb_sym_length, MRB_ARGS_NONE());
mrb_define_method(mrb, s, "size", mrb_sym_length, MRB_ARGS_NONE());
}
diff --git a/mrbgems/mruby-symbol-ext/test/symbol.rb b/mrbgems/mruby-symbol-ext/test/symbol.rb
index 2c7a62b0c..61ecad247 100644
--- a/mrbgems/mruby-symbol-ext/test/symbol.rb
+++ b/mrbgems/mruby-symbol-ext/test/symbol.rb
@@ -1,10 +1,13 @@
+# coding: utf-8
##
# Symbol(Ext) Test
-assert('Symbol.all_symbols') do
- foo = [:__symbol_test_1, :__symbol_test_2, :__symbol_test_3].sort
- symbols = Symbol.all_symbols.select{|sym|sym.to_s.include? '__symbol_test'}.sort
- assert_equal foo, symbols
+if Symbol.respond_to?(:all_symbols)
+ assert('Symbol.all_symbols') do
+ foo = [:__symbol_test_1, :__symbol_test_2, :__symbol_test_3].sort
+ symbols = Symbol.all_symbols.select{|sym|sym.to_s.include? '__symbol_test'}.sort
+ assert_equal foo, symbols
+ end
end
%w[size length].each do |n|