[gobject-introspection] Make (skip) annotation work everywhere
- From: Dan Winship <danw src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gobject-introspection] Make (skip) annotation work everywhere
- Date: Mon, 23 Nov 2009 16:07:57 +0000 (UTC)
commit 91cc82321e38febd65cd79ecaef2850b475f8ff2
Author: Dan Winship <danw gnome org>
Date: Sun Nov 22 12:49:37 2009 -0500
Make (skip) annotation work everywhere
Previously it only worked for toplevel nodes. Now it works for any
node except <field>, since skipping a field would cause the
description of the struct layout to be wrong.
https://bugzilla.gnome.org/show_bug.cgi?id=602652
giscanner/girwriter.py | 8 ++++++++
tests/scanner/foo.c | 11 +++++++++++
tests/scanner/foo.h | 2 ++
3 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/giscanner/girwriter.py b/giscanner/girwriter.py
index 76a77d8..78e34c9 100644
--- a/giscanner/girwriter.py
+++ b/giscanner/girwriter.py
@@ -152,6 +152,8 @@ and/or use gtk-doc annotations. ''')
self.write_tag('alias', attrs)
def _write_callable(self, callable, tag_name, extra_attrs):
+ if callable.skip:
+ return
attrs = [('name', callable.name)]
attrs.extend(extra_attrs)
if callable.doc:
@@ -304,6 +306,8 @@ and/or use gtk-doc annotations. ''')
self._write_member(member)
def _write_member(self, member):
+ if member.skip:
+ return
attrs = [('name', member.name),
('value', str(member.value)),
('c:identifier', member.symbol)]
@@ -376,6 +380,8 @@ and/or use gtk-doc annotations. ''')
self._write_method(method)
def _write_property(self, prop):
+ if prop.skip:
+ return
attrs = [('name', prop.name)]
self._append_version(prop, attrs)
self._append_deprecated(prop, attrs)
@@ -493,6 +499,8 @@ and/or use gtk-doc annotations. ''')
self._write_type(field.type)
def _write_signal(self, signal):
+ if signal.skip:
+ return
attrs = [('name', signal.name)]
if signal.doc:
attrs.append(('doc', signal.doc))
diff --git a/tests/scanner/foo.c b/tests/scanner/foo.c
index e810b52..d2fb23b 100644
--- a/tests/scanner/foo.c
+++ b/tests/scanner/foo.c
@@ -255,6 +255,17 @@ foo_object_read (FooObject *object, int offset, int length)
}
+/**
+ * foo_object_skipped_method: (skip)
+ * @object: obj
+ *
+ * This is only useful from C.
+ */
+void
+foo_object_skipped_method (FooObject *object)
+{
+}
+
G_DEFINE_ABSTRACT_TYPE (FooSubobject, foo_subobject, FOO_TYPE_OBJECT);
static void
diff --git a/tests/scanner/foo.h b/tests/scanner/foo.h
index 199d57a..b8f88a7 100644
--- a/tests/scanner/foo.h
+++ b/tests/scanner/foo.h
@@ -125,6 +125,8 @@ void foo_object_read (FooObject *object, int offse
int foo_object_static_meth (void);
+void foo_object_skipped_method (FooObject *object);
+
struct _FooSubobject
{
FooObject parent_instance;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]