vala r1318 - in trunk: . gobject



Author: juergbi
Date: Sat Apr 26 07:56:21 2008
New Revision: 1318
URL: http://svn.gnome.org/viewvc/vala?rev=1318&view=rev

Log:
2008-04-26  Juerg Billeter  <j bitron ch>

	* gobject/valaccodegenerator.vala:
	* gobject/valaccodetypesymbolbinding.vala:

	Fix `char' properties, fixes bug 529604


Modified:
   trunk/ChangeLog
   trunk/gobject/valaccodegenerator.vala
   trunk/gobject/valaccodetypesymbolbinding.vala

Modified: trunk/gobject/valaccodegenerator.vala
==============================================================================
--- trunk/gobject/valaccodegenerator.vala	(original)
+++ trunk/gobject/valaccodegenerator.vala	Sat Apr 26 07:56:21 2008
@@ -93,6 +93,8 @@
 	public DataType uint_type;
 	public DataType long_type;
 	public DataType ulong_type;
+	public DataType int8_type;
+	public DataType uint8_type;
 	public DataType int64_type;
 	public DataType uint64_type;
 	public DataType string_type;
@@ -214,6 +216,8 @@
 		uint_type = new ValueType ((Typesymbol) root_symbol.scope.lookup ("uint"));
 		long_type = new ValueType ((Typesymbol) root_symbol.scope.lookup ("long"));
 		ulong_type = new ValueType ((Typesymbol) root_symbol.scope.lookup ("ulong"));
+		int8_type = new ValueType ((Typesymbol) root_symbol.scope.lookup ("int8"));
+		uint8_type = new ValueType ((Typesymbol) root_symbol.scope.lookup ("uint8"));
 		int64_type = new ValueType ((Typesymbol) root_symbol.scope.lookup ("int64"));
 		uint64_type = new ValueType ((Typesymbol) root_symbol.scope.lookup ("uint64"));
 		float_type = new ValueType ((Typesymbol) root_symbol.scope.lookup ("float"));

Modified: trunk/gobject/valaccodetypesymbolbinding.vala
==============================================================================
--- trunk/gobject/valaccodetypesymbolbinding.vala	(original)
+++ trunk/gobject/valaccodetypesymbolbinding.vala	Sat Apr 26 07:56:21 2008
@@ -104,6 +104,16 @@
 			} else {
 				cspec.add_argument (new CCodeConstant ("FALSE"));
 			}
+		} else if (prop.type_reference.data_type == codegen.int8_type.data_type
+		           || prop.type_reference.data_type == codegen.char_type.data_type) {
+			cspec.call = new CCodeIdentifier ("g_param_spec_char");
+			cspec.add_argument (new CCodeConstant ("G_MININT8"));
+			cspec.add_argument (new CCodeConstant ("G_MAXINT8"));
+			if (prop.default_expression != null) {
+				cspec.add_argument ((CCodeExpression) prop.default_expression.ccodenode);
+			} else {
+				cspec.add_argument (new CCodeConstant ("0"));
+			}
 		} else if (prop.type_reference.data_type == codegen.float_type.data_type) {
 			cspec.call = new CCodeIdentifier ("g_param_spec_float");
 			cspec.add_argument (new CCodeConstant ("-G_MAXFLOAT"));



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