From: Jürg Billeter Date: Sun, 16 Sep 2012 18:45:15 +0000 (+0200) Subject: codegen: Do not use deprecated functions for lock statements X-Git-Tag: 0.17.7~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dfb95c8093363a057e52da24929e11b2b72b17f0;p=thirdparty%2Fvala.git codegen: Do not use deprecated functions for lock statements Fixes bug 662810. --- 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 ();