return_error.add_argument (new CCodeIdentifier ("error"));
ccode.add_expression (return_error);
+ var free_error = new CCodeFunctionCall (new CCodeIdentifier ("g_error_free"));
+ free_error.add_argument (new CCodeIdentifier ("error"));
+ ccode.add_expression (free_error);
+
if (need_goto_label || requires_destroy (owned_type)) {
ccode.add_goto ("_error");
need_goto_label = true;
return_error.add_argument (new CCodeIdentifier ("error"));
ccode.add_expression (return_error);
+ var free_error = new CCodeFunctionCall (new CCodeIdentifier ("g_error_free"));
+ free_error.add_argument (new CCodeIdentifier ("error"));
+ ccode.add_expression (free_error);
+
if (need_goto_label) {
ccode.add_goto ("_error");
} else {