script_core 0.2.6 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/enterprise_script_service/libseccomp/.travis.yml +21 -7
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +22 -0
- data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
- data/ext/enterprise_script_service/libseccomp/CREDITS +8 -0
- data/ext/enterprise_script_service/libseccomp/README.md +3 -1
- data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
- data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
- data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +12 -0
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
- data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
- data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
- data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
- data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
- data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
- data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
- data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
- data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
- data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
- data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
- data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +9 -2
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
- data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
- data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +31 -10
- data/ext/enterprise_script_service/libseccomp/tests/regression +6 -3
- data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
- data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +2 -0
- data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
- data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +51 -0
- data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
- data/ext/enterprise_script_service/mruby/README.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
- data/ext/enterprise_script_service/mruby/include/mruby.h +13 -0
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -1
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +13 -8
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +25 -29
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +17 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +9 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +6 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +5 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +5 -10
- data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
- data/ext/enterprise_script_service/mruby/src/array.c +14 -11
- data/ext/enterprise_script_service/mruby/src/class.c +22 -21
- data/ext/enterprise_script_service/mruby/src/error.c +1 -2
- data/ext/enterprise_script_service/mruby/src/etc.c +0 -1
- data/ext/enterprise_script_service/mruby/src/gc.c +5 -5
- data/ext/enterprise_script_service/mruby/src/hash.c +8 -15
- data/ext/enterprise_script_service/mruby/src/kernel.c +4 -7
- data/ext/enterprise_script_service/mruby/src/numeric.c +28 -60
- data/ext/enterprise_script_service/mruby/src/object.c +11 -1
- data/ext/enterprise_script_service/mruby/src/proc.c +7 -8
- data/ext/enterprise_script_service/mruby/src/range.c +4 -12
- data/ext/enterprise_script_service/mruby/src/string.c +24 -21
- data/ext/enterprise_script_service/mruby/src/symbol.c +1 -2
- data/ext/enterprise_script_service/mruby/src/vm.c +28 -24
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +7 -0
- data/lib/script_core/version.rb +1 -1
- metadata +45 -21
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -642
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -642
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
|
@@ -599,13 +599,12 @@ mrb_dup(mrb_state *mrb, int fd, mrb_bool *failed)
|
|
|
599
599
|
static mrb_value
|
|
600
600
|
mrb_io_initialize_copy(mrb_state *mrb, mrb_value copy)
|
|
601
601
|
{
|
|
602
|
-
mrb_value orig;
|
|
602
|
+
mrb_value orig = mrb_get_arg1(mrb);
|
|
603
603
|
mrb_value buf;
|
|
604
604
|
struct mrb_io *fptr_copy;
|
|
605
605
|
struct mrb_io *fptr_orig;
|
|
606
606
|
mrb_bool failed = TRUE;
|
|
607
607
|
|
|
608
|
-
mrb_get_args(mrb, "o", &orig);
|
|
609
608
|
fptr_orig = io_get_open_fptr(mrb, orig);
|
|
610
609
|
fptr_copy = (struct mrb_io *)DATA_PTR(copy);
|
|
611
610
|
if (fptr_orig == fptr_copy) return copy;
|
|
@@ -128,9 +128,8 @@ mrb_f_integer(mrb_state *mrb, mrb_value self)
|
|
|
128
128
|
static mrb_value
|
|
129
129
|
mrb_f_float(mrb_state *mrb, mrb_value self)
|
|
130
130
|
{
|
|
131
|
-
mrb_value arg;
|
|
131
|
+
mrb_value arg = mrb_get_arg1(mrb);
|
|
132
132
|
|
|
133
|
-
mrb_get_args(mrb, "o", &arg);
|
|
134
133
|
return mrb_Float(mrb, arg);
|
|
135
134
|
}
|
|
136
135
|
#endif
|
|
@@ -149,9 +148,9 @@ mrb_f_float(mrb_state *mrb, mrb_value self)
|
|
|
149
148
|
static mrb_value
|
|
150
149
|
mrb_f_string(mrb_state *mrb, mrb_value self)
|
|
151
150
|
{
|
|
152
|
-
mrb_value arg
|
|
151
|
+
mrb_value arg = mrb_get_arg1(mrb);
|
|
152
|
+
mrb_value tmp;
|
|
153
153
|
|
|
154
|
-
mrb_get_args(mrb, "o", &arg);
|
|
155
154
|
tmp = mrb_convert_type(mrb, arg, MRB_TT_STRING, "String", "to_s");
|
|
156
155
|
return tmp;
|
|
157
156
|
}
|
|
@@ -168,9 +167,9 @@ mrb_f_string(mrb_state *mrb, mrb_value self)
|
|
|
168
167
|
static mrb_value
|
|
169
168
|
mrb_f_array(mrb_state *mrb, mrb_value self)
|
|
170
169
|
{
|
|
171
|
-
mrb_value arg
|
|
170
|
+
mrb_value arg = mrb_get_arg1(mrb);
|
|
171
|
+
mrb_value tmp;
|
|
172
172
|
|
|
173
|
-
mrb_get_args(mrb, "o", &arg);
|
|
174
173
|
tmp = mrb_check_convert_type(mrb, arg, MRB_TT_ARRAY, "Array", "to_a");
|
|
175
174
|
if (mrb_nil_p(tmp)) {
|
|
176
175
|
return mrb_ary_new_from_values(mrb, 1, &arg);
|
|
@@ -196,9 +195,8 @@ mrb_f_array(mrb_state *mrb, mrb_value self)
|
|
|
196
195
|
static mrb_value
|
|
197
196
|
mrb_f_hash(mrb_state *mrb, mrb_value self)
|
|
198
197
|
{
|
|
199
|
-
mrb_value arg;
|
|
198
|
+
mrb_value arg = mrb_get_arg1(mrb);
|
|
200
199
|
|
|
201
|
-
mrb_get_args(mrb, "o", &arg);
|
|
202
200
|
if (mrb_nil_p(arg) || (mrb_array_p(arg) && RARRAY_LEN(arg) == 0)) {
|
|
203
201
|
return mrb_hash_new(mrb);
|
|
204
202
|
}
|
|
@@ -33,9 +33,8 @@ unbound_method_bind(mrb_state *mrb, mrb_value self)
|
|
|
33
33
|
mrb_value name = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_name"));
|
|
34
34
|
mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_proc"));
|
|
35
35
|
mrb_value klass = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_klass"));
|
|
36
|
-
mrb_value recv;
|
|
36
|
+
mrb_value recv = mrb_get_arg1(mrb);
|
|
37
37
|
|
|
38
|
-
mrb_get_args(mrb, "o", &recv);
|
|
39
38
|
bind_check(mrb, recv, owner);
|
|
40
39
|
me = method_object_alloc(mrb, mrb_class_get(mrb, "Method"));
|
|
41
40
|
mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_owner"), owner);
|
|
@@ -51,11 +50,11 @@ unbound_method_bind(mrb_state *mrb, mrb_value self)
|
|
|
51
50
|
static mrb_value
|
|
52
51
|
method_eql(mrb_state *mrb, mrb_value self)
|
|
53
52
|
{
|
|
54
|
-
mrb_value other
|
|
53
|
+
mrb_value other = mrb_get_arg1(mrb);
|
|
54
|
+
mrb_value receiver, orig_proc, other_proc;
|
|
55
55
|
struct RClass *owner, *klass;
|
|
56
56
|
struct RProc *orig_rproc, *other_rproc;
|
|
57
57
|
|
|
58
|
-
mrb_get_args(mrb, "o", &other);
|
|
59
58
|
if (!mrb_obj_is_instance_of(mrb, other, mrb_class(mrb, self)))
|
|
60
59
|
return mrb_false_value();
|
|
61
60
|
|
|
@@ -34,12 +34,10 @@ r_lt(mrb_state *mrb, mrb_value a, mrb_value b)
|
|
|
34
34
|
static mrb_value
|
|
35
35
|
range_cover(mrb_state *mrb, mrb_value range)
|
|
36
36
|
{
|
|
37
|
-
mrb_value val;
|
|
38
37
|
struct RRange *r = mrb_range_ptr(mrb, range);
|
|
38
|
+
mrb_value val = mrb_get_arg1(mrb);
|
|
39
39
|
mrb_value beg, end;
|
|
40
40
|
|
|
41
|
-
mrb_get_args(mrb, "o", &val);
|
|
42
|
-
|
|
43
41
|
beg = RANGE_BEG(r);
|
|
44
42
|
end = RANGE_END(r);
|
|
45
43
|
|
|
@@ -91,8 +91,8 @@ def Rational(numerator, denominator = 1)
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
[:+, :-, :*, :/, :<=>, :==, :<, :<=, :>, :>=].each do |op|
|
|
94
|
+
original_operator_name = :"__original_operator_#{op}_rational"
|
|
94
95
|
Fixnum.instance_eval do
|
|
95
|
-
original_operator_name = "__original_operator_#{op}_rational"
|
|
96
96
|
alias_method original_operator_name, op
|
|
97
97
|
define_method op do |rhs|
|
|
98
98
|
if rhs.is_a? Rational
|
|
@@ -103,7 +103,6 @@ def Rational(numerator, denominator = 1)
|
|
|
103
103
|
end
|
|
104
104
|
end
|
|
105
105
|
Float.instance_eval do
|
|
106
|
-
original_operator_name = "__original_operator_#{op}_rational"
|
|
107
106
|
alias_method original_operator_name, op
|
|
108
107
|
define_method op do |rhs|
|
|
109
108
|
if rhs.is_a? Rational
|
|
@@ -114,4 +113,3 @@ def Rational(numerator, denominator = 1)
|
|
|
114
113
|
end if Object.const_defined?(:Float)
|
|
115
114
|
end
|
|
116
115
|
end
|
|
117
|
-
|
|
@@ -842,7 +842,7 @@ retry:
|
|
|
842
842
|
case 'B':
|
|
843
843
|
case 'u': {
|
|
844
844
|
mrb_value val = GETARG();
|
|
845
|
-
char nbuf[
|
|
845
|
+
char nbuf[69], *s;
|
|
846
846
|
const char *prefix = NULL;
|
|
847
847
|
int sign = 0, dots = 0;
|
|
848
848
|
char sc = 0;
|
|
@@ -914,7 +914,7 @@ retry:
|
|
|
914
914
|
width--;
|
|
915
915
|
}
|
|
916
916
|
mrb_assert(base == 10);
|
|
917
|
-
mrb_int2str(nbuf, sizeof(nbuf), v);
|
|
917
|
+
mrb_int2str(nbuf, sizeof(nbuf)-1, v);
|
|
918
918
|
s = nbuf;
|
|
919
919
|
if (v < 0) s++; /* skip minus sign */
|
|
920
920
|
}
|
|
@@ -927,7 +927,7 @@ retry:
|
|
|
927
927
|
else {
|
|
928
928
|
val = mrb_fixnum_to_str(mrb, mrb_fixnum_value(v), base);
|
|
929
929
|
}
|
|
930
|
-
strncpy(++s, RSTRING_PTR(val), sizeof(nbuf)-
|
|
930
|
+
strncpy(++s, RSTRING_PTR(val), sizeof(nbuf)-2);
|
|
931
931
|
if (v < 0) {
|
|
932
932
|
char d;
|
|
933
933
|
|
|
@@ -164,9 +164,8 @@ mrb_str_swapcase(mrb_state *mrb, mrb_value self)
|
|
|
164
164
|
static mrb_value
|
|
165
165
|
mrb_str_concat_m(mrb_state *mrb, mrb_value self)
|
|
166
166
|
{
|
|
167
|
-
mrb_value str;
|
|
167
|
+
mrb_value str = mrb_get_arg1(mrb);
|
|
168
168
|
|
|
169
|
-
mrb_get_args(mrb, "o", &str);
|
|
170
169
|
if (mrb_fixnum_p(str) || mrb_float_p(str))
|
|
171
170
|
#ifdef MRB_UTF8_STRING
|
|
172
171
|
str = int_chr_utf8(mrb, str);
|
|
@@ -154,9 +154,8 @@ mrb_struct_set_m(mrb_state *mrb, mrb_value obj)
|
|
|
154
154
|
{
|
|
155
155
|
mrb_int i = mrb_fixnum(mrb_proc_cfunc_env_get(mrb, 0));
|
|
156
156
|
mrb_value *ptr;
|
|
157
|
-
mrb_value val;
|
|
157
|
+
mrb_value val = mrb_get_arg1(mrb);
|
|
158
158
|
|
|
159
|
-
mrb_get_args(mrb, "o", &val);
|
|
160
159
|
mrb_struct_modify(mrb, obj);
|
|
161
160
|
ptr = RSTRUCT_PTR(obj);
|
|
162
161
|
if (ptr == NULL || i >= RSTRUCT_LEN(obj)) {
|
|
@@ -356,9 +355,7 @@ mrb_struct_initialize(mrb_state *mrb, mrb_value self)
|
|
|
356
355
|
static mrb_value
|
|
357
356
|
mrb_struct_init_copy(mrb_state *mrb, mrb_value copy)
|
|
358
357
|
{
|
|
359
|
-
mrb_value s;
|
|
360
|
-
|
|
361
|
-
mrb_get_args(mrb, "o", &s);
|
|
358
|
+
mrb_value s = mrb_get_arg1(mrb);
|
|
362
359
|
|
|
363
360
|
if (mrb_obj_equal(mrb, copy, s)) return copy;
|
|
364
361
|
if (!mrb_obj_is_instance_of(mrb, s, mrb_obj_class(mrb, copy))) {
|
|
@@ -428,9 +425,8 @@ struct_aref_int(mrb_state *mrb, mrb_value s, mrb_int i)
|
|
|
428
425
|
static mrb_value
|
|
429
426
|
mrb_struct_aref(mrb_state *mrb, mrb_value s)
|
|
430
427
|
{
|
|
431
|
-
mrb_value idx;
|
|
428
|
+
mrb_value idx = mrb_get_arg1(mrb);
|
|
432
429
|
|
|
433
|
-
mrb_get_args(mrb, "o", &idx);
|
|
434
430
|
if (mrb_string_p(idx)) {
|
|
435
431
|
mrb_value sym = mrb_check_intern_str(mrb, idx);
|
|
436
432
|
|
|
@@ -545,11 +541,10 @@ mrb_struct_aset(mrb_state *mrb, mrb_value s)
|
|
|
545
541
|
static mrb_value
|
|
546
542
|
mrb_struct_equal(mrb_state *mrb, mrb_value s)
|
|
547
543
|
{
|
|
548
|
-
mrb_value s2;
|
|
544
|
+
mrb_value s2 = mrb_get_arg1(mrb);
|
|
549
545
|
mrb_value *ptr, *ptr2;
|
|
550
546
|
mrb_int i, len;
|
|
551
547
|
|
|
552
|
-
mrb_get_args(mrb, "o", &s2);
|
|
553
548
|
if (mrb_obj_equal(mrb, s, s2)) {
|
|
554
549
|
return mrb_true_value();
|
|
555
550
|
}
|
|
@@ -582,11 +577,10 @@ mrb_struct_equal(mrb_state *mrb, mrb_value s)
|
|
|
582
577
|
static mrb_value
|
|
583
578
|
mrb_struct_eql(mrb_state *mrb, mrb_value s)
|
|
584
579
|
{
|
|
585
|
-
mrb_value s2;
|
|
580
|
+
mrb_value s2 = mrb_get_arg1(mrb);
|
|
586
581
|
mrb_value *ptr, *ptr2;
|
|
587
582
|
mrb_int i, len;
|
|
588
583
|
|
|
589
|
-
mrb_get_args(mrb, "o", &s2);
|
|
590
584
|
if (mrb_obj_equal(mrb, s, s2)) {
|
|
591
585
|
return mrb_true_value();
|
|
592
586
|
}
|
|
@@ -515,11 +515,10 @@ time_get_ptr(mrb_state *mrb, mrb_value time)
|
|
|
515
515
|
static mrb_value
|
|
516
516
|
mrb_time_eq(mrb_state *mrb, mrb_value self)
|
|
517
517
|
{
|
|
518
|
-
mrb_value other;
|
|
518
|
+
mrb_value other = mrb_get_arg1(mrb);
|
|
519
519
|
struct mrb_time *tm1, *tm2;
|
|
520
520
|
mrb_bool eq_p;
|
|
521
521
|
|
|
522
|
-
mrb_get_args(mrb, "o", &other);
|
|
523
522
|
tm1 = DATA_GET_PTR(mrb, self, &mrb_time_type, struct mrb_time);
|
|
524
523
|
tm2 = DATA_CHECK_GET_PTR(mrb, other, &mrb_time_type, struct mrb_time);
|
|
525
524
|
eq_p = tm1 && tm2 && tm1->sec == tm2->sec && tm1->usec == tm2->usec;
|
|
@@ -530,10 +529,9 @@ mrb_time_eq(mrb_state *mrb, mrb_value self)
|
|
|
530
529
|
static mrb_value
|
|
531
530
|
mrb_time_cmp(mrb_state *mrb, mrb_value self)
|
|
532
531
|
{
|
|
533
|
-
mrb_value other;
|
|
532
|
+
mrb_value other = mrb_get_arg1(mrb);
|
|
534
533
|
struct mrb_time *tm1, *tm2;
|
|
535
534
|
|
|
536
|
-
mrb_get_args(mrb, "o", &other);
|
|
537
535
|
tm1 = DATA_GET_PTR(mrb, self, &mrb_time_type, struct mrb_time);
|
|
538
536
|
tm2 = DATA_CHECK_GET_PTR(mrb, other, &mrb_time_type, struct mrb_time);
|
|
539
537
|
if (!tm1 || !tm2) return mrb_nil_value();
|
|
@@ -556,11 +554,10 @@ mrb_time_cmp(mrb_state *mrb, mrb_value self)
|
|
|
556
554
|
static mrb_value
|
|
557
555
|
mrb_time_plus(mrb_state *mrb, mrb_value self)
|
|
558
556
|
{
|
|
559
|
-
mrb_value o;
|
|
557
|
+
mrb_value o = mrb_get_arg1(mrb);
|
|
560
558
|
struct mrb_time *tm;
|
|
561
559
|
time_t sec, usec;
|
|
562
560
|
|
|
563
|
-
mrb_get_args(mrb, "o", &o);
|
|
564
561
|
tm = time_get_ptr(mrb, self);
|
|
565
562
|
sec = mrb_to_time_t(mrb, o, &usec);
|
|
566
563
|
return mrb_time_make_time(mrb, mrb_obj_class(mrb, self), tm->sec+sec, tm->usec+usec, tm->timezone);
|
|
@@ -569,10 +566,9 @@ mrb_time_plus(mrb_state *mrb, mrb_value self)
|
|
|
569
566
|
static mrb_value
|
|
570
567
|
mrb_time_minus(mrb_state *mrb, mrb_value self)
|
|
571
568
|
{
|
|
572
|
-
mrb_value other;
|
|
569
|
+
mrb_value other = mrb_get_arg1(mrb);
|
|
573
570
|
struct mrb_time *tm, *tm2;
|
|
574
571
|
|
|
575
|
-
mrb_get_args(mrb, "o", &other);
|
|
576
572
|
tm = time_get_ptr(mrb, self);
|
|
577
573
|
tm2 = DATA_CHECK_GET_PTR(mrb, other, &mrb_time_type, struct mrb_time);
|
|
578
574
|
if (tm2) {
|
|
@@ -770,10 +766,9 @@ mrb_time_initialize(mrb_state *mrb, mrb_value self)
|
|
|
770
766
|
static mrb_value
|
|
771
767
|
mrb_time_initialize_copy(mrb_state *mrb, mrb_value copy)
|
|
772
768
|
{
|
|
773
|
-
mrb_value src;
|
|
769
|
+
mrb_value src = mrb_get_arg1(mrb);
|
|
774
770
|
struct mrb_time *t1, *t2;
|
|
775
771
|
|
|
776
|
-
mrb_get_args(mrb, "o", &src);
|
|
777
772
|
if (mrb_obj_equal(mrb, copy, src)) return copy;
|
|
778
773
|
if (!mrb_obj_is_instance_of(mrb, src, mrb_obj_class(mrb, copy))) {
|
|
779
774
|
mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class");
|
|
@@ -866,10 +866,12 @@ static mrb_value
|
|
|
866
866
|
mrb_ary_aget(mrb_state *mrb, mrb_value self)
|
|
867
867
|
{
|
|
868
868
|
struct RArray *a = mrb_ary_ptr(self);
|
|
869
|
-
mrb_int i
|
|
869
|
+
mrb_int i;
|
|
870
|
+
mrb_int len, alen;
|
|
870
871
|
mrb_value index;
|
|
871
872
|
|
|
872
|
-
if (
|
|
873
|
+
if (mrb_get_argc(mrb) == 1) {
|
|
874
|
+
index = mrb_get_arg1(mrb);
|
|
873
875
|
switch (mrb_type(index)) {
|
|
874
876
|
/* a[n..m] */
|
|
875
877
|
case MRB_TT_RANGE:
|
|
@@ -886,6 +888,7 @@ mrb_ary_aget(mrb_state *mrb, mrb_value self)
|
|
|
886
888
|
}
|
|
887
889
|
}
|
|
888
890
|
|
|
891
|
+
mrb_get_args(mrb, "oi", &index, &len);
|
|
889
892
|
i = aget_index(mrb, index);
|
|
890
893
|
alen = ARY_LEN(a);
|
|
891
894
|
if (i < 0) i += alen;
|
|
@@ -939,7 +942,10 @@ mrb_ary_aset(mrb_state *mrb, mrb_value self)
|
|
|
939
942
|
mrb_int i, len;
|
|
940
943
|
|
|
941
944
|
mrb_ary_modify(mrb, mrb_ary_ptr(self));
|
|
942
|
-
if (
|
|
945
|
+
if (mrb_get_argc(mrb) == 2) {
|
|
946
|
+
mrb_value *vs = mrb_get_argv(mrb);
|
|
947
|
+
v1 = vs[0]; v2 = vs[1];
|
|
948
|
+
|
|
943
949
|
/* a[n..m] = v */
|
|
944
950
|
switch (mrb_range_beg_len(mrb, v1, &i, &len, RARRAY_LEN(self), FALSE)) {
|
|
945
951
|
case MRB_RANGE_TYPE_MISMATCH:
|
|
@@ -955,6 +961,7 @@ mrb_ary_aset(mrb_state *mrb, mrb_value self)
|
|
|
955
961
|
return v2;
|
|
956
962
|
}
|
|
957
963
|
|
|
964
|
+
mrb_get_args(mrb, "ooo", &v1, &v2, &v3);
|
|
958
965
|
/* a[n,m] = v */
|
|
959
966
|
mrb_ary_splice(mrb, self, aget_index(mrb, v1), aget_index(mrb, v2), v3);
|
|
960
967
|
return v3;
|
|
@@ -1038,10 +1045,9 @@ mrb_ary_last(mrb_state *mrb, mrb_value self)
|
|
|
1038
1045
|
static mrb_value
|
|
1039
1046
|
mrb_ary_index_m(mrb_state *mrb, mrb_value self)
|
|
1040
1047
|
{
|
|
1041
|
-
mrb_value obj;
|
|
1048
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
1042
1049
|
mrb_int i;
|
|
1043
1050
|
|
|
1044
|
-
mrb_get_args(mrb, "o", &obj);
|
|
1045
1051
|
for (i = 0; i < RARRAY_LEN(self); i++) {
|
|
1046
1052
|
if (mrb_equal(mrb, RARRAY_PTR(self)[i], obj)) {
|
|
1047
1053
|
return mrb_fixnum_value(i);
|
|
@@ -1053,10 +1059,9 @@ mrb_ary_index_m(mrb_state *mrb, mrb_value self)
|
|
|
1053
1059
|
static mrb_value
|
|
1054
1060
|
mrb_ary_rindex_m(mrb_state *mrb, mrb_value self)
|
|
1055
1061
|
{
|
|
1056
|
-
mrb_value obj;
|
|
1062
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
1057
1063
|
mrb_int i, len;
|
|
1058
1064
|
|
|
1059
|
-
mrb_get_args(mrb, "o", &obj);
|
|
1060
1065
|
for (i = RARRAY_LEN(self) - 1; i >= 0; i--) {
|
|
1061
1066
|
if (mrb_equal(mrb, RARRAY_PTR(self)[i], obj)) {
|
|
1062
1067
|
return mrb_fixnum_value(i);
|
|
@@ -1230,9 +1235,8 @@ mrb_ary_join_m(mrb_state *mrb, mrb_value ary)
|
|
|
1230
1235
|
static mrb_value
|
|
1231
1236
|
mrb_ary_eq(mrb_state *mrb, mrb_value ary1)
|
|
1232
1237
|
{
|
|
1233
|
-
mrb_value ary2;
|
|
1238
|
+
mrb_value ary2 = mrb_get_arg1(mrb);
|
|
1234
1239
|
|
|
1235
|
-
mrb_get_args(mrb, "o", &ary2);
|
|
1236
1240
|
if (mrb_obj_equal(mrb, ary1, ary2)) return mrb_true_value();
|
|
1237
1241
|
if (!mrb_array_p(ary2)) {
|
|
1238
1242
|
return mrb_false_value();
|
|
@@ -1245,9 +1249,8 @@ mrb_ary_eq(mrb_state *mrb, mrb_value ary1)
|
|
|
1245
1249
|
static mrb_value
|
|
1246
1250
|
mrb_ary_cmp(mrb_state *mrb, mrb_value ary1)
|
|
1247
1251
|
{
|
|
1248
|
-
mrb_value ary2;
|
|
1252
|
+
mrb_value ary2 = mrb_get_arg1(mrb);
|
|
1249
1253
|
|
|
1250
|
-
mrb_get_args(mrb, "o", &ary2);
|
|
1251
1254
|
if (mrb_obj_equal(mrb, ary1, ary2)) return mrb_fixnum_value(0);
|
|
1252
1255
|
if (!mrb_array_p(ary2)) {
|
|
1253
1256
|
return mrb_nil_value();
|
|
@@ -549,6 +549,23 @@ mrb_get_argv(mrb_state *mrb)
|
|
|
549
549
|
return array_argv;
|
|
550
550
|
}
|
|
551
551
|
|
|
552
|
+
MRB_API mrb_value
|
|
553
|
+
mrb_get_arg1(mrb_state *mrb)
|
|
554
|
+
{
|
|
555
|
+
mrb_int argc = mrb->c->ci->argc;
|
|
556
|
+
mrb_value *array_argv = mrb->c->stack + 1;
|
|
557
|
+
if (argc < 0) {
|
|
558
|
+
struct RArray *a = mrb_ary_ptr(*array_argv);
|
|
559
|
+
|
|
560
|
+
argc = ARY_LEN(a);
|
|
561
|
+
array_argv = ARY_PTR(a);
|
|
562
|
+
}
|
|
563
|
+
if (argc != 1) {
|
|
564
|
+
mrb_raise(mrb, E_ARGUMENT_ERROR, "wrong number of arguments");
|
|
565
|
+
}
|
|
566
|
+
return array_argv[0];
|
|
567
|
+
}
|
|
568
|
+
|
|
552
569
|
void mrb_hash_check_kdict(mrb_state *mrb, mrb_value self);
|
|
553
570
|
|
|
554
571
|
/*
|
|
@@ -1212,10 +1229,9 @@ mrb_mod_ancestors(mrb_state *mrb, mrb_value self)
|
|
|
1212
1229
|
static mrb_value
|
|
1213
1230
|
mrb_mod_extend_object(mrb_state *mrb, mrb_value mod)
|
|
1214
1231
|
{
|
|
1215
|
-
mrb_value obj;
|
|
1232
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
1216
1233
|
|
|
1217
1234
|
mrb_check_type(mrb, mod, MRB_TT_MODULE);
|
|
1218
|
-
mrb_get_args(mrb, "o", &obj);
|
|
1219
1235
|
mrb_include_module(mrb, mrb_class_ptr(mrb_singleton_class(mrb, obj)), mrb_class_ptr(mod));
|
|
1220
1236
|
return mod;
|
|
1221
1237
|
}
|
|
@@ -1493,9 +1509,8 @@ static mrb_value
|
|
|
1493
1509
|
attr_writer(mrb_state *mrb, mrb_value obj)
|
|
1494
1510
|
{
|
|
1495
1511
|
mrb_value name = mrb_proc_cfunc_env_get(mrb, 0);
|
|
1496
|
-
mrb_value val;
|
|
1512
|
+
mrb_value val = mrb_get_arg1(mrb);
|
|
1497
1513
|
|
|
1498
|
-
mrb_get_args(mrb, "o", &val);
|
|
1499
1514
|
mrb_iv_set(mrb, obj, to_sym(mrb, name), val);
|
|
1500
1515
|
return val;
|
|
1501
1516
|
}
|
|
@@ -1663,21 +1678,11 @@ mrb_bob_not(mrb_state *mrb, mrb_value cv)
|
|
|
1663
1678
|
mrb_value
|
|
1664
1679
|
mrb_obj_equal_m(mrb_state *mrb, mrb_value self)
|
|
1665
1680
|
{
|
|
1666
|
-
mrb_value arg;
|
|
1681
|
+
mrb_value arg = mrb_get_arg1(mrb);
|
|
1667
1682
|
|
|
1668
|
-
mrb_get_args(mrb, "o", &arg);
|
|
1669
1683
|
return mrb_bool_value(mrb_obj_equal(mrb, self, arg));
|
|
1670
1684
|
}
|
|
1671
1685
|
|
|
1672
|
-
static mrb_value
|
|
1673
|
-
mrb_obj_not_equal_m(mrb_state *mrb, mrb_value self)
|
|
1674
|
-
{
|
|
1675
|
-
mrb_value arg;
|
|
1676
|
-
|
|
1677
|
-
mrb_get_args(mrb, "o", &arg);
|
|
1678
|
-
return mrb_bool_value(!mrb_equal(mrb, self, arg));
|
|
1679
|
-
}
|
|
1680
|
-
|
|
1681
1686
|
MRB_API mrb_bool
|
|
1682
1687
|
mrb_obj_respond_to(mrb_state *mrb, struct RClass* c, mrb_sym mid)
|
|
1683
1688
|
{
|
|
@@ -1975,13 +1980,11 @@ mrb_const_get_sym(mrb_state *mrb, mrb_value mod, mrb_sym id)
|
|
|
1975
1980
|
static mrb_value
|
|
1976
1981
|
mrb_mod_const_get(mrb_state *mrb, mrb_value mod)
|
|
1977
1982
|
{
|
|
1978
|
-
mrb_value path;
|
|
1983
|
+
mrb_value path = mrb_get_arg1(mrb);
|
|
1979
1984
|
mrb_sym id;
|
|
1980
1985
|
char *ptr;
|
|
1981
1986
|
mrb_int off, end, len;
|
|
1982
1987
|
|
|
1983
|
-
mrb_get_args(mrb, "o", &path);
|
|
1984
|
-
|
|
1985
1988
|
if (mrb_symbol_p(path)) {
|
|
1986
1989
|
/* const get with symbol */
|
|
1987
1990
|
id = mrb_symbol(path);
|
|
@@ -2134,10 +2137,9 @@ top_define_method(mrb_state *mrb, mrb_value self)
|
|
|
2134
2137
|
static mrb_value
|
|
2135
2138
|
mrb_mod_eqq(mrb_state *mrb, mrb_value mod)
|
|
2136
2139
|
{
|
|
2137
|
-
mrb_value obj;
|
|
2140
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
2138
2141
|
mrb_bool eqq;
|
|
2139
2142
|
|
|
2140
|
-
mrb_get_args(mrb, "o", &obj);
|
|
2141
2143
|
eqq = mrb_obj_is_kind_of(mrb, obj, mrb_class_ptr(mod));
|
|
2142
2144
|
|
|
2143
2145
|
return mrb_bool_value(eqq);
|
|
@@ -2272,7 +2274,6 @@ mrb_init_class(mrb_state *mrb)
|
|
|
2272
2274
|
mrb_define_method(mrb, bob, "initialize", mrb_bob_init, MRB_ARGS_NONE());
|
|
2273
2275
|
mrb_define_method(mrb, bob, "!", mrb_bob_not, MRB_ARGS_NONE());
|
|
2274
2276
|
mrb_define_method(mrb, bob, "==", mrb_obj_equal_m, MRB_ARGS_REQ(1)); /* 15.3.1.3.1 */
|
|
2275
|
-
mrb_define_method(mrb, bob, "!=", mrb_obj_not_equal_m, MRB_ARGS_REQ(1));
|
|
2276
2277
|
mrb_define_method(mrb, bob, "__id__", mrb_obj_id_m, MRB_ARGS_NONE()); /* 15.3.1.3.4 */
|
|
2277
2278
|
mrb_define_method(mrb, bob, "__send__", mrb_f_send, MRB_ARGS_REQ(1)|MRB_ARGS_REST()|MRB_ARGS_BLOCK()); /* 15.3.1.3.5 */
|
|
2278
2279
|
mrb_define_method(mrb, bob, "equal?", mrb_obj_equal_m, MRB_ARGS_REQ(1)); /* 15.3.1.3.11 */
|