[vala] Fix default values of flag enums



commit 54caefae22d8b3a493d07bfc11807fc3d440adc6
Author: Marc-André Lureau <marcandre lureau gmail com>
Date:   Wed Aug 4 15:05:54 2010 +0200

    Fix default values of flag enums
    
    Fixes bug 605812.

 codegen/valaccodebasemodule.vala |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 67a6d7c..71137b5 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -681,10 +681,15 @@ public class Vala.CCodeBaseModule : CCodeModule {
 
 		cenum.deprecated = en.deprecated;
 
+		int flag_shift = 0;
 		foreach (EnumValue ev in en.get_values ()) {
 			CCodeEnumValue c_ev;
 			if (ev.value == null) {
 				c_ev = new CCodeEnumValue (ev.get_cname ());
+				if (en.is_flags) {
+					c_ev.value = new CCodeConstant ("1 << %d".printf (flag_shift));
+					flag_shift += 1;
+				}
 			} else {
 				ev.value.accept (codegen);
 				c_ev = new CCodeEnumValue (ev.get_cname (), (CCodeExpression) ev.value.ccodenode);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]