summaryrefslogtreecommitdiffhomepage
path: root/src/string.c
AgeCommit message (Collapse)Author
2018-02-12`String#inspect` to use hexadecimal, not octal to print unprintable.Yukihiro "Matz" Matsumoto
2017-12-23Make source compilable with C++17Lothar Scholz
Changes applied: - Removing "register" keyword - Fixing const pointer to pointer assignments - Adding type casts to rb_malloc calls
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-08Should allocate memory region before updating `len`; fix #3842Yukihiro "Matz" Matsumoto
Otherwise half-baked string object will be allocated.
2017-11-04Merge branch 'master' of github.com:mruby/mrubyYAMAMOTO Masaya
2017-11-03Should not use `FSHARED` state for string from `irep` pools; fix #3829Yukihiro "Matz" Matsumoto
This strings in `irep` pools may be freed forcefully in `mrb_irep_free`. This commit probably fixes #3817 as well.
2017-10-11Add MRB_WITHOUT_FLOATYAMAMOTO Masaya
2017-10-01Add new type of shared string: `RSTR_FSHARED`.Yukihiro "Matz" Matsumoto
`RSTR_FSHARED` use frozen strings as shared body instead of `struct mrb_shared_string`. This reduces allocation from literal strings.
2017-09-27fix: src\string.c(2219): warning C4244: 'function': conversion from ↵Tomasz Dąbrowski
'mrb_int' to 'int', possible loss of data
2017-09-27fix: src\string.c(1924): warning C4244: '=': conversion from 'mrb_int' to ↵Tomasz Dąbrowski
'int', possible loss of data
2017-09-27fix: src\string.c(1130): warning C4244: '=': conversion from 'mrb_int' to ↵Tomasz Dąbrowski
'int', possible loss of data
2017-09-27fix: src\string.c(497): warning C4244: '=': conversion from 'mrb_int' to ↵Tomasz Dąbrowski
'long', possible loss of data
2017-09-27fix: src\hash.c(27): warning C4244: '=': conversion from 'mrb_int' to ↵Tomasz Dąbrowski
'khint_t', possible loss of data
2017-08-22`strlen` returns `size_t`; need to cast before assigning to `int`.Yukihiro "Matz" Matsumoto
2017-08-22(Try to) fix mixture of `int` and `size_t` in UTF-8 conversion.Yukihiro "Matz" Matsumoto
This only effects VC.
2017-08-18`mrb_str_cat`: `capa` should not be zero to avoid infinite loops.Yukihiro "Matz" Matsumoto
2017-08-18`mrb_str_cat`: `capa` should be bigger than `total`.Yukihiro "Matz" Matsumoto
2017-08-18`ARY_CAPA` handles capacity for embedded arrays by itself.Yukihiro "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-18Remove code duplication in `mrb_str_concat`.Yukihiro "Matz" Matsumoto
2017-08-18Merge `str_buf_cat` and `mrb_str_cat`.Yukihiro "Matz" Matsumoto
2017-08-11Silence integer type conversion warnings.Yukihiro "Matz" Matsumoto
2017-08-09Replaced tabs with spacesChristopher Aue
2017-07-28Added mrb_str_index to the mrb APIChristopher Aue
2017-07-12Use "$!" specifier of `mrb_get_args`.Yukihiro "Matz" Matsumoto
2017-07-05Avoid undefined behavior of signed integer overflow; fix #3728Yukihiro "Matz" Matsumoto
2017-05-13Make string embad from sharedksss
2017-05-05Adjust to the optimum typeksss
2017-04-06Make String#replace to check equality before modifying flags.Yukihiro "Matz" Matsumoto
ref #3588
2017-04-03Unify `else` clause styleYukihiro "Matz" Matsumoto
2017-04-03String#initialize to make a string empty; ref #3574Yukihiro "Matz" Matsumoto
2017-03-05String#index shouldn't return nil when "".index ""ksss
2017-02-28Fix integer overflow; fix #3473Yukihiro "Matz" Matsumoto
The fix is suggested by https://hackerone.com/lucnguyen
2017-02-28Add type check by mrb_get_args(); ref #3476Yukihiro "Matz" Matsumoto
2017-02-28Add check before calling str_substr(); ref #3476Yukihiro "Matz" Matsumoto
2017-02-28Check if the value is fixnum before mrb_funcall(); fix #3476Yukihiro "Matz" Matsumoto
The issue is reported by https://hackerone.com/aerodudrizzt
2017-02-11Revert "Optimization for String#* for 1-byte strings"Tomasz Dabrowski
This reverts commit d1bc7caecaf337976351934d5910726106601bd9.
2017-02-11String#replace should update s->flags for MRB_STR_NO_UTF.Yukihiro "Matz" Matsumoto
Otherwise String#size may return wrong length; fix #3448
2017-02-11Add type cast to pacify warningYukihiro "Matz" Matsumoto
2017-02-10Optimization for String#* for 1-byte stringsTomasz Dabrowski
2017-02-07Fix interpolation escaping in String.inspectEdgar Boda-Majer
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-23Should not make empty strings shared; fix #3407Yukihiro "Matz" Matsumoto
2017-01-11String#replace should check replacing string; fix #3374Yukihiro "Matz" Matsumoto
This issue was reported by https://hackerone.com/tunz
2017-01-06Improve capacity enhancing conditionsYukihiro "Matz" Matsumoto
2017-01-06Add pointer cast to pacify warnings.Yukihiro "Matz" Matsumoto
2017-01-06Move mrb_assert() position.Yukihiro "Matz" Matsumoto
2017-01-06Should not deallocate shared string referring static; fix #3373Yukihiro "Matz" Matsumoto
2017-01-02Fix memory error on str_buf_catksss
Modify from nofree to embed string
2017-01-02Small refactoring: should use RSTR_CAPAksss