]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Revert "codegen: Inherit array_{length,null_terminated} from base parameter"
authorJürg Billeter <j@bitron.ch>
Sun, 29 Sep 2013 17:47:41 +0000 (19:47 +0200)
committerJürg Billeter <j@bitron.ch>
Sun, 29 Sep 2013 17:47:41 +0000 (19:47 +0200)
This reverts commit ebfe7b7411f413a8631fec22e704a0d8921f4417.

codegen/valaccodeattribute.vala
tests/Makefile.am
tests/methods/bug642885.vala [deleted file]
vala/valaparameter.vala

index 05745df0cfaeb2dae2ed9f94f252c38f9522bb7e..82a74f7c3b2333e18e761d520ea802db3a7667f8 100644 (file)
@@ -468,36 +468,9 @@ public class Vala.CCodeAttribute : AttributeCache {
                }
        }
 
-       public bool array_length {
-               get {
-                       if (_array_length == null) {
-                               if (node.get_attribute ("NoArrayLength") != null) {
-                                       // deprecated
-                                       _array_length = false;
-                               } else if (ccode != null && ccode.has_argument ("array_length")) {
-                                       _array_length = ccode.get_bool ("array_length");
-                               } else {
-                                       _array_length = get_default_array_length ();
-                               }
-                       }
-                       return _array_length;
-               }
-       }
-
-       public bool array_null_terminated {
-               get {
-                       if (_array_null_terminated == null) {
-                               if (ccode != null && ccode.has_argument ("array_null_terminated")) {
-                                       _array_null_terminated = ccode.get_bool ("array_null_terminated");
-                               } else {
-                                       _array_null_terminated = get_default_array_null_terminated ();
-                               }
-                       }
-                       return _array_null_terminated;
-               }
-       }
-
+       public bool array_length { get; private set; }
        public string? array_length_type { get; private set; }
+       public bool array_null_terminated { get; private set; }
        public string? array_length_name { get; private set; }
        public string? array_length_expr { get; private set; }
        public bool delegate_target { get; private set; }
@@ -539,8 +512,6 @@ public class Vala.CCodeAttribute : AttributeCache {
        private string _delegate_target_name;
        private string _ctype;
        private bool ctype_set = false;
-       private bool? _array_length;
-       private bool? _array_null_terminated;
 
        private static int dynamic_method_id;
 
@@ -548,10 +519,13 @@ public class Vala.CCodeAttribute : AttributeCache {
                this.node = node;
                this.sym = node as Symbol;
 
+               array_length = true;
                delegate_target = true;
                ccode = node.get_attribute ("CCode");
                if (ccode != null) {
+                       array_length = ccode.get_bool ("array_length", true);
                        array_length_type = ccode.get_string ("array_length_type");
+                       array_null_terminated = ccode.get_bool ("array_null_terminated");
                        array_length_name = ccode.get_string ("array_length_cname");
                        array_length_expr = ccode.get_string ("array_length_cexpr");
                        if (ccode.has_argument ("pos")) {
@@ -560,6 +534,10 @@ public class Vala.CCodeAttribute : AttributeCache {
                        delegate_target = ccode.get_bool ("delegate_target", true);
                        sentinel = ccode.get_string ("sentinel");
                }
+               if (node.get_attribute ("NoArrayLength") != null) {
+                       // deprecated
+                       array_length = false;
+               }
                if (sentinel == null) {
                        sentinel = "NULL";
                }
@@ -1296,24 +1274,4 @@ public class Vala.CCodeAttribute : AttributeCache {
                        }
                }
        }
-
-       private bool get_default_array_length () {
-               if (node is Parameter) {
-                       var param = (Parameter) node;
-                       if (param.base_parameter != null) {
-                               return CCodeBaseModule.get_ccode_array_length (param.base_parameter);
-                       }
-               }
-               return true;
-       }
-
-       private bool get_default_array_null_terminated () {
-               if (node is Parameter) {
-                       var param = (Parameter) node;
-                       if (param.base_parameter != null) {
-                               return CCodeBaseModule.get_ccode_array_null_terminated (param.base_parameter);
-                       }
-               }
-               return false;
-       }
 }
index de7e82323623f543dfbc9f46703a579befeed34c..b84d433ebdf24528cbb4ca1ab0daeb419cf8246b 100644 (file)
@@ -48,7 +48,6 @@ TESTS = \
        methods/bug620673.vala \
        methods/bug622570.vala \
        methods/bug639054.vala \
-       methods/bug642885.vala \
        methods/bug642899.vala \
        methods/bug646345.vala \
        methods/bug648320.vala \
diff --git a/tests/methods/bug642885.vala b/tests/methods/bug642885.vala
deleted file mode 100644 (file)
index 4acf97d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-public class Foo : Application {
-       public bool activated = false;
-
-    public Foo () {
-        Object (application_id: "org.foo.bar");
-    }
-
-    protected override void activate () {
-               activated = true;
-    }
-
-    protected override bool local_command_line (ref unowned string[] arguments, out int exit_status) {
-        var option_context = new OptionContext ();
-
-        // FIXME: https://bugzilla.gnome.org/show_bug.cgi?id=642885
-        unowned string[] args = arguments;
-
-        try {
-            option_context.parse (ref args);
-        } catch (OptionError e) {
-            exit_status = 1;
-            return true;
-        }
-
-        return base.local_command_line (ref arguments, out exit_status);
-    }
-}
-
-void main () {
-       string[] args = {""};
-       var app = new Foo ();
-       app.run (args);
-       assert (app.activated);
-}
-
-
index 10f0eed1ec8e1f13d10ad5a7a6862b87fef40923..c42d6f33a548e803d1564c017218b0ceabdb3b9b 100644 (file)
@@ -44,11 +44,6 @@ public class Vala.Parameter : Variable {
        
        public bool captured { get; set; }
 
-       /**
-        * The base parameter of this parameter relative to the base method.
-        */
-       public Parameter base_parameter { get; set; }
-
        /**
         * Creates a new formal parameter.
         *
@@ -185,15 +180,6 @@ public class Vala.Parameter : Variable {
                        }
                }
 
-               var m = parent_symbol as Method;
-               if (m != null) {
-                       Method base_method = m.base_method != null ? m.base_method : m.base_interface_method;
-                       if (base_method != null && base_method != m) {
-                               int index = m.get_parameters ().index_of (this);
-                               base_parameter = base_method.get_parameters ().get (index);
-                       }
-               }
-
                context.analyzer.current_source_file = old_source_file;
                context.analyzer.current_symbol = old_symbol;