summaryrefslogtreecommitdiffhomepage
path: root/src/array.c
AgeCommit message (Collapse)Author
2019-12-13Fix arguments check to `Array#each`KOBAYASHI Shuji
#### Before this patch: ``` $ mruby -e '[].each(1){}' #=> no error ``` #### After this patch: ``` $ mruby -e '[].each(1){}' #=> ArgumentError: wrong number of arguments ```
2019-11-08Avoid crashing of `Array#unshift`; fix #4808Yukihiro "Matz" Matsumoto
On cases like `a.unshift(*a)`.
2019-09-18Remove `mrb_get_args(mrb, "")`; ref 30f37872KOBAYASHI Shuji
2019-09-14Add a macro `mrb_frozen_p` that points to `MRB_FROZEN_P`.Yukihiro "Matz" Matsumoto
2019-08-18Prohibit changes to iseq in principledearblue
2019-08-17Implement `Array#each` using inline mruby bytecode.Yukihiro "Matz" Matsumoto
2019-08-05Use new specifiers/modifiers of `mrb_vfromat()`KOBAYASHI Shuji
The binary sizes (gems are only `mruby-bin-mruby`) are reduced slightly in my environment than before the introduction of new specifiers/modifiers (5116789a) with this change. ------------+-------------------+-------------------+-------- BINARY | BEFORE (5116789a) | AFTER (This PR) | RATIO ------------+-------------------+-------------------+-------- mruby | 593416 bytes | 593208 bytes | -0.04% libmruby.a | 769048 bytes | 767264 bytes | -0.23% ------------+-------------------+-------------------+-------- BTW, I accidentally changed `tasks/toolchains/visualcpp.rake` at #4613, so I put it back.
2019-06-23Fix argument specs to `Array`KOBAYASHI Shuji
2019-05-25Name the return value of `mrb_range_beg_len()`dearblue
2019-04-09Extract frozen checking to functionKOBAYASHI Shuji
2019-04-06Move `Array#(append|prepend)` from core to `mruby-ary-ext`KOBAYASHI Shuji
They are not included in ISO standard.
2018-12-15Make mrb_ary_clear() function callable from C againTakashi Sawanaka
2018-11-19Removed `to_ary` conversion method.Yukihiro "Matz" Matsumoto
2018-10-29Add argument check to `Array#clear`; fix #4144Yukihiro "Matz" Matsumoto
2018-09-18Array size may be changed in `mrb_get_args()` reentry.Yukihiro "Matz" Matsumoto
fix #4116; fix #4117; fix #4118; fix #4119; fix #4120
2018-09-07Clear terminated spacedearblue
2018-04-25Fix array replace leak error in mruby-uri.Takeshi Watanabe
2018-04-18`ary_dup()` should not use `ary_replace(); fix #4004Yukihiro "Matz" Matsumoto
Otherwise the duplicated object may have shared entities that should not be modified in-line.
2018-04-18A new function `ary_from_values()`; ref #4004Yukihiro "Matz" Matsumoto
2018-04-17Make `ary_replace()` to share entry buffers if possible.Yukihiro "Matz" Matsumoto
2018-04-17Make `ary_concat()` to replace the receiver when it is empty.Yukihiro "Matz" Matsumoto
2018-04-17Make `ary_replace()` to take `struct RArray*` argument.Yukihiro "Matz" Matsumoto
2018-04-17Implement `Array#__svalue` in C.Yukihiro "Matz" Matsumoto
2018-03-19Set array length after expanding capacity.Takeshi Watanabe
2017-12-12Modifying frozen objects will raise `FrozenError`.Yukihiro "Matz" Matsumoto
`FrozenError` is a subclass of `RuntimeError` which used to be raised. [Ruby2.5]
2017-11-13The number of argument should be retrieved by `mrb_get_argc`; fix #3848Yukihiro "Matz" Matsumoto
You should not access `mrb->c->ci->argc` directly.
2017-10-11Add MRB_WITHOUT_FLOATYAMAMOTO Masaya
2017-08-26Reimplement `Array#shift` to be faster.Yukihiro "Matz" Matsumoto
2017-08-26`Array#first` to treat 1 argument case specially to improve performance.Yukihiro "Matz" Matsumoto
2017-08-19Zero width `unshift` should not touch memory; ref #3780Yukihiro "Matz" Matsumoto
2017-08-19Unshift pointer move size was wrong (not `len` but `alen`); fix #3780Yukihiro "Matz" Matsumoto
2017-08-18Reduce signed/unsigned comparison warnings; ref #3785Yukihiro "Matz" Matsumoto
2017-08-18Separate `mrb_str_buf_new` and `mrb_str_new_capa`.Yukihiro "Matz" Matsumoto
`mrb_str_buf_new` is an old function that ensures capacity size of `MRB_STR_BUF_MIN_SIZE` minimum. Usually one need to use `mrb_str_new_capa` instead.
2017-08-18Improve Array structureMiura Hideki
2017-08-11Remove unnecessary inline function `ary_elt`.Yukihiro "Matz" Matsumoto
And the function does not conform the naming convention anyway.
2017-08-05Fixed heap buffer overflow in `mrb_ary_unshift_m`; fix #3760Yukihiro "Matz" Matsumoto
2017-07-27Embed small size array elements in the heap.Yukihiro "Matz" Matsumoto
It reduces the memory consumption and sometimes improve the performance as well. For example, the consumed memory size of `bench/bm_ao_render.rb` is reduced from 1.2GB to 1GB, and its total execution time become 18.795 sec from 22.229 sec.
2017-07-12Use "$!" specifier of `mrb_get_args`.Yukihiro "Matz" Matsumoto
2017-07-12Add `ary_modify_check()` to `Array#unshift`; ref #3737Yukihiro "Matz" Matsumoto
2017-07-09Should only check frozen for Array#popksss
2017-07-09Should only check frozen fix #3737ksss
2017-06-20Array size can be cause integer overflow; fix #3710Yukihiro "Matz" Matsumoto
2017-06-17Use `mrb_int` instead of `size_t` for array capacity and length.Yukihiro "Matz" Matsumoto
2017-05-31Prevent splicing big recursive arrrays; ref #3679Yukihiro "Matz" Matsumoto
We know this is not perfect, but this change makes hack like #3679 bit harder. Harmless for useful cases.
2017-04-25Silence warnings caused by implicit type casting.Yukihiro "Matz" Matsumoto
2017-04-01Add alias "append" to Array#push, and "prepend" to Array#unshift.Yukihiro "Matz" Matsumoto
According to CRuby [Feature#12746]
2017-03-29Set proper class to subclass of Arrayokkez
More compatibility to CRuby.
2017-03-19Should not check/call `to_str` for immediate objects; ref #3515Yukihiro "Matz" Matsumoto
2017-03-19Need not to call mrb_obj_as_string() is sep is nil.Yukihiro "Matz" Matsumoto
2017-01-24Use size_t to avoid integer overflow in mrb_ary_splice(); fix #3413Yukihiro "Matz" Matsumoto