[前][次][番号順一覧][スレッド一覧]

ruby-changes:1780

From: ko1@a...
Date: 25 Aug 2007 17:55:00 +0900
Subject: [ruby-changes:1780] ko1 - Ruby:r13271 (trunk): * string.c, include/ruby/intern.h: export rb_str_length().

ko1	2007-08-25 17:54:29 +0900 (Sat, 25 Aug 2007)

  New Revision: 13271

  Modified files:
    trunk/ChangeLog
    trunk/include/ruby/intern.h
    trunk/insns.def
    trunk/string.c

  Log:
    * string.c, include/ruby/intern.h: export rb_str_length().
    * insns.def: use rb_str_lengt() in opt_length.
    


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/string.c?r1=13271&r2=13270
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13271&r2=13270
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/insns.def?r1=13271&r2=13270
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/include/ruby/intern.h?r1=13271&r2=13270

Index: include/ruby/intern.h
===================================================================
--- include/ruby/intern.h	(revision 13270)
+++ include/ruby/intern.h	(revision 13271)
@@ -520,6 +520,7 @@
 void rb_str_setter(VALUE, ID, VALUE*);
 VALUE rb_str_intern(VALUE);
 VALUE rb_sym_to_s(VALUE);
+VALUE rb_str_length(VALUE);
 /* struct.c */
 VALUE rb_struct_new(VALUE, ...);
 VALUE rb_struct_define(const char*, ...);
Index: insns.def
===================================================================
--- insns.def	(revision 13270)
+++ insns.def	(revision 13271)
@@ -1951,12 +1951,12 @@
 {
     if (!SPECIAL_CONST_P(recv) &&
 	BASIC_OP_UNREDEFINED_P(BOP_LENGTH)) {
-	if (HEAP_CLASS_OF(recv) == rb_cArray) {
+	if (HEAP_CLASS_OF(recv) == rb_cString) {
+	    val = rb_str_length(recv);
+	}
+	else if (HEAP_CLASS_OF(recv) == rb_cArray) {
 	    val = LONG2NUM(RARRAY_LEN(recv));
 	}
-	else if (HEAP_CLASS_OF(recv) == rb_cString) {
-	    val = LONG2NUM(RSTRING_LEN(recv));
-	}
 	else if (HEAP_CLASS_OF(recv) == rb_cHash) {
 	    val = INT2FIX(RHASH(recv)->tbl->num_entries);
 	}
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 13270)
+++ ChangeLog	(revision 13271)
@@ -1,3 +1,9 @@
+Sat Aug 25 17:52:06 2007  Koichi Sasada  <ko1@a...>
+
+	* string.c, include/ruby/intern.h: export rb_str_length().
+
+	* insns.def: use rb_str_lengt() in opt_length.
+
 Sat Aug 25 17:48:51 2007  Koichi Sasada  <ko1@a...>
 
 	* cont.c: rename FIBER_STACK_SIZE to FIBER_VM_STACK_SIZE.
Index: string.c
===================================================================
--- string.c	(revision 13270)
+++ string.c	(revision 13271)
@@ -421,7 +421,7 @@
  *  Returns the character length of <i>str</i>.
  */
 
-static VALUE
+VALUE
 rb_str_length(VALUE str)
 {
     int len;

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]