зеркало из https://github.com/github/ruby.git
* include/ruby/intern.h (rb_str_buf_new2): optimization for literals.
* string.c (str_buf_cat): returns VALUE. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
cd9e9c6deb
Коммит
5ffd0cc80f
|
@ -1,3 +1,9 @@
|
||||||
|
Tue Jul 22 04:26:16 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* include/ruby/intern.h (rb_str_buf_new2): optimization for literals.
|
||||||
|
|
||||||
|
* string.c (str_buf_cat): returns VALUE.
|
||||||
|
|
||||||
Tue Jul 22 03:34:01 2008 Eric Hodel <drbrain@segment7.net>
|
Tue Jul 22 03:34:01 2008 Eric Hodel <drbrain@segment7.net>
|
||||||
|
|
||||||
* lib/rdoc*: Update to RDoc 2.1.0 r112.
|
* lib/rdoc*: Update to RDoc 2.1.0 r112.
|
||||||
|
|
|
@ -597,6 +597,13 @@ VALUE rb_str_length(VALUE);
|
||||||
rb_usascii_str_new(str, strlen(str)) : \
|
rb_usascii_str_new(str, strlen(str)) : \
|
||||||
rb_usascii_str_new2(str); \
|
rb_usascii_str_new2(str); \
|
||||||
})
|
})
|
||||||
|
#define rb_str_buf_new2(str) __extension__ ( \
|
||||||
|
{ \
|
||||||
|
(__builtin_constant_p(str)) ? \
|
||||||
|
rb_str_buf_cat(rb_str_buf_new(strlen(str)), \
|
||||||
|
str, strlen(str)) : \
|
||||||
|
rb_str_buf_new2(str); \
|
||||||
|
})
|
||||||
#define rb_str_buf_cat2(str, ptr) __extension__ ( \
|
#define rb_str_buf_cat2(str, ptr) __extension__ ( \
|
||||||
{ \
|
{ \
|
||||||
(__builtin_constant_p(ptr)) ? \
|
(__builtin_constant_p(ptr)) ? \
|
||||||
|
|
5
string.c
5
string.c
|
@ -28,6 +28,7 @@
|
||||||
#undef rb_str_new2
|
#undef rb_str_new2
|
||||||
#undef rb_tainted_str_new2
|
#undef rb_tainted_str_new2
|
||||||
#undef rb_usascii_str_new2
|
#undef rb_usascii_str_new2
|
||||||
|
#undef rb_str_buf_new2
|
||||||
#undef rb_str_buf_cat2
|
#undef rb_str_buf_cat2
|
||||||
#undef rb_str_cat2
|
#undef rb_str_cat2
|
||||||
|
|
||||||
|
@ -1400,7 +1401,7 @@ rb_str_resize(VALUE str, long len)
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
static long
|
static VALUE
|
||||||
str_buf_cat(VALUE str, const char *ptr, long len)
|
str_buf_cat(VALUE str, const char *ptr, long len)
|
||||||
{
|
{
|
||||||
long capa, total, off = -1;
|
long capa, total, off = -1;
|
||||||
|
@ -3746,7 +3747,7 @@ rb_str_inspect(VALUE str)
|
||||||
{
|
{
|
||||||
rb_encoding *enc = STR_ENC_GET(str);
|
rb_encoding *enc = STR_ENC_GET(str);
|
||||||
char *p, *pend;
|
char *p, *pend;
|
||||||
VALUE result = rb_str_buf_new2("");
|
VALUE result = rb_str_buf_new(0);
|
||||||
|
|
||||||
if (!rb_enc_asciicompat(enc)) enc = rb_usascii_encoding();
|
if (!rb_enc_asciicompat(enc)) enc = rb_usascii_encoding();
|
||||||
rb_enc_associate(result, enc);
|
rb_enc_associate(result, enc);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче