Commit Graph

265 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto cfdd1e3cc6 ary_expand_capa(): refine conditions to avoid infinite loop; ref #3353 2016-12-31 23:22:17 +09:00
Yukihiro "Matz" Matsumoto 9d84f0d47b ary_expand_capa(): size calculation by size_t; fix #3353
Also more size checks added.
2016-12-31 23:09:56 +09:00
ksss caba1a19dc Check array max size
Fix #3354
2016-12-27 15:48:53 +09:00
Yukihiro "Matz" Matsumoto 9781f7f0ea Add "not reached" mark in mrb_ary_concat() 2016-12-18 02:02:30 +09:00
Yukihiro "Matz" Matsumoto 92c843dd07 rename prefix RBASIC_ to MRB_; ref #3340 2016-12-12 00:54:36 +09:00
Takashi Kokubun 10bb7ad693 Implement Object#freeze 2016-12-11 03:44:15 +09:00
Clayton Smith 2bc3a5fb78 Fix more integer overflows. 2016-12-01 09:08:38 -05:00
Yukihiro "Matz" Matsumoto ab4ab7c8a0 Fix compile error by #3309 2016-12-01 18:37:03 +09:00
Clayton Smith acdddb4f14 Prevent array size calculation overflows. 2016-11-30 13:55:09 -05:00
Clayton Smith b633aa9ad4 Use size_t to calculate bytes needed for array. 2016-11-29 10:26:02 -05:00
Yukihiro "Matz" Matsumoto 246a9a8acd ary_concat: support self concatenation; fix #3302 2016-11-29 22:36:11 +09:00
Yukihiro "Matz" Matsumoto 0c924b9287 fixed a bug in self modifying Array#[]=; fix #3274 2016-11-24 19:30:21 +09:00
Yukihiro "Matz" Matsumoto 1f554ff854 Fixed rindex calling into mrb_equal bug
Fixed by Alex Snaps and reported by Mathieu Leduc-Hamel,
both from shopify.com.  Thank you!
2016-11-16 02:10:44 +09:00
Yukihiro "Matz" Matsumoto 739dad6e87 Fixed a memory problem in Array#to_h
Reported from Alex Snaps via Mathieu Leduc-Hamel,
both from shopify.com.  Thank you!
2016-11-16 01:29:04 +09:00
ksss d265c03da0 Fix SEGV when splat object
Splat operation should return an array.
And raise an error if result of convert by to_a is not array or nil.
2016-09-08 16:35:17 +09:00
Yukihiro "Matz" Matsumoto 5c405dea3d include changed from by quotes ("") to by brackets (<>); close #3032 2015-11-27 17:48:23 +09:00
Seba Gamboa e871b77f41 Increasing docs coverage 2015-10-20 12:16:46 -03:00
Yukihiro "Matz" Matsumoto fafe86d364 Array#index to take block; fix #2968 close #2970 2015-10-01 22:35:06 +09:00
go.kikuta c7fad5aa33 Remove duplicated RARRAY_LEN check 2015-08-12 10:20:55 +09:00
Yukihiro "Matz" Matsumoto d0e67aada7 use "S!" specifier of mrb_get_args() to improve #2882 fix. 2015-07-13 11:18:44 +09:00
jbreeden dd558a108d Removing unndeeded to_s 2015-07-11 21:15:33 -07:00
jbreeden bdbd696c48 Patching array join 2015-07-11 21:03:04 -07:00
Yukihiro "Matz" Matsumoto 630c2c5853 Merge pull request #2823 from cremno/remove-unnecessary-mrb_immediate_p
remove unnecessary mrb_immediate_p()
2015-06-03 22:40:43 +09:00
cremno ef0fc90cd0 remove unnecessary mrb_immediate_p()
`!mrb_array_p(ary2)` and `mrb_type(obj) != MRB_TT_DATA` are  sufficient.
2015-06-02 08:56:41 +02:00
cremno 599d141cc8 directly call ary_new_capa() 2015-06-02 08:34:36 +02:00
cremno dc0e335664 fix two potential cases of signed integer overflow 2015-06-01 13:23:43 +02:00
Yukihiro "Matz" Matsumoto 378aa8a9c8 avoid wrong ArgumentError from mrb_get_args() when surrounding method takes more than one argument; ref #2627 2014-10-30 10:31:06 +09:00
Yukihiro "Matz" Matsumoto 5bd3d9bc27 add cast to return from aget_index(); ref #2627 2014-10-30 10:27:05 +09:00
mattn eaa0296fc5 Handle Array#[float, int] Close #2626 2014-10-29 19:27:20 +09:00
Yukihiro "Matz" Matsumoto 48c5321dca constify pointer from RARRAY_PTR to detect potential write barrier bugs.
if you see compiler errors due to this commit, you'd better to use array-modifying
functions, e.g. mrb_ary_set() or mrb_ary_push(), otherwise you might see nasty
GC bugs in the future.  if you are sure what you are doing, replace `RARRAY_PTR(ary)`
by `mrb_ary_ptr(ary)->ptr`. but be warned.
2014-09-12 12:42:39 +09:00
kkkkkt 9da37cdfd1 refactor mruby method(fix indent. remove temporary value, duplicate procedure) 2014-08-18 10:58:48 +09:00
Jun Hiroe 3569723ab3 Refactor obj_free() in gc.c 2014-08-05 23:16:01 +09:00
Yukihiro "Matz" Matsumoto 6aa6e75f75 rename obsolete mrb_special_const_p to mrb_immediate_p 2014-08-04 00:50:03 +09:00
Yukihiro "Matz" Matsumoto 206f89e209 add MRB_API modifiers to mruby API functions 2014-08-04 00:47:08 +09:00
Yukihiro "Matz" Matsumoto ef432d7524 Merge pull request #2451 from take-cheeze/remove_mem_out_check
Remove unnecessary out of memory check in `ary_expand_capa`.
2014-07-08 23:07:30 +09:00
take_cheeze 5b0f900faa Remove unnecessary out of memory check in ary_expand_capa.
Since `mrb_realloc` raises when failed to allocate memory.
2014-07-07 21:58:38 +09:00
take_cheeze 13d9631e21 Add new API mrb_ary_resize(mruby implementation of rb_ary_resize). 2014-07-06 22:23:29 +09:00
Yukihiro "Matz" Matsumoto 5c50bcd20a reformat else part; ref #2447 2014-07-06 21:00:57 +09:00
take_cheeze 6cbcbd5290 Reduce allocation in shared RArray clearing. 2014-07-05 21:10:02 +09:00
Yukihiro "Matz" Matsumoto b34e24b07d use mrb_field_write_barrier_value() in array.c 2014-05-08 11:06:41 +09:00
yui-knk eafc4dd0af Make Array#[]= raise IndexError.
If second param is negative, Array#[] raise IndexError.
2014-05-08 00:17:17 +09:00
cremno 91c22f32f4 rename mrb_str_buf_append to mrb_str_cat_str
The new name is better and less confusing, because:
  - `mrb_str_append` calls `mrb_str_to_str` and this function doesn't
  - `mrb_str_buf_append` _is_ `mrb_str_cat` for `mrb_value` strings
2014-04-27 22:33:22 +02:00
Yukihiro "Matz" Matsumoto 83c1399af0 eliminate plain int except for a few cases like arena_index 2014-04-25 04:01:57 +09:00
cremno bc23a5e9e5 remove mrb_str_buf_cat
It does the same as `mrb_str_cat`.
2014-04-21 21:28:06 +02:00
Yukihiro "Matz" Matsumoto 5138f62d6b resolve conflict 2014-04-15 10:55:46 +09:00
Yukihiro "Matz" Matsumoto b4043256d0 implement part of Array#<=> in C 2014-04-02 18:04:09 +09:00
Yukihiro "Matz" Matsumoto 94effc6a37 implement Array comparisons by Ruby 2014-04-02 17:33:25 +09:00
Yukihiro "Matz" Matsumoto d9feed6703 move Array#inspect implementation to mrblib/array.rb 2014-04-01 14:31:39 +09:00
Yukihiro "Matz" Matsumoto 3e24e06b29 add a space after C reserved words 2014-03-18 23:57:29 +09:00
Masaki Muranaka 1df355e300 Reduce implicit type casts. 2014-03-18 17:36:47 +09:00