mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* include/ruby/intern.h (rb_str_buf_cat2, rb_str_cat2): optimization
for literals. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
2ef807cc34
commit
c62db0676b
3 changed files with 39 additions and 20 deletions
|
@ -1,3 +1,8 @@
|
|||
Tue Jul 22 02:51:46 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* include/ruby/intern.h (rb_str_buf_cat2, rb_str_cat2): optimization
|
||||
for literals.
|
||||
|
||||
Tue Jul 22 02:50:47 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* README.EXT, README.EXT.ja (1.5 Manipulating Ruby data): fix the
|
||||
|
|
|
@ -537,26 +537,6 @@ VALUE rb_str_buf_new2(const char*);
|
|||
VALUE rb_str_tmp_new(long);
|
||||
VALUE rb_usascii_str_new(const char*, long);
|
||||
VALUE rb_usascii_str_new2(const char*);
|
||||
#if defined __GNUC__
|
||||
#define rb_str_new2(str) __extension__ ( \
|
||||
{ \
|
||||
(__builtin_constant_p(str)) ? \
|
||||
rb_str_new(str, strlen(str)) : \
|
||||
rb_str_new2(str); \
|
||||
})
|
||||
#define rb_tainted_str_new2(str) __extension__ ( \
|
||||
{ \
|
||||
(__builtin_constant_p(str)) ? \
|
||||
rb_tainted_str_new(str, strlen(str)) : \
|
||||
rb_tainted_str_new2(str); \
|
||||
})
|
||||
#define rb_usascii_str_new2(str) __extension__ ( \
|
||||
{ \
|
||||
(__builtin_constant_p(str)) ? \
|
||||
rb_usascii_str_new(str, strlen(str)) : \
|
||||
rb_usascii_str_new2(str); \
|
||||
})
|
||||
#endif
|
||||
void rb_str_free(VALUE);
|
||||
void rb_str_shared_replace(VALUE, VALUE);
|
||||
VALUE rb_str_buf_append(VALUE, VALUE);
|
||||
|
@ -598,6 +578,38 @@ void rb_str_setter(VALUE, ID, VALUE*);
|
|||
VALUE rb_str_intern(VALUE);
|
||||
VALUE rb_sym_to_s(VALUE);
|
||||
VALUE rb_str_length(VALUE);
|
||||
#if defined __GNUC__
|
||||
#define rb_str_new2(str) __extension__ ( \
|
||||
{ \
|
||||
(__builtin_constant_p(str)) ? \
|
||||
rb_str_new(str, strlen(str)) : \
|
||||
rb_str_new2(str); \
|
||||
})
|
||||
#define rb_tainted_str_new2(str) __extension__ ( \
|
||||
{ \
|
||||
(__builtin_constant_p(str)) ? \
|
||||
rb_tainted_str_new(str, strlen(str)) : \
|
||||
rb_tainted_str_new2(str); \
|
||||
})
|
||||
#define rb_usascii_str_new2(str) __extension__ ( \
|
||||
{ \
|
||||
(__builtin_constant_p(str)) ? \
|
||||
rb_usascii_str_new(str, strlen(str)) : \
|
||||
rb_usascii_str_new2(str); \
|
||||
})
|
||||
#define rb_str_buf_cat2(str, ptr) __extension__ ( \
|
||||
{ \
|
||||
(__builtin_constant_p(ptr)) ? \
|
||||
rb_str_buf_cat(str, ptr, strlen(ptr)) : \
|
||||
rb_str_buf_cat2(str, ptr); \
|
||||
})
|
||||
#define rb_str_cat2(str, ptr) __extension__ ( \
|
||||
{ \
|
||||
(__builtin_constant_p(ptr)) ? \
|
||||
rb_str_cat(str, ptr, strlen(ptr)) : \
|
||||
rb_str_cat2(str, ptr); \
|
||||
})
|
||||
#endif
|
||||
/* struct.c */
|
||||
VALUE rb_struct_new(VALUE, ...);
|
||||
VALUE rb_struct_define(const char*, ...);
|
||||
|
|
2
string.c
2
string.c
|
@ -28,6 +28,8 @@
|
|||
#undef rb_str_new2
|
||||
#undef rb_tainted_str_new2
|
||||
#undef rb_usascii_str_new2
|
||||
#undef rb_str_buf_cat2
|
||||
#undef rb_str_cat2
|
||||
|
||||
VALUE rb_cString;
|
||||
VALUE rb_cSymbol;
|
||||
|
|
Loading…
Reference in a new issue