[vala] codegen: Drop unnecessary comma expressions in member access
- From: Jürg Billeter <juergbi src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [vala] codegen: Drop unnecessary comma expressions in member access
- Date: Tue,  1 Mar 2011 07:03:08 +0000 (UTC)
commit 7da996a67c9bb4708906e11c5146b6dd75c180db
Author: Luca Bruno <lucabru src gnome org>
Date:   Thu Feb 17 11:39:04 2011 +0100
    codegen: Drop unnecessary comma expressions in member access
 codegen/valaccodememberaccessmodule.vala |   15 ++++-----------
 1 files changed, 4 insertions(+), 11 deletions(-)
---
diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala
index 1ea26bc..9eee610 100644
--- a/codegen/valaccodememberaccessmodule.vala
+++ b/codegen/valaccodememberaccessmodule.vala
@@ -229,15 +229,10 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
 							pub_inst = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, pub_inst);
 						} else {
 							// if instance is e.g. a function call, we can't take the address of the expression
-							// (tmp = expr, &tmp)
-							var ccomma = new CCodeCommaExpression ();
-
 							var temp_var = get_temp_variable (expr.inner.target_type, true, null, false);
 							emit_temp_var (temp_var);
-							ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), pub_inst));
-							ccomma.append_expression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_var.name)));
-
-							pub_inst = ccomma;
+							ccode.add_assignment (get_variable_cexpression (temp_var.name), pub_inst);
+							pub_inst = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_var.name));
 						}
 					}
 
@@ -298,15 +293,13 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
 					}
 				}
 
-				var ccomma = new CCodeCommaExpression ();
 				var temp_var = get_temp_variable (expr.value_type);
 				var ctemp = get_variable_cexpression (temp_var.name);
 				emit_temp_var (temp_var);
 				ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, ctemp));
 				ccall.add_argument (new CCodeConstant ("NULL"));
-				ccomma.append_expression (ccall);
-				ccomma.append_expression (ctemp);
-				set_cvalue (expr, ccomma);
+				ccode.add_expression (ccall);
+				set_cvalue (expr, ctemp);
 			}
 		} else if (expr.symbol_reference is LocalVariable) {
 			var local = (LocalVariable) expr.symbol_reference;
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]