Project

General

Profile

« Previous | Next » 

Revision 5eff15d1

Added by ngoto (Naohisa Goto) almost 8 years ago

  • string.c (rb_str_change_terminator_length): New function to change
    termlen and resize heap for the terminator. This is split from
    rb_str_fill_terminator (str_fill_term) because filling terminator
    and changing terminator length are different things. [Bug #12536]

  • internal.h: declaration for rb_str_change_terminator_length.

  • string.c (str_fill_term): Simplify only to zero-fill the terminator.
    For non-shared strings, it assumes that (capa + termlen) bytes of
    heap is allocated. This partially reverts r55557.

  • encoding.c (rb_enc_associate_index): rb_str_change_terminator_length
    is used, and it should be called whenever the termlen is changed.

  • string.c (str_capacity): New static function to return capacity
    of a string with the given termlen, because the termlen may
    sometimes be different from TERM_LEN(str) especially during
    changing termlen or filling terminator with specific termlen.

  • string.c (rb_str_capacity): Use str_capacity.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e