vala r2446 - in trunk: . gobject vala vapi vapi/packages/gtk+-2.0 vapigen
- From: ryanl svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r2446 - in trunk: . gobject vala vapi vapi/packages/gtk+-2.0 vapigen
- Date: Mon, 16 Feb 2009 22:17:19 +0000 (UTC)
Author: ryanl
Date: Mon Feb 16 22:17:18 2009
New Revision: 2446
URL: http://svn.gnome.org/viewvc/vala?rev=2446&view=rev
Log:
2009-02-17 Ryan Lortie <desrt desrt ca>
* gobject/valaccodebasemodule.vala:
* vala/valacodewriter.vala:
* vala/valastruct.vala:
* vapigen/valagidlparser.vala:
Add support for a 'use_const' CCode attribute and GIDL XML attribute
that, when set to false, causes Vala not to emit the 'const' modifier
on structure type input arguments. This is useful for structure types
that, by convention, are not used with const (eg: GtkTreeIter).
* vapi/packages/gtk+-2.0/gtk+-2.0.metadata:
* vapi/gtk+-2.0.vapi:
Add 'use_const' for GtkTreeIter to the gtk+-2.0 metadata. Regenerate
vapi.
Modified:
trunk/ChangeLog
trunk/gobject/valaccodebasemodule.vala
trunk/vala/valacodewriter.vala
trunk/vala/valastruct.vala
trunk/vapi/gtk+-2.0.vapi
trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata
trunk/vapigen/valagidlparser.vala
Modified: trunk/gobject/valaccodebasemodule.vala
==============================================================================
--- trunk/gobject/valaccodebasemodule.vala (original)
+++ trunk/gobject/valaccodebasemodule.vala Mon Feb 16 22:17:18 2009
@@ -1093,7 +1093,10 @@
if (p.parameter_type.data_type is Struct) {
var st = (Struct) p.parameter_type.data_type;
if (!st.is_simple_type () && p.direction == ParameterDirection.IN) {
- ctypename = "const " + ctypename;
+ if (st.use_const) {
+ ctypename = "const " + ctypename;
+ }
+
if (!p.parameter_type.nullable) {
ctypename += "*";
}
@@ -3709,3 +3712,5 @@
return node.ccodenode;
}
}
+
+// vim:sw=8 noet
Modified: trunk/vala/valacodewriter.vala
==============================================================================
--- trunk/vala/valacodewriter.vala (original)
+++ trunk/vala/valacodewriter.vala Mon Feb 16 22:17:18 2009
@@ -285,6 +285,10 @@
write_string ("type_id = \"%s\", ".printf (st.get_type_id ()));
}
+ if (!st.use_const) {
+ write_string ("use_const = false, ");
+ }
+
bool first = true;
string cheaders = "";
foreach (string cheader in st.get_cheader_filenames ()) {
Modified: trunk/vala/valastruct.vala
==============================================================================
--- trunk/vala/valastruct.vala (original)
+++ trunk/vala/valastruct.vala Mon Feb 16 22:17:18 2009
@@ -81,6 +81,12 @@
public Method default_construction_method { get; set; }
/**
+ * Specifies if 'const' should be emitted for input parameters
+ * of this type.
+ */
+ public bool use_const { get; set; default = true; }
+
+ /**
* Specifies whether this struct has a registered GType.
*/
public bool has_type_id { get; set; default = true; }
@@ -392,6 +398,9 @@
if (a.has_argument ("destroy_function")) {
set_destroy_function (a.get_string ("destroy_function"));
}
+ if (a.has_argument ("use_const")) {
+ use_const = a.get_bool ("use_const");
+ }
}
private void process_boolean_type_attribute (Attribute a) {
@@ -720,3 +729,5 @@
return !error;
}
}
+
+// vim:sw=8 noet
Modified: trunk/vapi/gtk+-2.0.vapi
==============================================================================
--- trunk/vapi/gtk+-2.0.vapi (original)
+++ trunk/vapi/gtk+-2.0.vapi Mon Feb 16 22:17:18 2009
@@ -5682,7 +5682,7 @@
public weak Gtk.ActionCallback callback;
public bool is_active;
}
- [CCode (type_id = "GTK_TYPE_TREE_ITER", cheader_filename = "gtk/gtk.h")]
+ [CCode (type_id = "GTK_TYPE_TREE_ITER", use_const = false, cheader_filename = "gtk/gtk.h")]
public struct TreeIter {
public int stamp;
public void* user_data;
Modified: trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata
==============================================================================
--- trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata (original)
+++ trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata Mon Feb 16 22:17:18 2009
@@ -393,7 +393,7 @@
GtkToolbar.gpointer hidden="1"
gtk_tool_item_toolbar_reconfigured hidden="1"
GtkToolItem::set_tooltip hidden="1"
-GtkTreeIter is_value_type="1"
+GtkTreeIter is_value_type="1" use_const="0"
gtk_tree_model_filter_new.root nullable="1"
gtk_tree_model_get ellipsis="1" sentinel="-1"
gtk_tree_model_get_iter.iter is_out="1"
Modified: trunk/vapigen/valagidlparser.vala
==============================================================================
--- trunk/vapigen/valagidlparser.vala (original)
+++ trunk/vapigen/valagidlparser.vala Mon Feb 16 22:17:18 2009
@@ -407,6 +407,10 @@
if (eval (nv[1]) == "1") {
st.set_simple_type (true);
}
+ } else if (nv[0] == "use_const") {
+ if (eval (nv[1]) == "0") {
+ st.use_const = false;
+ }
}
}
}
@@ -682,6 +686,10 @@
var nv = attr.split ("=", 2);
if (nv[0] == "cheader_filename") {
st.add_cheader_filename (eval (nv[1]));
+ } else if (nv[0] == "use_const") {
+ if (eval (nv[1]) == "0") {
+ st.use_const = false;
+ }
}
}
}
@@ -1044,7 +1052,7 @@
var m = parse_function ((IdlNodeFunction) member, true);
if (m != null) {
iface.add_method (m);
- }
+ }
}
} else if (member.type == IdlNodeTypeId.VFUNC) {
var m = parse_virtual ((IdlNodeVFunc) member, current_type_func_map.get (member.name), true);
@@ -1955,3 +1963,5 @@
return sig;
}
}
+
+// vim:sw=8 noet
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]