]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix default values of flag enums
authorMarc-André Lureau <marcandre.lureau@gmail.com>
Wed, 4 Aug 2010 13:05:54 +0000 (15:05 +0200)
committerJürg Billeter <j@bitron.ch>
Wed, 4 Aug 2010 13:11:19 +0000 (15:11 +0200)
Fixes bug 605812.

codegen/valaccodebasemodule.vala

index 67a6d7c0eb177aee71bebf7cdeafcb6182788af7..71137b5bf2f3d3e6a51ea3ac094e65ed016b70ef 100644 (file)
@@ -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);