diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2016-11-02 15:36:33 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2016-11-03 20:47:31 +0100 |
commit | 7a5ff26e941f79e85d0bcba37b3c9ec7322e39c5 (patch) | |
tree | ab915c67c36bbe6a50eed84e7d3110a5c425abd2 /ccode | |
parent | 10ce48431c58906c043d4f82abd67835783d80e6 (diff) | |
download | vala-7a5ff26e941f79e85d0bcba37b3c9ec7322e39c5.tar.gz |
Fix deprecation of class/struct fields
Respect the "deprecated" attributes given to class and struct fields, while
actually adding G_GNUC_DEPRECATED to their declaration.
Diffstat (limited to 'ccode')
-rw-r--r-- | ccode/valaccodedeclaration.vala | 7 | ||||
-rw-r--r-- | ccode/valaccodestruct.vala | 3 | ||||
-rw-r--r-- | ccode/valaccodevariabledeclarator.vala | 9 |
3 files changed, 11 insertions, 8 deletions
diff --git a/ccode/valaccodedeclaration.vala b/ccode/valaccodedeclaration.vala index 24bda724d..634165a69 100644 --- a/ccode/valaccodedeclaration.vala +++ b/ccode/valaccodedeclaration.vala @@ -114,6 +114,9 @@ public class Vala.CCodeDeclaration : CCodeStatement { if ((modifiers & CCodeModifiers.REGISTER) == CCodeModifiers.REGISTER) { writer.write_string ("register "); } + if ((modifiers & CCodeModifiers.VOLATILE) != 0) { + writer.write_string ("volatile "); + } writer.write_string (type_name); writer.write_string (" "); @@ -127,6 +130,10 @@ public class Vala.CCodeDeclaration : CCodeStatement { decl.write_declaration (writer); } + if (CCodeModifiers.DEPRECATED in modifiers) { + writer.write_string (" G_GNUC_DEPRECATED"); + } + writer.write_string (";"); writer.write_newline (); } diff --git a/ccode/valaccodestruct.vala b/ccode/valaccodestruct.vala index 96836ed5d..1eadd025c 100644 --- a/ccode/valaccodestruct.vala +++ b/ccode/valaccodestruct.vala @@ -59,9 +59,10 @@ public class Vala.CCodeStruct : CCodeNode { * @param type_name field type * @param name member name */ - public void add_field (string type_name, string name, CCodeDeclaratorSuffix? declarator_suffix = null) { + public void add_field (string type_name, string name, CCodeModifiers modifiers = 0, CCodeDeclaratorSuffix? declarator_suffix = null) { var decl = new CCodeDeclaration (type_name); decl.add_declarator (new CCodeVariableDeclarator (name, null, declarator_suffix)); + decl.modifiers = modifiers; add_declaration (decl); } diff --git a/ccode/valaccodevariabledeclarator.vala b/ccode/valaccodevariabledeclarator.vala index c8dd87495..43372bf6d 100644 --- a/ccode/valaccodevariabledeclarator.vala +++ b/ccode/valaccodevariabledeclarator.vala @@ -101,9 +101,8 @@ public class Vala.CCodeVariableDeclarator : CCodeDeclarator { } public class Vala.CCodeDeclaratorSuffix { - public bool array; - public CCodeExpression? array_length; - public bool deprecated; + bool array; + CCodeExpression? array_length; public CCodeDeclaratorSuffix.with_array (CCodeExpression? array_length = null) { this.array_length = array_length; @@ -118,9 +117,5 @@ public class Vala.CCodeDeclaratorSuffix { } writer.write_string ("]"); } - - if (deprecated) { - writer.write_string (" G_GNUC_DEPRECATED"); - } } } |