[vala] Fix null pointer access on out parameter clearing



commit 75d131e7ec8de571281bdf9cea0d1a7e27f5b14e
Author: Didier 'Ptitjes <ptitjes free fr>
Date:   Wed Apr 29 01:26:50 2009 +0200

    Fix null pointer access on out parameter clearing
    
    Fixes bug 580667.
    
    Signed-off-by: Didier 'Ptitjes <ptitjes free fr>
---
 codegen/valaccodemethodmodule.vala |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
index f1bdd9a..26a51c3 100644
--- a/codegen/valaccodemethodmodule.vala
+++ b/codegen/valaccodemethodmodule.vala
@@ -421,7 +421,12 @@ internal class Vala.CCodeMethodModule : CCodeStructModule {
 						} else {
 							// ensure that the passed reference for output parameter is cleared
 							var a = new CCodeAssignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, get_variable_cexpression (param.name)), new CCodeConstant ("NULL"));
-							cinit.append (new CCodeExpressionStatement (a));
+							var cblock = new CCodeBlock ();
+							cblock.add_statement (new CCodeExpressionStatement (a));
+
+							var condition = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, new CCodeIdentifier (param.name), new CCodeConstant ("NULL"));
+							var if_statement = new CCodeIfStatement (condition, cblock);
+							cinit.append (if_statement);
 						}
 					}
 				}



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