[vala] Fix public struct constants



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]