]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Revert commit revision 1691 due bad regressions, reopens bug 540705
authorRaffaele Sandrini <raffaele@sandrini.ch>
Thu, 10 Jul 2008 14:59:00 +0000 (14:59 +0000)
committerRaffaele Sandrini <rasa@src.gnome.org>
Thu, 10 Jul 2008 14:59:00 +0000 (14:59 +0000)
2008-07-10  Raffaele Sandrini  <raffaele@sandrini.ch>

* ccode/valaccodedeclaration.vala:
* ccode/valaccodemodifiers.vala:
* gobject/valatyperegisterfunction.vala:

Revert commit revision 1691 due bad regressions, reopens bug
540705

svn path=/trunk/; revision=1693

ChangeLog
ccode/valaccodedeclaration.vala
ccode/valaccodemodifiers.vala
gobject/valatyperegisterfunction.vala

index 4ff4418f3ffecfbdb681c73a7b721b4a1f6320dd..2d7fe9fa13bb68f7b64fa27e8216cd3922bdf442 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-07-10  Raffaele Sandrini  <raffaele@sandrini.ch>
+
+       * ccode/valaccodedeclaration.vala:
+       * ccode/valaccodemodifiers.vala:
+       * gobject/valatyperegisterfunction.vala:
+
+       Revert commit revision 1691 due bad regressions, reopens bug
+       540705
+
 2008-07-10  Jürg Billeter  <j@bitron.ch>
 
        * vapi/glib-2.0.vapi:
@@ -27,7 +36,7 @@
 
        * tests/classes-properties.vala: update
 
-2008-07-09  Jared Moore  <jaredm@svn.gnome.org>
+2008-07-98  Jared Moore  <jaredm@svn.gnome.org>
 
        * gobject/valaccodecompiler.vala:
 
index 7a0223bab26d9c9b195b608e1ff1267ffc574b48..eb7ada541a6bab83646b025a470be030a00c0e97 100644 (file)
@@ -59,9 +59,6 @@ public class Vala.CCodeDeclaration : CCodeStatement {
                        if ((modifiers & CCodeModifiers.STATIC) != 0) {
                                writer.write_string ("static ");
                        }
-                       if ((modifiers & CCodeModifiers.VOLATILE) != 0) {
-                               writer.write_string ("volatile ");
-                       }
                        if ((modifiers & CCodeModifiers.EXTERN) != 0 && !has_initializer ()) {
                                writer.write_string ("extern ");
                        }
index 90f6809c8b399540ef22e54a862f18701325f3b2..670bf4e12f2628b997ccf92002182199a76c9df2 100644 (file)
@@ -29,6 +29,5 @@ public enum Vala.CCodeModifiers {
        STATIC = 1 << 0,
        REGISTER = 1 << 1,
        EXTERN = 1 << 2,
-       INLINE = 1 << 3,
-       VOLATILE = 1 << 4
+       INLINE = 1 << 3
 }
index d342d02cebac20cf7b855e405ead2f544b02724b..3e81a514603f3144c492cba7641dea6144cf7f4c 100644 (file)
@@ -45,7 +45,7 @@ public abstract class Vala.TypeRegisterFunction : Object {
                var type_block = new CCodeBlock ();
                var cdecl = new CCodeDeclaration ("GType");
                cdecl.add_declarator (new CCodeVariableDeclarator.with_initializer (type_id_name, new CCodeConstant ("0")));
-               cdecl.modifiers = CCodeModifiers.STATIC | CCodeModifiers.VOLATILE;
+               cdecl.modifiers = CCodeModifiers.STATIC;
                if (!plugin) {
                        type_block.add_statement (cdecl);
                } else {
@@ -110,26 +110,14 @@ public abstract class Vala.TypeRegisterFunction : Object {
                        reg_call.add_argument (new CCodeIdentifier ("&g_define_type_fundamental_info"));
                }
                reg_call.add_argument (new CCodeConstant (get_type_flags ()));
-
-               string temp_type_id_name = "%s_type_id_temp".printf (get_type_declaration ().get_lower_case_cname (null));
-               if (!plugin) {
-                       var temp_decl = new CCodeDeclaration ("GType");
-                       temp_decl.add_declarator (new CCodeVariableDeclarator.with_initializer (temp_type_id_name, reg_call));
-                       type_init.add_statement (temp_decl);
-               } else {
-                       type_init.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier (type_id_name), reg_call)));
-               }
+               type_init.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier (type_id_name), reg_call)));
                
                type_init.add_statement (get_type_interface_init_statements ());
 
                if (!plugin) {
-                       var enter = new CCodeFunctionCall (new CCodeIdentifier ("g_once_init_enter"));
-                       enter.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (type_id_name)));
-                       var leave = new CCodeFunctionCall (new CCodeIdentifier ("g_once_init_leave"));
-                       leave.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (type_id_name)));
-                       leave.add_argument (new CCodeIdentifier (temp_type_id_name));
-                       type_init.add_statement (new CCodeExpressionStatement (leave));
-                       var cif = new CCodeIfStatement (enter, type_init);
+                       var cond = new CCodeFunctionCall (new CCodeIdentifier ("G_UNLIKELY"));
+                       cond.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, new CCodeIdentifier (type_id_name), new CCodeConstant ("0")));
+                       var cif = new CCodeIfStatement (cond, type_init);
                        type_block.add_statement (cif);
                } else {
                        type_block = type_init;