public virtual TargetValue? copy_value (TargetValue value, CodeNode node) {
var type = value.value_type;
var cexpr = get_cvalue_ (value);
+ var result = ((GLibValue) value).copy ();
if (type is DelegateType) {
- var result = ((GLibValue) value).copy ();
result.delegate_target_destroy_notify_cvalue = new CCodeConstant ("NULL");
return result;
}
ccode.add_expression (copy_call);
}
- return get_local_cvalue (decl);
+ result.value_type = decl.variable_type;
+ result.cvalue = ctemp;
+ return result;
}
/* (temp = expr, temp == NULL ? NULL : ref (temp))
var ccall = new CCodeFunctionCall (new CCodeIdentifier (dup0_func));
ccall.add_argument (cexpr);
- return new GLibValue (type, ccall);
+ result.cvalue = ccall;
+ return result;
}
var ccall = new CCodeFunctionCall (dupexpr);
ccomma.append_expression (ctemp);
}
- return new GLibValue (type, ccomma);
+ result.value_type = decl.variable_type;
+ result.cvalue = ccomma;
+ return result;
}
}