From dfb95c8093363a057e52da24929e11b2b72b17f0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Sun, 16 Sep 2012 20:45:15 +0200 Subject: [PATCH] codegen: Do not use deprecated functions for lock statements Fixes bug 662810. --- codegen/valaccodebasemodule.vala | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index a81afeca4..8b2a35940 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 (); -- 2.47.2