script_core 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/ext/enterprise_script_service/libseccomp/.travis.yml +21 -7
  3. data/ext/enterprise_script_service/libseccomp/CHANGELOG +22 -0
  4. data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
  5. data/ext/enterprise_script_service/libseccomp/CREDITS +8 -0
  6. data/ext/enterprise_script_service/libseccomp/README.md +3 -1
  7. data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
  8. data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
  9. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
  10. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
  11. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
  12. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
  13. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
  14. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
  15. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
  16. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
  17. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
  18. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
  19. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
  20. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
  21. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
  22. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
  23. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
  24. data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +12 -0
  25. data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
  26. data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
  27. data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
  28. data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
  29. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
  30. data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
  31. data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
  32. data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
  33. data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
  34. data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
  35. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
  36. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
  37. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
  38. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
  39. data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
  40. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
  41. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
  42. data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
  43. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
  44. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
  45. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
  46. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
  47. data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
  48. data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
  49. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
  50. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
  51. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
  52. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
  53. data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
  54. data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
  55. data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
  56. data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
  57. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
  58. data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
  59. data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
  60. data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
  61. data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
  62. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
  63. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
  64. data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
  65. data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
  66. data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
  67. data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
  68. data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
  69. data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
  70. data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
  71. data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
  72. data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
  73. data/ext/enterprise_script_service/libseccomp/tests/.gitignore +9 -2
  74. data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
  75. data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
  76. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
  77. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
  78. data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +1 -0
  79. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
  80. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
  81. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
  82. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
  83. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
  84. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
  85. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
  86. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
  87. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
  88. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
  89. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
  90. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
  91. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
  92. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
  93. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
  94. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
  95. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
  96. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
  97. data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
  98. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
  99. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
  100. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
  101. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
  102. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
  103. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
  104. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
  105. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
  106. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
  107. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
  108. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
  109. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
  110. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
  111. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
  112. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
  113. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
  114. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
  115. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
  116. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
  117. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
  118. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
  119. data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +31 -10
  120. data/ext/enterprise_script_service/libseccomp/tests/regression +6 -3
  121. data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
  122. data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
  123. data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
  124. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
  125. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +2 -0
  126. data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
  127. data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
  128. data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +51 -0
  129. data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
  130. data/ext/enterprise_script_service/mruby/README.md +1 -1
  131. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
  132. data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
  133. data/ext/enterprise_script_service/mruby/include/mruby.h +13 -0
  134. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -1
  135. data/ext/enterprise_script_service/mruby/include/mruby/proc.h +13 -8
  136. data/ext/enterprise_script_service/mruby/include/mruby/value.h +25 -29
  137. data/ext/enterprise_script_service/mruby/include/mruby/version.h +3 -3
  138. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -8
  139. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +2 -2
  140. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +17 -10
  141. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
  142. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +1 -2
  143. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +1 -1
  144. data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +1 -2
  145. data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +3 -4
  146. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +1 -2
  147. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +9 -26
  148. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +1 -2
  149. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +6 -8
  150. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +3 -4
  151. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +0 -1
  152. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +1 -2
  153. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +1 -3
  154. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +1 -3
  155. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +3 -3
  156. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +1 -2
  157. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +5 -11
  158. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +5 -10
  159. data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
  160. data/ext/enterprise_script_service/mruby/src/array.c +14 -11
  161. data/ext/enterprise_script_service/mruby/src/class.c +22 -21
  162. data/ext/enterprise_script_service/mruby/src/error.c +1 -2
  163. data/ext/enterprise_script_service/mruby/src/etc.c +0 -1
  164. data/ext/enterprise_script_service/mruby/src/gc.c +5 -5
  165. data/ext/enterprise_script_service/mruby/src/hash.c +8 -15
  166. data/ext/enterprise_script_service/mruby/src/kernel.c +4 -7
  167. data/ext/enterprise_script_service/mruby/src/numeric.c +28 -60
  168. data/ext/enterprise_script_service/mruby/src/object.c +11 -1
  169. data/ext/enterprise_script_service/mruby/src/proc.c +7 -8
  170. data/ext/enterprise_script_service/mruby/src/range.c +4 -12
  171. data/ext/enterprise_script_service/mruby/src/string.c +24 -21
  172. data/ext/enterprise_script_service/mruby/src/symbol.c +1 -2
  173. data/ext/enterprise_script_service/mruby/src/vm.c +28 -24
  174. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +7 -0
  175. data/lib/script_core/version.rb +1 -1
  176. metadata +45 -21
  177. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
  178. data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
  179. data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
  180. data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
  181. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
  182. data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
  183. data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
  184. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
  185. data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -642
  186. data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -642
  187. data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
  188. data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
  189. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
  190. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
  191. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
@@ -160,9 +160,8 @@ set_backtrace(mrb_state *mrb, mrb_value exc, mrb_value backtrace)
160
160
  static mrb_value
161
161
  exc_set_backtrace(mrb_state *mrb, mrb_value exc)
162
162
  {
163
- mrb_value backtrace;
163
+ mrb_value backtrace = mrb_get_arg1(mrb);
164
164
 
165
- mrb_get_args(mrb, "o", &backtrace);
166
165
  set_backtrace(mrb, exc, backtrace);
167
166
  return backtrace;
168
167
  }
@@ -132,7 +132,6 @@ mrb_obj_id(mrb_value obj)
132
132
  case MRB_TT_HASH:
133
133
  case MRB_TT_RANGE:
134
134
  case MRB_TT_EXCEPTION:
135
- case MRB_TT_FILE:
136
135
  case MRB_TT_DATA:
137
136
  case MRB_TT_ISTRUCT:
138
137
  default:
@@ -716,10 +716,10 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
716
716
  struct REnv *e = (struct REnv*)obj;
717
717
  mrb_int i, len;
718
718
 
719
- if (MRB_ENV_STACK_SHARED_P(e) && e->cxt && e->cxt->fib) {
719
+ if (MRB_ENV_ONSTACK_P(e) && e->cxt && e->cxt->fib) {
720
720
  mrb_gc_mark(mrb, (struct RBasic*)e->cxt->fib);
721
721
  }
722
- len = MRB_ENV_STACK_LEN(e);
722
+ len = MRB_ENV_LEN(e);
723
723
  for (i=0; i<len; i++) {
724
724
  mrb_gc_mark_value(mrb, e->stack[i]);
725
725
  }
@@ -820,7 +820,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end)
820
820
  {
821
821
  struct REnv *e = (struct REnv*)obj;
822
822
 
823
- if (MRB_ENV_STACK_SHARED_P(e)) {
823
+ if (MRB_ENV_ONSTACK_P(e)) {
824
824
  /* cannot be freed */
825
825
  e->stack = NULL;
826
826
  break;
@@ -842,7 +842,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end)
842
842
  while (ce <= ci) {
843
843
  struct REnv *e = ci->env;
844
844
  if (e && !mrb_object_dead_p(mrb, (struct RBasic*)e) &&
845
- e->tt == MRB_TT_ENV && MRB_ENV_STACK_SHARED_P(e)) {
845
+ e->tt == MRB_TT_ENV && MRB_ENV_ONSTACK_P(e)) {
846
846
  mrb_env_unshare(mrb, e);
847
847
  }
848
848
  ci--;
@@ -990,7 +990,7 @@ gc_gray_counts(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
990
990
  break;
991
991
 
992
992
  case MRB_TT_ENV:
993
- children += MRB_ENV_STACK_LEN(obj);
993
+ children += MRB_ENV_LEN(obj);
994
994
  break;
995
995
 
996
996
  case MRB_TT_FIBER:
@@ -73,7 +73,7 @@ ht_hash_func(mrb_state *mrb, htable *t, mrb_value key)
73
73
 
74
74
  default:
75
75
  hv = mrb_funcall(mrb, key, "hash", 0);
76
- h = (size_t)t ^ (size_t)mrb_fixnum(hv);
76
+ h = (size_t)tt ^ (size_t)mrb_fixnum(hv);
77
77
  break;
78
78
  }
79
79
  if (index && (index != t->index || capa != index->capa)) {
@@ -641,12 +641,11 @@ static mrb_value hash_default(mrb_state *mrb, mrb_value hash, mrb_value key);
641
641
  static mrb_value
642
642
  mrb_hash_init_copy(mrb_state *mrb, mrb_value self)
643
643
  {
644
- mrb_value orig;
644
+ mrb_value orig = mrb_get_arg1(mrb);
645
645
  struct RHash* copy;
646
646
  htable *orig_h;
647
647
  mrb_value ifnone, vret;
648
648
 
649
- mrb_get_args(mrb, "o", &orig);
650
649
  if (mrb_obj_equal(mrb, self, orig)) return self;
651
650
  if ((mrb_type(self) != mrb_type(orig)) || (mrb_obj_class(mrb, self) != mrb_obj_class(mrb, orig))) {
652
651
  mrb_raise(mrb, E_TYPE_ERROR, "initialize_copy should take same class object");
@@ -828,9 +827,8 @@ mrb_hash_init(mrb_state *mrb, mrb_value hash)
828
827
  static mrb_value
829
828
  mrb_hash_aget(mrb_state *mrb, mrb_value self)
830
829
  {
831
- mrb_value key;
830
+ mrb_value key = mrb_get_arg1(mrb);
832
831
 
833
- mrb_get_args(mrb, "o", &key);
834
832
  return mrb_hash_get(mrb, self, key);
835
833
  }
836
834
 
@@ -913,9 +911,8 @@ mrb_hash_default(mrb_state *mrb, mrb_value hash)
913
911
  static mrb_value
914
912
  mrb_hash_set_default(mrb_state *mrb, mrb_value hash)
915
913
  {
916
- mrb_value ifnone;
914
+ mrb_value ifnone = mrb_get_arg1(mrb);
917
915
 
918
- mrb_get_args(mrb, "o", &ifnone);
919
916
  mrb_hash_modify(mrb, hash);
920
917
  mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
921
918
  RHASH(hash)->flags &= ~MRB_HASH_PROC_DEFAULT;
@@ -969,9 +966,8 @@ mrb_hash_default_proc(mrb_state *mrb, mrb_value hash)
969
966
  static mrb_value
970
967
  mrb_hash_set_default_proc(mrb_state *mrb, mrb_value hash)
971
968
  {
972
- mrb_value ifnone;
969
+ mrb_value ifnone = mrb_get_arg1(mrb);
973
970
 
974
- mrb_get_args(mrb, "o", &ifnone);
975
971
  mrb_hash_modify(mrb, hash);
976
972
  mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
977
973
  if (!mrb_nil_p(ifnone)) {
@@ -1003,9 +999,8 @@ mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value key)
1003
999
  static mrb_value
1004
1000
  mrb_hash_delete(mrb_state *mrb, mrb_value self)
1005
1001
  {
1006
- mrb_value key;
1002
+ mrb_value key = mrb_get_arg1(mrb);
1007
1003
 
1008
- mrb_get_args(mrb, "o", &key);
1009
1004
  mrb_hash_modify(mrb, self);
1010
1005
  return mrb_hash_delete_key(mrb, self, key);
1011
1006
  }
@@ -1288,10 +1283,9 @@ mrb_hash_key_p(mrb_state *mrb, mrb_value hash, mrb_value key)
1288
1283
  static mrb_value
1289
1284
  mrb_hash_has_key(mrb_state *mrb, mrb_value hash)
1290
1285
  {
1291
- mrb_value key;
1286
+ mrb_value key = mrb_get_arg1(mrb);
1292
1287
  mrb_bool key_p;
1293
1288
 
1294
- mrb_get_args(mrb, "o", &key);
1295
1289
  key_p = mrb_hash_key_p(mrb, hash, key);
1296
1290
  return mrb_bool_value(key_p);
1297
1291
  }
@@ -1331,10 +1325,9 @@ hash_has_value_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
1331
1325
  static mrb_value
1332
1326
  mrb_hash_has_value(mrb_state *mrb, mrb_value hash)
1333
1327
  {
1334
- mrb_value val;
1328
+ mrb_value val = mrb_get_arg1(mrb);
1335
1329
  struct has_v_arg arg;
1336
1330
 
1337
- mrb_get_args(mrb, "o", &val);
1338
1331
  arg.found = FALSE;
1339
1332
  arg.val = val;
1340
1333
  ht_foreach(mrb, RHASH_TBL(hash), hash_has_value_i, &arg);
@@ -71,9 +71,8 @@ mrb_obj_inspect(mrb_state *mrb, mrb_value obj)
71
71
  static mrb_value
72
72
  mrb_equal_m(mrb_state *mrb, mrb_value self)
73
73
  {
74
- mrb_value arg;
74
+ mrb_value arg = mrb_get_arg1(mrb);
75
75
 
76
- mrb_get_args(mrb, "o", &arg);
77
76
  return mrb_bool_value(mrb_equal(mrb, self, arg));
78
77
  }
79
78
 
@@ -161,7 +160,7 @@ mrb_f_block_given_p_m(mrb_state *mrb, mrb_value self)
161
160
  /* use saved block arg position */
162
161
  bidx = MRB_ENV_BIDX(e);
163
162
  /* bidx may be useless (e.g. define_method) */
164
- if (bidx >= MRB_ENV_STACK_LEN(e))
163
+ if (bidx >= MRB_ENV_LEN(e))
165
164
  return mrb_false_value();
166
165
  bp = &e->stack[bidx];
167
166
  }
@@ -471,9 +470,8 @@ mrb_obj_hash(mrb_state *mrb, mrb_value self)
471
470
  static mrb_value
472
471
  mrb_obj_init_copy(mrb_state *mrb, mrb_value self)
473
472
  {
474
- mrb_value orig;
473
+ mrb_value orig = mrb_get_arg1(mrb);
475
474
 
476
- mrb_get_args(mrb, "o", &orig);
477
475
  if (mrb_obj_equal(mrb, self, orig)) return self;
478
476
  if ((mrb_type(self) != mrb_type(orig)) || (mrb_obj_class(mrb, self) != mrb_obj_class(mrb, orig))) {
479
477
  mrb_raise(mrb, E_TYPE_ERROR, "initialize_copy should take same class object");
@@ -744,12 +742,11 @@ obj_respond_to(mrb_state *mrb, mrb_value self)
744
742
  static mrb_value
745
743
  mrb_obj_ceqq(mrb_state *mrb, mrb_value self)
746
744
  {
747
- mrb_value v;
745
+ mrb_value v = mrb_get_arg1(mrb);
748
746
  mrb_int i, len;
749
747
  mrb_sym eqq = mrb_intern_lit(mrb, "===");
750
748
  mrb_value ary = mrb_ary_splat(mrb, self);
751
749
 
752
- mrb_get_args(mrb, "o", &v);
753
750
  len = RARRAY_LEN(ary);
754
751
  for (i=0; i<len; i++) {
755
752
  mrb_value c = mrb_funcall_argv(mrb, mrb_ary_entry(ary, i), eqq, 1, &v);
@@ -67,12 +67,11 @@ mrb_int_value(mrb_state *mrb, mrb_float f)
67
67
  static mrb_value
68
68
  integral_pow(mrb_state *mrb, mrb_value x)
69
69
  {
70
- mrb_value y;
70
+ mrb_value y = mrb_get_arg1(mrb);
71
71
  #ifndef MRB_WITHOUT_FLOAT
72
72
  mrb_float d;
73
73
  #endif
74
74
 
75
- mrb_get_args(mrb, "o", &y);
76
75
  if (mrb_fixnum_p(x) && mrb_fixnum_p(y)) {
77
76
  /* try ipow() */
78
77
  mrb_int base = mrb_fixnum(x);
@@ -116,9 +115,8 @@ static mrb_value
116
115
  integral_idiv(mrb_state *mrb, mrb_value x)
117
116
  {
118
117
  #ifdef MRB_WITHOUT_FLOAT
119
- mrb_value y;
118
+ mrb_value y = mrb_get_arg1(mrb);
120
119
 
121
- mrb_get_args(mrb, "o", &y);
122
120
  if (!mrb_fixnum_p(y)) {
123
121
  mrb_raise(mrb, E_TYPE_ERROR, "non fixnum value");
124
122
  }
@@ -154,9 +152,8 @@ static mrb_value
154
152
  integral_div(mrb_state *mrb, mrb_value x)
155
153
  {
156
154
  #ifdef MRB_WITHOUT_FLOAT
157
- mrb_value y;
155
+ mrb_value y = mrb_get_arg1(mrb);
158
156
 
159
- mrb_get_args(mrb, "o", &y);
160
157
  if (!mrb_fixnum_p(y)) {
161
158
  mrb_raise(mrb, E_TYPE_ERROR, "non fixnum value");
162
159
  }
@@ -271,9 +268,8 @@ flo_to_s(mrb_state *mrb, mrb_value flt)
271
268
  static mrb_value
272
269
  flo_minus(mrb_state *mrb, mrb_value x)
273
270
  {
274
- mrb_value y;
271
+ mrb_value y = mrb_get_arg1(mrb);
275
272
 
276
- mrb_get_args(mrb, "o", &y);
277
273
  return mrb_float_value(mrb, mrb_float(x) - mrb_to_flo(mrb, y));
278
274
  }
279
275
 
@@ -289,9 +285,8 @@ flo_minus(mrb_state *mrb, mrb_value x)
289
285
  static mrb_value
290
286
  flo_mul(mrb_state *mrb, mrb_value x)
291
287
  {
292
- mrb_value y;
288
+ mrb_value y = mrb_get_arg1(mrb);
293
289
 
294
- mrb_get_args(mrb, "o", &y);
295
290
  return mrb_float_value(mrb, mrb_float(x) * mrb_to_flo(mrb, y));
296
291
  }
297
292
 
@@ -351,11 +346,9 @@ flodivmod(mrb_state *mrb, double x, double y, mrb_float *divp, mrb_float *modp)
351
346
  static mrb_value
352
347
  flo_mod(mrb_state *mrb, mrb_value x)
353
348
  {
354
- mrb_value y;
349
+ mrb_value y = mrb_get_arg1(mrb);
355
350
  mrb_float mod;
356
351
 
357
- mrb_get_args(mrb, "o", &y);
358
-
359
352
  flodivmod(mrb, mrb_float(x), mrb_to_flo(mrb, y), 0, &mod);
360
353
  return mrb_float_value(mrb, mod);
361
354
  }
@@ -376,9 +369,8 @@ flo_mod(mrb_state *mrb, mrb_value x)
376
369
  static mrb_value
377
370
  fix_eql(mrb_state *mrb, mrb_value x)
378
371
  {
379
- mrb_value y;
372
+ mrb_value y = mrb_get_arg1(mrb);
380
373
 
381
- mrb_get_args(mrb, "o", &y);
382
374
  if (!mrb_fixnum_p(y)) return mrb_false_value();
383
375
  return mrb_bool_value(mrb_fixnum(x) == mrb_fixnum(y));
384
376
  }
@@ -387,9 +379,8 @@ fix_eql(mrb_state *mrb, mrb_value x)
387
379
  static mrb_value
388
380
  flo_eql(mrb_state *mrb, mrb_value x)
389
381
  {
390
- mrb_value y;
382
+ mrb_value y = mrb_get_arg1(mrb);
391
383
 
392
- mrb_get_args(mrb, "o", &y);
393
384
  if (!mrb_float_p(y)) return mrb_false_value();
394
385
  return mrb_bool_value(mrb_float(x) == mrb_float(y));
395
386
  }
@@ -410,8 +401,7 @@ flo_eql(mrb_state *mrb, mrb_value x)
410
401
  static mrb_value
411
402
  flo_eq(mrb_state *mrb, mrb_value x)
412
403
  {
413
- mrb_value y;
414
- mrb_get_args(mrb, "o", &y);
404
+ mrb_value y = mrb_get_arg1(mrb);
415
405
 
416
406
  switch (mrb_type(y)) {
417
407
  case MRB_TT_FIXNUM:
@@ -429,7 +419,6 @@ value_int64(mrb_state *mrb, mrb_value x)
429
419
  switch (mrb_type(x)) {
430
420
  case MRB_TT_FIXNUM:
431
421
  return (int64_t)mrb_fixnum(x);
432
- break;
433
422
  case MRB_TT_FLOAT:
434
423
  return (int64_t)mrb_float(x);
435
424
  default:
@@ -460,9 +449,8 @@ flo_rev(mrb_state *mrb, mrb_value x)
460
449
  static mrb_value
461
450
  flo_and(mrb_state *mrb, mrb_value x)
462
451
  {
463
- mrb_value y;
452
+ mrb_value y = mrb_get_arg1(mrb);
464
453
  int64_t v1, v2;
465
- mrb_get_args(mrb, "o", &y);
466
454
 
467
455
  v1 = (int64_t)mrb_float(x);
468
456
  v2 = value_int64(mrb, y);
@@ -472,9 +460,8 @@ flo_and(mrb_state *mrb, mrb_value x)
472
460
  static mrb_value
473
461
  flo_or(mrb_state *mrb, mrb_value x)
474
462
  {
475
- mrb_value y;
463
+ mrb_value y = mrb_get_arg1(mrb);
476
464
  int64_t v1, v2;
477
- mrb_get_args(mrb, "o", &y);
478
465
 
479
466
  v1 = (int64_t)mrb_float(x);
480
467
  v2 = value_int64(mrb, y);
@@ -484,9 +471,8 @@ flo_or(mrb_state *mrb, mrb_value x)
484
471
  static mrb_value
485
472
  flo_xor(mrb_state *mrb, mrb_value x)
486
473
  {
487
- mrb_value y;
474
+ mrb_value y = mrb_get_arg1(mrb);
488
475
  int64_t v1, v2;
489
- mrb_get_args(mrb, "o", &y);
490
476
 
491
477
  v1 = (int64_t)mrb_float(x);
492
478
  v2 = value_int64(mrb, y);
@@ -847,9 +833,8 @@ mrb_num_mul(mrb_state *mrb, mrb_value x, mrb_value y)
847
833
  static mrb_value
848
834
  fix_mul(mrb_state *mrb, mrb_value x)
849
835
  {
850
- mrb_value y;
836
+ mrb_value y = mrb_get_arg1(mrb);
851
837
 
852
- mrb_get_args(mrb, "o", &y);
853
838
  return fixnum_mul(mrb, x, y);
854
839
  }
855
840
 
@@ -894,10 +879,9 @@ fixdivmod(mrb_state *mrb, mrb_int x, mrb_int y, mrb_int *divp, mrb_int *modp)
894
879
  static mrb_value
895
880
  fix_mod(mrb_state *mrb, mrb_value x)
896
881
  {
897
- mrb_value y;
882
+ mrb_value y = mrb_get_arg1(mrb);
898
883
  mrb_int a, b;
899
884
 
900
- mrb_get_args(mrb, "o", &y);
901
885
  a = mrb_fixnum(x);
902
886
  if (mrb_fixnum_p(y) && a != MRB_INT_MIN && (b=mrb_fixnum(y)) != MRB_INT_MIN) {
903
887
  mrb_int mod;
@@ -936,9 +920,7 @@ fix_mod(mrb_state *mrb, mrb_value x)
936
920
  static mrb_value
937
921
  fix_divmod(mrb_state *mrb, mrb_value x)
938
922
  {
939
- mrb_value y;
940
-
941
- mrb_get_args(mrb, "o", &y);
923
+ mrb_value y = mrb_get_arg1(mrb);
942
924
 
943
925
  if (mrb_fixnum_p(y)) {
944
926
  mrb_int div, mod;
@@ -975,12 +957,10 @@ fix_divmod(mrb_state *mrb, mrb_value x)
975
957
  static mrb_value
976
958
  flo_divmod(mrb_state *mrb, mrb_value x)
977
959
  {
978
- mrb_value y;
960
+ mrb_value y = mrb_get_arg1(mrb);
979
961
  mrb_float div, mod;
980
962
  mrb_value a, b;
981
963
 
982
- mrb_get_args(mrb, "o", &y);
983
-
984
964
  flodivmod(mrb, mrb_float(x), mrb_to_flo(mrb, y), &div, &mod);
985
965
  a = mrb_int_value(mrb, div);
986
966
  b = mrb_float_value(mrb, mod);
@@ -1003,9 +983,8 @@ flo_divmod(mrb_state *mrb, mrb_value x)
1003
983
  static mrb_value
1004
984
  fix_equal(mrb_state *mrb, mrb_value x)
1005
985
  {
1006
- mrb_value y;
986
+ mrb_value y = mrb_get_arg1(mrb);
1007
987
 
1008
- mrb_get_args(mrb, "o", &y);
1009
988
  switch (mrb_type(y)) {
1010
989
  case MRB_TT_FIXNUM:
1011
990
  return mrb_bool_value(mrb_fixnum(x) == mrb_fixnum(y));
@@ -1062,9 +1041,8 @@ static mrb_value flo_xor(mrb_state *mrb, mrb_value x);
1062
1041
  static mrb_value
1063
1042
  fix_and(mrb_state *mrb, mrb_value x)
1064
1043
  {
1065
- mrb_value y;
1044
+ mrb_value y = mrb_get_arg1(mrb);
1066
1045
 
1067
- mrb_get_args(mrb, "o", &y);
1068
1046
  bit_op(x, y, and, &);
1069
1047
  }
1070
1048
 
@@ -1079,9 +1057,8 @@ fix_and(mrb_state *mrb, mrb_value x)
1079
1057
  static mrb_value
1080
1058
  fix_or(mrb_state *mrb, mrb_value x)
1081
1059
  {
1082
- mrb_value y;
1060
+ mrb_value y = mrb_get_arg1(mrb);
1083
1061
 
1084
- mrb_get_args(mrb, "o", &y);
1085
1062
  bit_op(x, y, or, |);
1086
1063
  }
1087
1064
 
@@ -1096,9 +1073,8 @@ fix_or(mrb_state *mrb, mrb_value x)
1096
1073
  static mrb_value
1097
1074
  fix_xor(mrb_state *mrb, mrb_value x)
1098
1075
  {
1099
- mrb_value y;
1076
+ mrb_value y = mrb_get_arg1(mrb);
1100
1077
 
1101
- mrb_get_args(mrb, "o", &y);
1102
1078
  bit_op(x, y, or, ^);
1103
1079
  }
1104
1080
 
@@ -1320,9 +1296,8 @@ mrb_num_plus(mrb_state *mrb, mrb_value x, mrb_value y)
1320
1296
  static mrb_value
1321
1297
  fix_plus(mrb_state *mrb, mrb_value self)
1322
1298
  {
1323
- mrb_value other;
1299
+ mrb_value other = mrb_get_arg1(mrb);
1324
1300
 
1325
- mrb_get_args(mrb, "o", &other);
1326
1301
  return fixnum_plus(mrb, self, other);
1327
1302
  }
1328
1303
 
@@ -1378,9 +1353,8 @@ mrb_num_minus(mrb_state *mrb, mrb_value x, mrb_value y)
1378
1353
  static mrb_value
1379
1354
  fix_minus(mrb_state *mrb, mrb_value self)
1380
1355
  {
1381
- mrb_value other;
1356
+ mrb_value other = mrb_get_arg1(mrb);
1382
1357
 
1383
- mrb_get_args(mrb, "o", &other);
1384
1358
  return fixnum_minus(mrb, self, other);
1385
1359
  }
1386
1360
 
@@ -1497,10 +1471,9 @@ cmpnum(mrb_state *mrb, mrb_value v1, mrb_value v2)
1497
1471
  static mrb_value
1498
1472
  integral_cmp(mrb_state *mrb, mrb_value self)
1499
1473
  {
1500
- mrb_value other;
1474
+ mrb_value other = mrb_get_arg1(mrb);
1501
1475
  mrb_int n;
1502
1476
 
1503
- mrb_get_args(mrb, "o", &other);
1504
1477
  n = cmpnum(mrb, self, other);
1505
1478
  if (n == -2) return mrb_nil_value();
1506
1479
  return mrb_fixnum_value(n);
@@ -1515,10 +1488,9 @@ cmperr(mrb_state *mrb, mrb_value v1, mrb_value v2)
1515
1488
  static mrb_value
1516
1489
  integral_lt(mrb_state *mrb, mrb_value self)
1517
1490
  {
1518
- mrb_value other;
1491
+ mrb_value other = mrb_get_arg1(mrb);
1519
1492
  mrb_int n;
1520
1493
 
1521
- mrb_get_args(mrb, "o", &other);
1522
1494
  n = cmpnum(mrb, self, other);
1523
1495
  if (n == -2) cmperr(mrb, self, other);
1524
1496
  if (n < 0) return mrb_true_value();
@@ -1528,10 +1500,9 @@ integral_lt(mrb_state *mrb, mrb_value self)
1528
1500
  static mrb_value
1529
1501
  integral_le(mrb_state *mrb, mrb_value self)
1530
1502
  {
1531
- mrb_value other;
1503
+ mrb_value other = mrb_get_arg1(mrb);
1532
1504
  mrb_int n;
1533
1505
 
1534
- mrb_get_args(mrb, "o", &other);
1535
1506
  n = cmpnum(mrb, self, other);
1536
1507
  if (n == -2) cmperr(mrb, self, other);
1537
1508
  if (n <= 0) return mrb_true_value();
@@ -1541,10 +1512,9 @@ integral_le(mrb_state *mrb, mrb_value self)
1541
1512
  static mrb_value
1542
1513
  integral_gt(mrb_state *mrb, mrb_value self)
1543
1514
  {
1544
- mrb_value other;
1515
+ mrb_value other = mrb_get_arg1(mrb);
1545
1516
  mrb_int n;
1546
1517
 
1547
- mrb_get_args(mrb, "o", &other);
1548
1518
  n = cmpnum(mrb, self, other);
1549
1519
  if (n == -2) cmperr(mrb, self, other);
1550
1520
  if (n > 0) return mrb_true_value();
@@ -1554,10 +1524,9 @@ integral_gt(mrb_state *mrb, mrb_value self)
1554
1524
  static mrb_value
1555
1525
  integral_ge(mrb_state *mrb, mrb_value self)
1556
1526
  {
1557
- mrb_value other;
1527
+ mrb_value other = mrb_get_arg1(mrb);
1558
1528
  mrb_int n;
1559
1529
 
1560
- mrb_get_args(mrb, "o", &other);
1561
1530
  n = cmpnum(mrb, self, other);
1562
1531
  if (n == -2) cmperr(mrb, self, other);
1563
1532
  if (n >= 0) return mrb_true_value();
@@ -1609,9 +1578,8 @@ num_infinite_p(mrb_state *mrb, mrb_value self)
1609
1578
  static mrb_value
1610
1579
  flo_plus(mrb_state *mrb, mrb_value x)
1611
1580
  {
1612
- mrb_value y;
1581
+ mrb_value y = mrb_get_arg1(mrb);
1613
1582
 
1614
- mrb_get_args(mrb, "o", &y);
1615
1583
  return mrb_float_value(mrb, mrb_float(x) + mrb_to_flo(mrb, y));
1616
1584
  }
1617
1585
  #endif