Commit 765c39c7 authored by Rico Tzschichholz's avatar Rico Tzschichholz

codegen: Use copies of error_variable of catch-clauses for nested usage

Calling visit_local_variable() multiple times on the same instance of a
LocalVariable causes issues.
parent ccb8f50c
......@@ -353,8 +353,12 @@ public class Vala.GErrorModule : CCodeDelegateModule {
ccode.open_block ();
if (clause.error_variable != null) {
visit_local_variable (clause.error_variable);
ccode.add_assignment (get_variable_cexpression (get_local_cname (clause.error_variable)), get_variable_cexpression ("_inner_error_"));
// use a copy for possible nested usage
var error_variable = new LocalVariable (clause.error_type.copy (), clause.variable_name); = true;
error_variable.checked = true;
visit_local_variable (error_variable);
ccode.add_assignment (get_variable_cexpression (get_local_cname (error_variable)), get_variable_cexpression ("_inner_error_"));
} else {
// error object is not used within catch statement, clear it
var cclear = new CCodeFunctionCall (new CCodeIdentifier ("g_clear_error"));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment