[vala] Fix public struct constants
- From: Jürg Billeter <juergbi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] Fix public struct constants
- Date: Tue, 16 Feb 2010 15:42:58 +0000 (UTC)
commit 7417da939643f682b6628e6fe93d91f8094f016c
Author: Jürg Billeter <j bitron ch>
Date: Tue Feb 16 16:41:30 2010 +0100
Fix public struct constants
Fixes bug 610067.
codegen/valaccodebasemodule.vala | 16 ++++++++++++++--
1 files changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 458f3e3..287e494 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -910,8 +910,20 @@ internal class Vala.CCodeBaseModule : CCodeModule {
if (c.type_reference is ArrayType) {
arr = "[]";
}
- cdecl.add_declarator (new CCodeVariableDeclarator ("%s%s".printf (c.get_cname (), arr), (CCodeExpression) c.initializer.ccodenode));
- cdecl.modifiers = CCodeModifiers.STATIC;
+
+ var cinitializer = (CCodeExpression) c.initializer.ccodenode;
+ if (decl_space != source_declarations) {
+ // never output value in header
+ // special case needed as this method combines declaration and definition
+ cinitializer = null;
+ }
+
+ cdecl.add_declarator (new CCodeVariableDeclarator ("%s%s".printf (c.get_cname (), arr), cinitializer));
+ if (c.is_private_symbol ()) {
+ cdecl.modifiers = CCodeModifiers.STATIC;
+ } else {
+ cdecl.modifiers = CCodeModifiers.EXTERN;
+ }
decl_space.add_constant_declaration (cdecl);
} else {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]