[Vala] don't emit code past return or goto statements



This is just a little code emitor improvement.

        o.j.

From 7356dd2ca01728c2717c88c56634aa68ce498e3f Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <ondrej jirman zonio net>
Date: Tue, 30 Oct 2007 17:23:59 +0100
Subject: [PATCH] don't emit useless code past goto or return statements

---
 ccode/valaccodeblock.vala |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/ccode/valaccodeblock.vala b/ccode/valaccodeblock.vala
index d3df316..bf4a02e 100644
--- a/ccode/valaccodeblock.vala
+++ b/ccode/valaccodeblock.vala
@@ -55,8 +55,18 @@ public class Vala.CCodeBlock : CCodeStatement {
                foreach (CCodeNode statement in statements) {
                        statement.write_declaration (writer);
                }
+               weak CCodeNode last_statement = null;
+               foreach (CCodeNode statement in statements) {
+                       if (statement is CCodeReturnStatement || statement is
CCodeGotoStatement
+                       || statement is CCodeContinueStatement || statement is
CCodeBreakStatement)
+                               last_statement = statement;
+                       if (statement is CCodeLabel)
+                               last_statement = null;
+               }

Attachment: 0001-don-t-emit-useless-code-past-goto-or-return-statemen.patch
Description: application/mbox



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]