[vala] Do not generate unnecessary error check after throw statement



commit 4fddd11d2de67656cd5db5e18c234d9066f09b2b
Author: Jürg Billeter <j bitron ch>
Date:   Wed Jan 27 18:44:36 2010 +0100

    Do not generate unnecessary error check after throw statement
    
    Fixes bug 589942.

 codegen/valagerrormodule.vala |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/codegen/valagerrormodule.vala b/codegen/valagerrormodule.vala
index a031616..ef25c06 100644
--- a/codegen/valagerrormodule.vala
+++ b/codegen/valagerrormodule.vala
@@ -283,8 +283,14 @@ internal class Vala.GErrorModule : CCodeDelegateModule {
 			cerror_handler = uncaught_error_statement (inner_error);
 		}
 
-		var ccond = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, inner_error, new CCodeConstant ("NULL"));
-		cfrag.append (new CCodeIfStatement (ccond, cerror_handler));
+		if (node is ThrowStatement) {
+			// inner_error is always set, avoid unnecessary if statement
+			// eliminates C warnings
+			cfrag.append (cerror_handler);
+		} else {
+			var ccond = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, inner_error, new CCodeConstant ("NULL"));
+			cfrag.append (new CCodeIfStatement (ccond, cerror_handler));
+		}
 	}
 
 	public override void visit_try_statement (TryStatement stmt) {



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