[vala] codegen: Do not use deprecated functions for lock statements



commit dfb95c8093363a057e52da24929e11b2b72b17f0
Author: JÃrg Billeter <j bitron ch>
Date:   Sun Sep 16 20:45:15 2012 +0200

    codegen: Do not use deprecated functions for lock statements
    
    Fixes bug 662810.

 codegen/valaccodebasemodule.vala |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index a81afec..8b2a359 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -462,13 +462,16 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 		gvalue_type = (Struct) glib_ns.scope.lookup ("Value");
 		gvariant_type = (Class) glib_ns.scope.lookup ("Variant");
 		gsource_type = (Class) glib_ns.scope.lookup ("Source");
-		mutex_type = (Struct) glib_ns.scope.lookup ("StaticRecMutex");
 
 		if (context.require_glib_version (2, 32)) {
 			gmutex_type = (Struct) glib_ns.scope.lookup ("Mutex");
 			grecmutex_type = (Struct) glib_ns.scope.lookup ("RecMutex");
 			grwlock_type = (Struct) glib_ns.scope.lookup ("RWLock");
 			gcond_type = (Struct) glib_ns.scope.lookup ("Cond");
+
+			mutex_type = grecmutex_type;
+		} else {
+			mutex_type = (Struct) glib_ns.scope.lookup ("StaticRecMutex");
 		}
 
 		type_module_type = (TypeSymbol) glib_ns.scope.lookup ("TypeModule");
@@ -871,8 +874,15 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 			pop_context ();
 
 			if (finalize_context != null) {
+				string mutex_clear;
+				if (context.require_glib_version (2, 32)) {
+					mutex_clear = "g_rec_mutex_clear";
+				} else {
+					mutex_clear = "g_static_rec_mutex_free";
+				}
+
 				push_context (finalize_context);
-				var fc = new CCodeFunctionCall (new CCodeIdentifier ("g_static_rec_mutex_free"));
+				var fc = new CCodeFunctionCall (new CCodeIdentifier (mutex_clear));
 				fc.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, l));
 				ccode.add_expression (fc);
 				pop_context ();



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