summaryrefslogtreecommitdiff
path: root/ccode
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2016-11-02 15:36:33 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2016-11-03 20:47:31 +0100
commit7a5ff26e941f79e85d0bcba37b3c9ec7322e39c5 (patch)
treeab915c67c36bbe6a50eed84e7d3110a5c425abd2 /ccode
parent10ce48431c58906c043d4f82abd67835783d80e6 (diff)
downloadvala-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.vala7
-rw-r--r--ccode/valaccodestruct.vala3
-rw-r--r--ccode/valaccodevariabledeclarator.vala9
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");
- }
}
}