public string finish_vfunc_name {
get {
if (_finish_vfunc_name == null) {
- _finish_vfunc_name = get_finish_name_for_basename (vfunc_name);
+ if (ccode != null) {
+ _finish_vfunc_name = ccode.get_string ("finish_vfunc_name");
+ }
+ if (_finish_vfunc_name == null) {
+ _finish_vfunc_name = get_finish_name_for_basename (vfunc_name);
+ }
}
return _finish_vfunc_name;
}
FLOATING,
TYPE_ID,
RETURN_VOID,
- DELEGATE_TARGET_CNAME;
+ DELEGATE_TARGET_CNAME,
+ FINISH_VFUNC_NAME;
public static ArgumentType? from_string (string name) {
var enum_class = (EnumClass) typeof(ArgumentType).class_ref ();
method.set_attribute_string ("CCode", "vfunc_name", metadata.get_string (ArgumentType.VFUNC_NAME));
method.is_virtual = true;
}
+ if (metadata.has_argument (ArgumentType.FINISH_VFUNC_NAME)) {
+ method.set_attribute_string ("CCode", "finish_vfunc_name", metadata.get_string (ArgumentType.FINISH_VFUNC_NAME));
+ method.is_virtual = true;
+ }
}
if (!(metadata.get_expression (ArgumentType.THROWS) is NullLiteral)) {
}
} else if (nv[0] == "vfunc_name") {
m.set_attribute_string ("CCode", "vfunc_name", eval (nv[1]));
+ } else if (nv[0] == "finish_vfunc_name") {
+ m.set_attribute_string ("CCode", "finish_vfunc_name", eval (nv[1]));
} else if (nv[0] == "finish_name") {
m.set_attribute_string ("CCode", "finish_name", eval (nv[1]));
} else if (nv[0] == "async") {