2008-06-16 Jürg Billeter <j@bitron.ch>
+ * vala/valaerrortype.vala:
+ * vala/valasemanticanalyzer.vala:
+ * gobject/valaccodegenerator.vala:
+
+ Fix memory management of error types, fixes bug 537951
+
+2008-06-16 Jürg Billeter <j@bitron.ch>
+
* vapi/packages/gstreamer-0.10/:
Fix gst_message_parse_* bindings
} else {
return new CCodeIdentifier (type.data_type.get_free_function ());
}
+ } else if (type is ErrorType) {
+ return new CCodeIdentifier ("g_error_free");
} else if (type.data_type != null) {
string unref_function;
if (type is ReferenceType) {
}
public override DataType copy () {
- return new ErrorType (error_domain, source_reference);
+ var result = new ErrorType (error_domain, source_reference);
+ result.source_reference = source_reference;
+ result.value_owned = value_owned;
+ result.nullable = nullable;
+
+ return result;
}
public override string? get_cname () {
public override string? get_type_id () {
return "G_TYPE_POINTER";
}
+
+ public override bool is_reference_type_or_type_parameter () {
+ return true;
+ }
}
}
public override void visit_throw_statement (ThrowStatement stmt) {
+ stmt.error_expression.target_type = new ErrorType (null, stmt.source_reference);
+ stmt.error_expression.target_type.value_owned = true;
+
stmt.accept_children (this);
}