summaryrefslogtreecommitdiffhomepage
path: root/src/array.c
AgeCommit message (Collapse)Author
2018-09-19fixup! Removed `to_ary` conversion method.Yukihiro "Matz" Matsumoto
2018-09-19Removed `to_ary` conversion method.Yukihiro "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
2017-01-23Refactoring: Use array_copy instead of for loopksss
2017-01-23Changed the behavior of mrb_range_beg_len(); close #3411Yukihiro "Matz" Matsumoto
The new API is: int mrb_range_beg_len(mrb, range, &beg, &len, len, trunc) The new argument `trunc` is a boolean value that specifies whether the function truncates the range. The new return value is an integer instead of a boolean, that is: 0: not a range 1: range with proper edges 2: out of range To get the old behavior, you have to rewrite: mrb_range_beg_len(mrb, range, &beg, &len, len) to: mrn_range_beg_len(mrb, range, &beg, &len, len, TRUE) == 1 [Breaking Change]
2017-01-23Use mrb_write_barrier() instead of mrb_field_write_barrier_value()Yukihiro "Matz" Matsumoto
ref #3409
2017-01-23Remove unnecessary inline declaration; ref #3409Yukihiro "Matz" Matsumoto
2017-01-23Merge pull request #3409 from ksss/mrb_ary_spliceYukihiro "Matz" Matsumoto
Rewrite mrb_ary_splice
2017-01-22Should raise RuntimeError when object frozenksss
2017-01-22Rewrite mrb_ary_spliceksss
Referenced to CRuby's array.c(rb_ary_splice) fix #3405
2017-01-07Add ary_modify() checks; close #3379Yukihiro "Matz" Matsumoto
This issue was reported by https://hackerone.com/an0n-j
2017-01-06Improve capacity enhancing conditionsYukihiro "Matz" Matsumoto
2016-12-31ary_expand_capa(): refine conditions to avoid infinite loop; ref #3353Yukihiro "Matz" Matsumoto
2016-12-31ary_expand_capa(): size calculation by size_t; fix #3353Yukihiro "Matz" Matsumoto
Also more size checks added.
2016-12-27Check array max sizeksss
Fix #3354