]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girwriter: Fix indices for delegate parameters
authorMichal Hruby <michal.mhr@gmail.com>
Sat, 22 Jan 2011 16:45:53 +0000 (17:45 +0100)
committerJürg Billeter <j@bitron.ch>
Tue, 1 Mar 2011 07:07:21 +0000 (08:07 +0100)
codegen/valagirwriter.vala

index 336972e3980120aa1e30be78e3b3b3871a10ab5b..60ab49e52bcafe93c5e62024c66beae612f02e6a 100644 (file)
@@ -928,9 +928,11 @@ public class Vala.GIRWriter : CodeVisitor {
                }
 
                if (delegate_type != null && delegate_type.delegate_symbol.has_target) {
-                       buffer.append_printf (" closure=\"%i\"", index + 1);
+                       int closure_index = is_parameter ?
+                               index + 1 : (type.value_owned ? index - 1 : index);
+                       buffer.append_printf (" closure=\"%i\"", closure_index);
                        if (type.value_owned) {
-                               buffer.append_printf (" destroy=\"%i\"", index + 2);
+                               buffer.append_printf (" destroy=\"%i\"", closure_index + 1);
                        }
                }