From 864a7edc4902e07108de1f5d242484497a2e0011 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 20 Jul 2009 10:01:05 +0000 Subject: * compile.c (compile_dstr_fragments): reduced needless literal. * parse.y (xstring, regexp, dsym, literal_concat, evstr2dstr): literal at the top of dstr is no longer needed if it is empty, since concatstrings and toregexp always create new strings. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- compile.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'compile.c') diff --git a/compile.c b/compile.c index 636ad31c4..94c157ebe 100644 --- a/compile.c +++ b/compile.c @@ -2143,11 +2143,14 @@ compile_dstr_fragments(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int *cntp { NODE *list = node->nd_next; VALUE lit = node->nd_lit; - int cnt = 1; + int cnt = 0; debugp_param("nd_lit", lit); - hide_obj(lit); - ADD_INSN1(ret, nd_line(node), putobject, lit); + if (!NIL_P(lit)) { + hide_obj(lit); + cnt++; + ADD_INSN1(ret, nd_line(node), putobject, lit); + } while (list) { COMPILE(ret, "each string", list->nd_head); -- cgit