[gobject-introspection: 1/2] [everything] Add alternative boxed constructors



commit ab2da23f4793016bfe4b2b327ddf6e10a94ea907
Author: Johan Dahlin <johan gnome org>
Date:   Tue Mar 9 12:28:22 2010 -0300

    [everything] Add alternative boxed constructors

 gir/Everything-1.0-expected.gir |   36 ++++++++++++++++++++++++++++++++++++
 gir/everything.c                |   34 ++++++++++++++++++++++++++++++++++
 gir/everything.h                |    4 ++++
 3 files changed, 74 insertions(+), 0 deletions(-)
---
diff --git a/gir/Everything-1.0-expected.gir b/gir/Everything-1.0-expected.gir
index 6bf6c8b..a284c44 100644
--- a/gir/Everything-1.0-expected.gir
+++ b/gir/Everything-1.0-expected.gir
@@ -31,6 +31,42 @@ and/or use gtk-doc annotations.  -->
           <type name="TestBoxed" c:type="TestBoxed*"/>
         </return-value>
       </constructor>
+      <constructor name="new_alternative_constructor1"
+                   c:identifier="test_boxed_new_alternative_constructor1">
+        <return-value transfer-ownership="full">
+          <type name="TestBoxed" c:type="TestBoxed*"/>
+        </return-value>
+        <parameters>
+          <parameter name="i" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_alternative_constructor2"
+                   c:identifier="test_boxed_new_alternative_constructor2">
+        <return-value transfer-ownership="full">
+          <type name="TestBoxed" c:type="TestBoxed*"/>
+        </return-value>
+        <parameters>
+          <parameter name="i" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+          <parameter name="j" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_alternative_constructor3"
+                   c:identifier="test_boxed_new_alternative_constructor3">
+        <return-value transfer-ownership="full">
+          <type name="TestBoxed" c:type="TestBoxed*"/>
+        </return-value>
+        <parameters>
+          <parameter name="s" transfer-ownership="full">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+        </parameters>
+      </constructor>
       <method name="copy" c:identifier="test_boxed_copy">
         <return-value transfer-ownership="full">
           <type name="TestBoxed" c:type="TestBoxed*"/>
diff --git a/gir/everything.c b/gir/everything.c
index 6796088..3957d06 100644
--- a/gir/everything.c
+++ b/gir/everything.c
@@ -1,4 +1,5 @@
 #include <string.h>
+#include <stdlib.h>
 #include "everything.h"
 #include <gio/gio.h>
 
@@ -1257,6 +1258,39 @@ test_boxed_new (void)
 }
 
 TestBoxed *
+test_boxed_new_alternative_constructor1 (int i)
+{
+  TestBoxed *boxed = g_slice_new0(TestBoxed);
+  boxed->priv = g_slice_new0(TestBoxedPrivate);
+  boxed->priv->magic = 0xdeadbeef;
+  boxed->some_int8 = i;
+
+  return boxed;
+}
+
+TestBoxed *
+test_boxed_new_alternative_constructor2 (int i, int j)
+{
+  TestBoxed *boxed = g_slice_new0(TestBoxed);
+  boxed->priv = g_slice_new0(TestBoxedPrivate);
+  boxed->priv->magic = 0xdeadbeef;
+  boxed->some_int8 = i + j;
+
+  return boxed;
+}
+
+TestBoxed *
+test_boxed_new_alternative_constructor3 (char *s)
+{
+  TestBoxed *boxed = g_slice_new0(TestBoxed);
+  boxed->priv = g_slice_new0(TestBoxedPrivate);
+  boxed->priv->magic = 0xdeadbeef;
+  boxed->some_int8 = atoi(s);
+
+  return boxed;
+}
+
+TestBoxed *
 test_boxed_copy (TestBoxed *boxed)
 {
   TestBoxed *new_boxed = test_boxed_new();
diff --git a/gir/everything.h b/gir/everything.h
index be4f6c6..04c27d7 100644
--- a/gir/everything.h
+++ b/gir/everything.h
@@ -216,6 +216,10 @@ struct _TestBoxed
 
 GType      test_boxed_get_type (void);
 TestBoxed *test_boxed_new      (void);
+TestBoxed *test_boxed_new_alternative_constructor1  (int i);
+TestBoxed *test_boxed_new_alternative_constructor2  (int i, int j);
+TestBoxed *test_boxed_new_alternative_constructor3  (char *s);
+
 TestBoxed *test_boxed_copy     (TestBoxed *boxed);
 gboolean   test_boxed_equals   (TestBoxed *boxed,
 				TestBoxed *other);



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