diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-08-13 19:05:49 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-08-13 19:05:49 +0200 |
commit | cb1828cfc5273aca752de9b39a77e0cd53305e61 (patch) | |
tree | 0066498c7a6d01c3aa54308f52d66986b2991c0e /vala/valacodegenerator.vala | |
parent | 647b55dcba78780f4246ac8700ae20ca8134714c (diff) | |
download | vala-cb1828cfc5273aca752de9b39a77e0cd53305e61.tar.gz |
Force usage of temporary variables for "tainted" member accesses
This is required to handle the side effect of postfix- and unary-
increment/decrement expressions.
Regression of 32ffc862417be39d42a1b8eeb3d0748b3e138aff
and b9035aaf17a9a97a070812a8ee83251fd3893b1e
Fixes https://gitlab.gnome.org/GNOME/vala/issues/1061
Diffstat (limited to 'vala/valacodegenerator.vala')
-rw-r--r-- | vala/valacodegenerator.vala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/vala/valacodegenerator.vala b/vala/valacodegenerator.vala index cea0db8f6..9452b49a3 100644 --- a/vala/valacodegenerator.vala +++ b/vala/valacodegenerator.vala @@ -32,15 +32,15 @@ public abstract class Vala.CodeGenerator : CodeVisitor { public virtual void emit (CodeContext context) { } - public abstract TargetValue load_local (LocalVariable local); + public abstract TargetValue load_local (LocalVariable local, Expression? expr = null); public abstract void store_local (LocalVariable local, TargetValue value, bool initializer, SourceReference? source_reference = null); - public abstract TargetValue load_parameter (Parameter param); + public abstract TargetValue load_parameter (Parameter param, Expression? expr = null); public abstract void store_parameter (Parameter param, TargetValue value, bool capturing_parameter = false, SourceReference? source_reference = null); - public abstract TargetValue load_field (Field field, TargetValue? instance); + public abstract TargetValue load_field (Field field, TargetValue? instance, Expression? expr = null); public abstract void store_field (Field field, TargetValue? instance, TargetValue value, SourceReference? source_reference = null); } |