vala r1695 - in trunk: . gobject



Author: jaredm
Date: Thu Jul 10 16:05:19 2008
New Revision: 1695
URL: http://svn.gnome.org/viewvc/vala?rev=1695&view=rev

Log:
2008-07-11  Jared Moore  <jaredm svn gnome org>

	* gobject/valatyperegisterfunction.vala:

	Reverted codegen changes in previous commit due to massive breakage, 
	reopens bug 540705.


Modified:
   trunk/   (props changed)
   trunk/ChangeLog
   trunk/gobject/valatyperegisterfunction.vala

Modified: trunk/gobject/valatyperegisterfunction.vala
==============================================================================
--- trunk/gobject/valatyperegisterfunction.vala	(original)
+++ trunk/gobject/valatyperegisterfunction.vala	Thu Jul 10 16:05:19 2008
@@ -45,7 +45,7 @@
 		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 @@
 			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;



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