nobu
16294913f7
use rb_funcallv
...
* use rb_funcallv() for no arguments call instead of variadic
rb_funcall().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-16 04:08:52 +00:00
mame
2270365bde
* string.c (str_discard): does not free for STR_NOFREE string.
...
[Bug #10853 ][ruby-core:68110]
* bootstraptest/test_string.rb: test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-13 13:06:58 +00:00
marcandre
af574c63b5
* string.c: [DOC] Specify to_s on subclasses [ci skip]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-29 15:56:58 +00:00
nobu
44bf6684fd
string.c: term fill
...
* string.c (str_buf_cat): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-26 03:43:20 +00:00
nobu
c0d0dd91e5
string.c: use local variables
...
* string.c (str_buf_cat): use local variables instead of repeating
macros.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-26 03:43:08 +00:00
nobu
34d4105556
string.c: consider widechar
...
* string.c (str_make_independent_expand): consider wide char
encoding. [Fix GH-821]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-26 02:39:00 +00:00
nobu
622f3f14b6
string.c: terminate when embedded
...
* string.c (str_make_independent_expand): terminate String when
moved from heap to embedded. [Fix GH-821].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-26 02:37:51 +00:00
ayumin
e717341ea6
* string.c: improve docs for String#<=>. [ruby-core:65399][Feature #10322 ]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-04 04:10:31 +00:00
ayumin
6abaf76463
* string.c: improve docs for String#strip and variations. [ruby-core:66081][Bug #10476 ]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-04 03:37:10 +00:00
nobu
020fcc95fe
string.c: fix coderange for non-endianness string
...
* string.c (rb_enc_str_coderange): dummy wchar, non-endianness
encoding string cannot be ascii only.
[ruby-core:66835] [Bug #10598 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-15 07:19:25 +00:00
nobu
4d3677e14b
string.c: reduce intermediate string
...
* string.c (rb_str_succ_bang): get rid of making intermediate
string object.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-12 07:23:18 +00:00
nobu
3b8c100418
string.c: term fill
...
* string.c (rb_str_succ): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-12 02:24:51 +00:00
nobu
b96ff20fef
string.c: use local variables
...
* string.c (rb_str_succ): extract local variables from constant
RSTRING_PTR and RSTRING_LEN.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-12 02:24:49 +00:00
nobu
01e621579a
string.c: check arguments for crypt
...
* string.c (rb_str_crypt): check arguments more strictly.
* crypt() is not for wide char strings
* salt bytes should not be NUL
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-12 01:49:20 +00:00
nobu
9cabd72f5f
string.c: term fill
...
* string.c (rb_str_justify): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-12 01:32:36 +00:00
nobu
88ae402cbf
string.c: term fill
...
* string.c (tr_trans): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-12 01:20:41 +00:00
nobu
5c100b57f8
string.c: term fill
...
* string.c (rb_str_squeeze_bang): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-11 00:37:58 +00:00
nobu
7a77cf7133
string.c: term fill
...
* string.c (rb_str_delete_bang): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 12:26:11 +00:00
nobu
117438ee7b
string.c: term fill
...
* string.c (rb_str_sub_bang): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 12:09:49 +00:00
nobu
9d17096309
string.c: term fill
...
* string.c (rb_str_splice_0): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:49:10 +00:00
nobu
ed94c24944
string.c: term fill
...
* string.c (rb_str_chop_bang): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:48:56 +00:00
nobu
c77efe1144
string.c: term fill
...
* string.c (rb_str_chomp_bang): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:48:48 +00:00
nobu
0c50d7ba15
string.c: term fill
...
* string.c (rb_str_times): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:48:43 +00:00
nobu
c00aca4aa0
string.c: term fill
...
* string.c (rb_str_plus): fill wchar terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:48:34 +00:00
nobu
b890ed926a
string.c: local variables
...
* string.c (rb_str_plus, rb_str_splice_0): extract local
variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:48:21 +00:00
nobu
516b9026fd
string.c: chompped_length chomp_rs
...
* string.c (chompped_length, chomp_rs): extract from
rb_str_chomp_bang to share with rb_str_chomp.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:48:17 +00:00
hsbt
93db27d51f
* string.c: [DOC] Add missing documentation around String#chomp.
...
Patchby @stderr [ci skip][fix GH-780]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-09 11:24:46 +00:00
nobu
49b3b2d8a2
string.c: fake string is not sharing
...
* string.c (setup_fake_str): fake string does not share another
string, but just should not free.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-03 05:34:10 +00:00
nobu
aaed10716a
intern.h: SIZED_ENUMERATOR
...
* include/ruby/intern.h (SIZED_ENUMERATOR): separate from
RETURN_SIZED_ENUMERATOR.
* string.c (rb_str_enumerate_chars): get rid of calling
rb_block_given_p() twice.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-03 03:25:12 +00:00
nobu
25bab786cb
string.c: preserve encoding of global variable
...
* string.c (rb_str_setter): preserve encoding of global variable
name in error message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-23 17:03:48 +00:00
akr
2b9191e557
* internal.h: Gather declarations in non-header files.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-18 15:13:05 +00:00
nobu
85ba516877
string.c: escape a backslash [ci skip]
...
* string.c (rb_str_count): [DOC] add a backslash to escape a
backslash itself. [ruby-core:66321]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-16 19:11:37 +00:00
akr
7cd76ab0c5
* internal.h: Include ruby.h and ruby/encoding.h to be
...
includable without prior inclusion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15 11:49:06 +00:00
ko1
495548ace4
* string.c (sym_equal): use rb_obj_equal().
...
rb_obj_equal() is specially optimized in
opt_eq_func()@vm_insnhelper.c.
This fix is made from this discussion:
https://www.omniref.com/ruby/2.1.4/symbols/Symbol/%3D%3D#line=8361 .
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-11 01:42:01 +00:00
nobu
c58962d43f
string.c: no exception in QUOTE
...
* string.c (sym_printable): QUOTE() should not raise an exception
even on invalid byte sequence.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-06 14:55:20 +00:00
nobu
a707ab4bc8
string.c: no terminator
...
* string.c (rb_str_{,l,r}strip_bang): rb_str_subseq() will not
NUL-terminate the result string, in the future, so it will not
be needed in other cases.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-05 06:05:14 +00:00
nobu
62ede28373
string.c: reduce memory copy
...
* string.c (rb_str_lstrip, rb_str_strip): reduce memory copy by
copying necessary part only.
* string.c (rb_str_strip_bang, rb_str_strip): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-05 03:13:55 +00:00
nobu
3614f8bd1c
string.c: wchar terminator
...
* string.c (rb_str_lstrip_bang, rb_str_rstrip_bang): terminate
wchar strings with wchar 0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-05 01:54:22 +00:00
duerst
d26c49657d
string.c: improved comment.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48142 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-26 02:24:28 +00:00
akr
0d4185f30e
* Avoid undefined behaviors found by gcc -fsanitize=undefined.
...
gcc (Debian 4.9.1-16) 4.9.1
* string.c (rb_str_sum): Avoid undefined behavior.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 09:49:28 +00:00
nobu
5617e31771
symbol.c: rename rb_str_dynamic_intern
...
* iseq.c, marshal.c, string.c: use rb_str_intern instead of
rb_str_dynamic_intern.
* symbol.c (rb_str_intern): rename rb_str_dynamic_intern.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-14 07:23:01 +00:00
normal
58a73d96b4
string.c (rb_str_intern): remove unnecessary RB_GC_GUARD
...
Incorrectly placed, and no longer needed since r25351
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-11 06:02:42 +00:00
nobu
ef08f00541
string.c: fix NOFREE
...
* string.c (str_make_independent_expand): drop NOFREE flag after
reallocation, static buffer is not pointed anymore.
[ruby-core:65317] [Bug #10304 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-29 13:54:37 +00:00
nobu
abac848564
string.c: rb_str_new_static
...
* string.c (rb_str_new_static): create string object with static
buffer. incorporated from mruby.
* string.c (rb_{usascii,utf8,enc}_str_new_static): ditto with
encodings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-19 05:53:00 +00:00
nobu
1495c2f8e9
string.c: UTF-8 string function
...
* string.c (rb_utf8_str_new, rb_utf8_str_new_cstr): make UTF-8
string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-18 14:51:08 +00:00
normal
a4a2b9be7a
string.c (Init_frozen_strings): use st_init_table_with_size
...
All symbols have an fstring entry, and we initialize symbol tables
with 1000 bins. This reduces resizes during startup.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-11 21:57:34 +00:00
naruse
a8ec4b2cf2
* string.c (sym_find): remove Symbol.find because we have Symbol GC now.
...
https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20140904Japan
If you still want this, request again on Redmine. [Feature #7854 ]
https://bugs.ruby-lang.org/issues/7854
* ext/-test-/symbol/init.c (sym_find): moved from string.c for tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-11 21:22:52 +00:00
normal
343f8b02a1
string.c: remove vm_core.h dependency [ruby-core:64627]
...
* string.c: revert part of r47311, add rb_vm_fstring_table(),
remove vm_core.h dependency. [ruby-core:64627]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-29 07:22:23 +00:00
normal
a1e95636ac
string.c: move frozen_strings table to rb_vm_t
...
Cleanup in case MVM development proceeds.
* string.c: remove static frozen_strings
* string.c (Init_frozen_strings): new function
* string.c (rb_fstring): remove check for frozen strings,
use per-VM table
* string.c (rb_str_free): use per-VM table
* string.c (Init_String): use per-VM table
* vm_core.h (rb_vm_t): add frozen_strings table
* internal.h (Init_frozen_strings): new function prototype
* eval.c (ruby_setup): call Init_frozen_strings
[Feature #10182 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-29 06:30:03 +00:00
ko1
7bfaa467ce
* string.c (rb_fstring): fix condition (easy to cause infinite loop!).
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-22 11:24:38 +00:00