[Clenup?] rb_str_replace

From: Michal Rokos <m.rokos@...>
Date: 2002-08-28 15:46:19 UTC
List: ruby-core #387
Hi,

	condition FL_TEST(str2, ELTS_SHARED|STR_ASSOC) is allway true,
	because FL_TEST(str2, ELTS_SHARED) is already true.

	Is the cleanup really so easy? Or I'm missing something (as
	usual :-))

		Michal
		
Index: string.c
===================================================================
RCS file: /src/ruby/string.c,v
retrieving revision 1.115
diff -u -p -9 -r1.115 string.c
--- string.c	2002/08/28 08:05:23	1.115
+++ string.c	2002/08/28 15:43:13
@@ -1603,25 +1603,20 @@ rb_str_replace(str, str2)
     if (str == str2) return str;
 
     StringValue(str2);
     if (FL_TEST(str2, ELTS_SHARED)) {
 	if (str_independent(str)) {
 	    free(RSTRING(str)->ptr);
 	}
 	RSTRING(str)->len = RSTRING(str2)->len;
 	RSTRING(str)->ptr = RSTRING(str2)->ptr;
-	if (FL_TEST(str2, ELTS_SHARED|STR_ASSOC)) {
-	    FL_SET(str, RBASIC(str2)->flags & (ELTS_SHARED|STR_ASSOC));
-	    RSTRING(str)->aux.shared = RSTRING(str2)->aux.shared;
-	}
-	else {
-	    RSTRING(str)->aux.capa = RSTRING(str2)->aux.capa;
-	}
+	FL_SET(str, RBASIC(str2)->flags & (ELTS_SHARED|STR_ASSOC));
+	RSTRING(str)->aux.shared = RSTRING(str2)->aux.shared;
     }
     else {
 	rb_str_modify(str);
 	rb_str_resize(str, RSTRING(str2)->len);
 	memcpy(RSTRING(str)->ptr, RSTRING(str2)->ptr, RSTRING(str2)->len);
     }
 
     OBJ_INFECT(str, str2);
     return str;
-- 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Michal Rokos                         Czech Technical University, Prague
E-mail:m.rokos@sh.cvut.cz      ICQ:36118339      Jabber:majkl@jabber.cz
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

In This Thread

Prev Next