summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-19 08:39:03 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-19 08:39:03 +0000
commitc3ab4a4b1bab1dd8276c97306195361021822357 (patch)
treebac025c21df5f571dd624578ddc7d53495fea71b
parent768380583a4a2527994fa33e78fdcfbeee20b6a8 (diff)
* string.c (str_alloc): specify 'inline' modifier.
* string.c (str_alloc): remove cSymbol hack that no longer necessary. * string.c (scan_once): avoid retrieving encoding info unless necessary. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--string.c9
2 files changed, 12 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index fb7d6ab70b..906eef96b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Thu Jun 19 17:37:21 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * string.c (str_alloc): specify 'inline' modifier.
+
+ * string.c (str_alloc): remove cSymbol hack that no longer
+ necessary.
+
+ * string.c (scan_once): avoid retrieving encoding info unless
+ necessary.
+
Thu Jun 19 17:19:14 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* string.c (rb_str_scan): String#scan should preserve last
diff --git a/string.c b/string.c
index 3949a6e33a..f3207d7077 100644
--- a/string.c
+++ b/string.c
@@ -336,16 +336,12 @@ str_frozen_check(VALUE s)
}
}
-static VALUE
+static inline VALUE
str_alloc(VALUE klass)
{
NEWOBJ(str, struct RString);
OBJSETUP(str, klass, T_STRING);
- if (klass == rb_cSymbol) {
- /* need to be registered in table */
- RBASIC(str)->klass = rb_cString;
- }
str->as.heap.ptr = 0;
str->as.heap.len = 0;
str->as.heap.aux.capa = 0;
@@ -5617,16 +5613,15 @@ rb_str_strip(VALUE str)
static VALUE
scan_once(VALUE str, VALUE pat, long *start)
{
- rb_encoding *enc;
VALUE result, match;
struct re_registers *regs;
long i;
- enc = STR_ENC_GET(str);
if (rb_reg_search(pat, str, *start, 0) >= 0) {
match = rb_backref_get();
regs = RMATCH_REGS(match);
if (BEG(0) == END(0)) {
+ rb_encoding *enc = STR_ENC_GET(str);
/*
* Always consume at least one character of the input string
*/