if (m.base_method != null) {
// refer to base method to inherit default arguments
m = m.base_method;
- symbol_reference = m;
+
+ if (m.signal_reference != null) {
+ // method is class/default handler for a signal
+ // let signal deal with member access
+ symbol_reference = m.signal_reference;
+ } else {
+ symbol_reference = m;
+ }
+
member = symbol_reference;
} else if (m.base_interface_method != null) {
// refer to base method to inherit default arguments
*/
public bool has_construct_function { get; set; default = true; }
+ public weak Signal signal_reference { get; set; }
+
public bool coroutine { get; set; }
private Gee.List<FormalParameter> parameters = new ArrayList<FormalParameter> ();
/* valasignal.vala
*
- * Copyright (C) 2006-2008 Jürg Billeter
+ * Copyright (C) 2006-2009 Jürg Billeter
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
if (generated_method == null) {
generated_method = new Method (name, return_type, source_reference);
+ generated_method.access = access;
generated_method.is_virtual = true;
generated_method.vfunc_name = name;
+ generated_method.signal_reference = this;
foreach (FormalParameter param in parameters) {
generated_method.add_parameter (param);