vala r1640 - in trunk: . gobject
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r1640 - in trunk: . gobject
- Date: Mon, 23 Jun 2008 18:50:58 +0000 (UTC)
Author: juergbi
Date: Mon Jun 23 18:50:58 2008
New Revision: 1640
URL: http://svn.gnome.org/viewvc/vala?rev=1640&view=rev
Log:
2008-06-23 JÃrg Billeter <j bitron ch>
* gobject/valaccodeassignmentbinding.vala:
Support disconnecting from detailed signals
Modified:
trunk/ChangeLog
trunk/gobject/valaccodeassignmentbinding.vala
Modified: trunk/gobject/valaccodeassignmentbinding.vala
==============================================================================
--- trunk/gobject/valaccodeassignmentbinding.vala (original)
+++ trunk/gobject/valaccodeassignmentbinding.vala Mon Jun 23 18:50:58 2008
@@ -161,18 +161,28 @@
// g_signal_handlers_disconnect_matched
// second argument: mask
- ccall.add_argument (new CCodeConstant ("G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA"));
+ if (signal_detail == null) {
+ ccall.add_argument (new CCodeConstant ("G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA"));
+ } else {
+ ccall.add_argument (new CCodeConstant ("G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA"));
+ }
// get signal id
var ccomma = new CCodeCommaExpression ();
var temp_decl = codegen.get_temp_variable (codegen.uint_type);
codegen.temp_vars.insert (0, temp_decl);
var parse_call = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_parse_name"));
- parse_call.add_argument (sig.get_canonical_cconstant ());
+ parse_call.add_argument (sig.get_canonical_cconstant (signal_detail));
var decl_type = (TypeSymbol) sig.parent_symbol;
parse_call.add_argument (new CCodeIdentifier (decl_type.get_type_id ()));
parse_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (temp_decl.name)));
- parse_call.add_argument (new CCodeConstant ("NULL"));
+ if (signal_detail == null) {
+ parse_call.add_argument (new CCodeConstant ("NULL"));
+ } else {
+ var detail_temp_decl = codegen.get_temp_variable (codegen.gquark_type);
+ codegen.temp_vars.insert (0, detail_temp_decl);
+ parse_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (detail_temp_decl.name)));
+ }
parse_call.add_argument (new CCodeConstant ("FALSE"));
ccomma.append_expression (parse_call);
ccomma.append_expression (new CCodeIdentifier (temp_decl.name));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]