[gimp] pdb: add gimp_procedural_db_proc_argument() and _return_value()



commit c8f38810d191fb33ba7d54eb1647b0605b14c83e
Author: Michael Natterer <mitch gimp org>
Date:   Mon Aug 5 10:46:55 2019 +0200

    pdb: add gimp_procedural_db_proc_argument() and _return_value()
    
    Which return proper GParamSpecs. Incuding some useless testing code in
    gimp_procedural_db_proc_info(), to make sure things work, will go away
    again soon.

 app/pdb/internal-procs.c       |   2 +-
 app/pdb/procedural-db-cmds.c   | 182 +++++++++++++++++++++++++++++++++++++++++
 libgimp/gimpproceduraldb.c     |  22 +++++
 libgimp/gimpproceduraldb_pdb.c |  83 +++++++++++++++++++
 libgimp/gimpproceduraldb_pdb.h |  80 +++++++++---------
 pdb/app.pl                     |   9 ++
 pdb/groups/procedural_db.pdb   | 123 +++++++++++++++++++++++++++-
 pdb/lib.pl                     |   3 +
 pdb/pdb.pl                     |  11 +++
 9 files changed, 475 insertions(+), 40 deletions(-)
---
diff --git a/app/pdb/internal-procs.c b/app/pdb/internal-procs.c
index 113c95cae2..3db3f2bff3 100644
--- a/app/pdb/internal-procs.c
+++ b/app/pdb/internal-procs.c
@@ -28,7 +28,7 @@
 #include "internal-procs.h"
 
 
-/* 743 procedures registered total */
+/* 745 procedures registered total */
 
 void
 internal_procs_init (GimpPDB *pdb)
diff --git a/app/pdb/procedural-db-cmds.c b/app/pdb/procedural-db-cmds.c
index ef3eb53e23..540d99473e 100644
--- a/app/pdb/procedural-db-cmds.c
+++ b/app/pdb/procedural-db-cmds.c
@@ -370,6 +370,116 @@ procedural_db_proc_val_invoker (GimpProcedure         *procedure,
   return return_vals;
 }
 
+static GimpValueArray *
+procedural_db_proc_argument_invoker (GimpProcedure         *procedure,
+                                     Gimp                  *gimp,
+                                     GimpContext           *context,
+                                     GimpProgress          *progress,
+                                     const GimpValueArray  *args,
+                                     GError               **error)
+{
+  gboolean success = TRUE;
+  GimpValueArray *return_vals;
+  const gchar *procedure_name;
+  gint32 arg_num;
+  GParamSpec *param_spec = NULL;
+
+  procedure_name = g_value_get_string (gimp_value_array_index (args, 0));
+  arg_num = g_value_get_int (gimp_value_array_index (args, 1));
+
+  if (success)
+    {
+      GimpProcedure *proc;
+      gchar         *canonical;
+
+      canonical = gimp_canonicalize_identifier (procedure_name);
+
+      proc = gimp_pdb_lookup_procedure (gimp->pdb, canonical);
+
+      if (! proc)
+        {
+          const gchar *compat_name;
+
+          compat_name = gimp_pdb_lookup_compat_proc_name (gimp->pdb, canonical);
+
+          if (compat_name)
+            proc = gimp_pdb_lookup_procedure (gimp->pdb, compat_name);
+        }
+
+      g_free (canonical);
+
+      if (proc && (arg_num >= 0 && arg_num < proc->num_args))
+        {
+          param_spec = g_param_spec_ref (proc->args[arg_num]);
+        }
+      else
+        success = FALSE;
+    }
+
+  return_vals = gimp_procedure_get_return_values (procedure, success,
+                                                  error ? *error : NULL);
+
+  if (success)
+    g_value_take_param (gimp_value_array_index (return_vals, 1), param_spec);
+
+  return return_vals;
+}
+
+static GimpValueArray *
+procedural_db_proc_return_value_invoker (GimpProcedure         *procedure,
+                                         Gimp                  *gimp,
+                                         GimpContext           *context,
+                                         GimpProgress          *progress,
+                                         const GimpValueArray  *args,
+                                         GError               **error)
+{
+  gboolean success = TRUE;
+  GimpValueArray *return_vals;
+  const gchar *procedure_name;
+  gint32 val_num;
+  GParamSpec *param_spec = NULL;
+
+  procedure_name = g_value_get_string (gimp_value_array_index (args, 0));
+  val_num = g_value_get_int (gimp_value_array_index (args, 1));
+
+  if (success)
+    {
+      GimpProcedure *proc;
+      gchar         *canonical;
+
+      canonical = gimp_canonicalize_identifier (procedure_name);
+
+      proc = gimp_pdb_lookup_procedure (gimp->pdb, canonical);
+
+      if (! proc)
+        {
+          const gchar *compat_name;
+
+          compat_name = gimp_pdb_lookup_compat_proc_name (gimp->pdb, canonical);
+
+          if (compat_name)
+            proc = gimp_pdb_lookup_procedure (gimp->pdb, compat_name);
+        }
+
+      g_free (canonical);
+
+      if (proc && (val_num >= 0 && val_num < proc->num_values))
+        {
+          param_spec = g_param_spec_ref (proc->values[val_num]);
+        }
+      else
+        success = FALSE;
+    }
+
+  return_vals = gimp_procedure_get_return_values (procedure, success,
+                                                  error ? *error : NULL);
+
+  if (success)
+    g_value_take_param (gimp_value_array_index (return_vals, 1), param_spec);
+
+  return return_vals;
+}
+
 static GimpValueArray *
 procedural_db_get_data_invoker (GimpProcedure         *procedure,
                                 Gimp                  *gimp,
@@ -824,6 +934,78 @@ register_procedural_db_procs (GimpPDB *pdb)
   gimp_pdb_register_procedure (pdb, procedure);
   g_object_unref (procedure);
 
+  /*
+   * gimp-procedural-db-proc-argument
+   */
+  procedure = gimp_procedure_new (procedural_db_proc_argument_invoker);
+  gimp_object_set_static_name (GIMP_OBJECT (procedure),
+                               "gimp-procedural-db-proc-argument");
+  gimp_procedure_set_static_strings (procedure,
+                                     "gimp-procedural-db-proc-argument",
+                                     "Queries the procedural database for information on the specified 
procedure's argument.",
+                                     "This procedure returns the #GParamSpec of procedure_name's argument.",
+                                     "Michael Natterer <mitch gimp org>",
+                                     "Michael Natterer",
+                                     "2019",
+                                     NULL);
+  gimp_procedure_add_argument (procedure,
+                               gimp_param_spec_string ("procedure-name",
+                                                       "procedure name",
+                                                       "The procedure name",
+                                                       FALSE, FALSE, TRUE,
+                                                       NULL,
+                                                       GIMP_PARAM_READWRITE));
+  gimp_procedure_add_argument (procedure,
+                               gimp_param_spec_int32 ("arg-num",
+                                                      "arg num",
+                                                      "The argument number",
+                                                      G_MININT32, G_MAXINT32, 0,
+                                                      GIMP_PARAM_READWRITE));
+  gimp_procedure_add_return_value (procedure,
+                                   g_param_spec_param ("param-spec",
+                                                       "param spec",
+                                                       "The GParamSpec of the argument",
+                                                       G_TYPE_PARAM,
+                                                       GIMP_PARAM_READWRITE));
+  gimp_pdb_register_procedure (pdb, procedure);
+  g_object_unref (procedure);
+
+  /*
+   * gimp-procedural-db-proc-return-value
+   */
+  procedure = gimp_procedure_new (procedural_db_proc_return_value_invoker);
+  gimp_object_set_static_name (GIMP_OBJECT (procedure),
+                               "gimp-procedural-db-proc-return-value");
+  gimp_procedure_set_static_strings (procedure,
+                                     "gimp-procedural-db-proc-return-value",
+                                     "Queries the procedural database for information on the specified 
procedure's return value.",
+                                     "This procedure returns the #GParamSpec of procedure_name's return 
value.",
+                                     "Michael Natterer <mitch gimp org>",
+                                     "Michael Natterer",
+                                     "2019",
+                                     NULL);
+  gimp_procedure_add_argument (procedure,
+                               gimp_param_spec_string ("procedure-name",
+                                                       "procedure name",
+                                                       "The procedure name",
+                                                       FALSE, FALSE, TRUE,
+                                                       NULL,
+                                                       GIMP_PARAM_READWRITE));
+  gimp_procedure_add_argument (procedure,
+                               gimp_param_spec_int32 ("val-num",
+                                                      "val num",
+                                                      "The return value number",
+                                                      G_MININT32, G_MAXINT32, 0,
+                                                      GIMP_PARAM_READWRITE));
+  gimp_procedure_add_return_value (procedure,
+                                   g_param_spec_param ("param-spec",
+                                                       "param spec",
+                                                       "The GParamSpec of the return value",
+                                                       G_TYPE_PARAM,
+                                                       GIMP_PARAM_READWRITE));
+  gimp_pdb_register_procedure (pdb, procedure);
+  g_object_unref (procedure);
+
   /*
    * gimp-procedural-db-get-data
    */
diff --git a/libgimp/gimpproceduraldb.c b/libgimp/gimpproceduraldb.c
index 4605af18cd..ae5caaef6c 100644
--- a/libgimp/gimpproceduraldb.c
+++ b/libgimp/gimpproceduraldb.c
@@ -82,6 +82,8 @@ gimp_procedural_db_proc_info (const gchar      *procedure,
 
       for (i = 0; i < *num_args; i++)
         {
+          GParamSpec *pspec;
+
           if (! gimp_procedural_db_proc_arg (procedure,
                                              i,
                                              &(*args)[i].type,
@@ -93,10 +95,21 @@ gimp_procedural_db_proc_info (const gchar      *procedure,
 
               return FALSE;
             }
+
+          pspec = gimp_procedural_db_proc_argument (procedure, i);
+
+          if (pspec)
+            {
+              g_printerr ("Arg %i of %s: %s\n", i, procedure,
+                          G_PARAM_SPEC_TYPE_NAME (pspec));
+              g_param_spec_unref (pspec);
+            }
         }
 
       for (i = 0; i < *num_values; i++)
         {
+          GParamSpec *pspec;
+
           if (! gimp_procedural_db_proc_val (procedure,
                                              i,
                                              &(*return_vals)[i].type,
@@ -108,6 +121,15 @@ gimp_procedural_db_proc_info (const gchar      *procedure,
 
               return FALSE;
             }
+
+          pspec = gimp_procedural_db_proc_return_value (procedure, i);
+
+          if (pspec)
+            {
+              g_printerr ("Value %i of %s: %s\n", i, procedure,
+                          G_PARAM_SPEC_TYPE_NAME (pspec));
+              g_param_spec_unref (pspec);
+            }
         }
      }
 
diff --git a/libgimp/gimpproceduraldb_pdb.c b/libgimp/gimpproceduraldb_pdb.c
index e80f6eb9b4..4bf5a06091 100644
--- a/libgimp/gimpproceduraldb_pdb.c
+++ b/libgimp/gimpproceduraldb_pdb.c
@@ -404,6 +404,89 @@ gimp_procedural_db_proc_val (const gchar     *procedure_name,
   return success;
 }
 
+/**
+ * gimp_procedural_db_proc_argument:
+ * @procedure_name: The procedure name.
+ * @arg_num: The argument number.
+ *
+ * Queries the procedural database for information on the specified
+ * procedure's argument.
+ *
+ * This procedure returns the #GParamSpec of procedure_name's argument.
+ *
+ * Returns: (transfer full): The GParamSpec of the argument.
+ *          The returned value must be freed with g_param_spec_unref().
+ *
+ * Since: 3.0
+ **/
+GParamSpec *
+gimp_procedural_db_proc_argument (const gchar *procedure_name,
+                                  gint         arg_num)
+{
+  GimpValueArray *args;
+  GimpValueArray *return_vals;
+  GParamSpec *param_spec = NULL;
+
+  args = gimp_value_array_new_from_types (G_TYPE_STRING,
+                                          GIMP_TYPE_INT32,
+                                          G_TYPE_NONE);
+  g_value_set_string (gimp_value_array_index (args, 0), procedure_name);
+  g_value_set_int (gimp_value_array_index (args, 1), arg_num);
+
+  return_vals = gimp_run_procedure_with_array ("gimp-procedural-db-proc-argument",
+                                               args);
+  gimp_value_array_unref (args);
+
+  if (g_value_get_enum (gimp_value_array_index (return_vals, 0)) == GIMP_PDB_SUCCESS)
+    param_spec = g_value_dup_param (gimp_value_array_index (return_vals, 1));
+
+  gimp_value_array_unref (return_vals);
+
+  return param_spec;
+}
+
+/**
+ * gimp_procedural_db_proc_return_value:
+ * @procedure_name: The procedure name.
+ * @val_num: The return value number.
+ *
+ * Queries the procedural database for information on the specified
+ * procedure's return value.
+ *
+ * This procedure returns the #GParamSpec of procedure_name's return
+ * value.
+ *
+ * Returns: (transfer full): The GParamSpec of the return value.
+ *          The returned value must be freed with g_param_spec_unref().
+ *
+ * Since: 3.0
+ **/
+GParamSpec *
+gimp_procedural_db_proc_return_value (const gchar *procedure_name,
+                                      gint         val_num)
+{
+  GimpValueArray *args;
+  GimpValueArray *return_vals;
+  GParamSpec *param_spec = NULL;
+
+  args = gimp_value_array_new_from_types (G_TYPE_STRING,
+                                          GIMP_TYPE_INT32,
+                                          G_TYPE_NONE);
+  g_value_set_string (gimp_value_array_index (args, 0), procedure_name);
+  g_value_set_int (gimp_value_array_index (args, 1), val_num);
+
+  return_vals = gimp_run_procedure_with_array ("gimp-procedural-db-proc-return-value",
+                                               args);
+  gimp_value_array_unref (args);
+
+  if (g_value_get_enum (gimp_value_array_index (return_vals, 0)) == GIMP_PDB_SUCCESS)
+    param_spec = g_value_dup_param (gimp_value_array_index (return_vals, 1));
+
+  gimp_value_array_unref (return_vals);
+
+  return param_spec;
+}
+
 /**
  * _gimp_procedural_db_get_data:
  * @identifier: The identifier associated with data.
diff --git a/libgimp/gimpproceduraldb_pdb.h b/libgimp/gimpproceduraldb_pdb.h
index 45b4c7bbe1..5ce28b7d2f 100644
--- a/libgimp/gimpproceduraldb_pdb.h
+++ b/libgimp/gimpproceduraldb_pdb.h
@@ -32,44 +32,48 @@ G_BEGIN_DECLS
 /* For information look into the C source or the html documentation */
 
 
-gchar*                   gimp_procedural_db_temp_name     (void);
-gboolean                 gimp_procedural_db_dump          (const gchar       *filename);
-gboolean                 gimp_procedural_db_query         (const gchar       *name,
-                                                           const gchar       *blurb,
-                                                           const gchar       *help,
-                                                           const gchar       *author,
-                                                           const gchar       *copyright,
-                                                           const gchar       *date,
-                                                           const gchar       *proc_type,
-                                                           gint              *num_matches,
-                                                           gchar           ***procedure_names);
-gboolean                 gimp_procedural_db_proc_exists   (const gchar       *procedure_name);
-G_GNUC_INTERNAL gboolean _gimp_procedural_db_proc_info    (const gchar       *procedure_name,
-                                                           gchar            **blurb,
-                                                           gchar            **help,
-                                                           gchar            **author,
-                                                           gchar            **copyright,
-                                                           gchar            **date,
-                                                           GimpPDBProcType   *proc_type,
-                                                           gint              *num_args,
-                                                           gint              *num_values);
-gboolean                 gimp_procedural_db_proc_arg      (const gchar       *procedure_name,
-                                                           gint               arg_num,
-                                                           GimpPDBArgType    *arg_type,
-                                                           gchar            **arg_name,
-                                                           gchar            **arg_desc);
-gboolean                 gimp_procedural_db_proc_val      (const gchar       *procedure_name,
-                                                           gint               val_num,
-                                                           GimpPDBArgType    *val_type,
-                                                           gchar            **val_name,
-                                                           gchar            **val_desc);
-G_GNUC_INTERNAL gboolean _gimp_procedural_db_get_data     (const gchar       *identifier,
-                                                           gint              *bytes,
-                                                           guint8           **data);
-gint                     gimp_procedural_db_get_data_size (const gchar       *identifier);
-G_GNUC_INTERNAL gboolean _gimp_procedural_db_set_data     (const gchar       *identifier,
-                                                           gint               bytes,
-                                                           const guint8      *data);
+gchar*                   gimp_procedural_db_temp_name         (void);
+gboolean                 gimp_procedural_db_dump              (const gchar       *filename);
+gboolean                 gimp_procedural_db_query             (const gchar       *name,
+                                                               const gchar       *blurb,
+                                                               const gchar       *help,
+                                                               const gchar       *author,
+                                                               const gchar       *copyright,
+                                                               const gchar       *date,
+                                                               const gchar       *proc_type,
+                                                               gint              *num_matches,
+                                                               gchar           ***procedure_names);
+gboolean                 gimp_procedural_db_proc_exists       (const gchar       *procedure_name);
+G_GNUC_INTERNAL gboolean _gimp_procedural_db_proc_info        (const gchar       *procedure_name,
+                                                               gchar            **blurb,
+                                                               gchar            **help,
+                                                               gchar            **author,
+                                                               gchar            **copyright,
+                                                               gchar            **date,
+                                                               GimpPDBProcType   *proc_type,
+                                                               gint              *num_args,
+                                                               gint              *num_values);
+gboolean                 gimp_procedural_db_proc_arg          (const gchar       *procedure_name,
+                                                               gint               arg_num,
+                                                               GimpPDBArgType    *arg_type,
+                                                               gchar            **arg_name,
+                                                               gchar            **arg_desc);
+gboolean                 gimp_procedural_db_proc_val          (const gchar       *procedure_name,
+                                                               gint               val_num,
+                                                               GimpPDBArgType    *val_type,
+                                                               gchar            **val_name,
+                                                               gchar            **val_desc);
+GParamSpec*              gimp_procedural_db_proc_argument     (const gchar       *procedure_name,
+                                                               gint               arg_num);
+GParamSpec*              gimp_procedural_db_proc_return_value (const gchar       *procedure_name,
+                                                               gint               val_num);
+G_GNUC_INTERNAL gboolean _gimp_procedural_db_get_data         (const gchar       *identifier,
+                                                               gint              *bytes,
+                                                               guint8           **data);
+gint                     gimp_procedural_db_get_data_size     (const gchar       *identifier);
+G_GNUC_INTERNAL gboolean _gimp_procedural_db_set_data         (const gchar       *identifier,
+                                                               gint               bytes,
+                                                               const guint8      *data);
 
 
 G_END_DECLS
diff --git a/pdb/app.pl b/pdb/app.pl
index e5417d1dbf..61b9b9aa1a 100644
--- a/pdb/app.pl
+++ b/pdb/app.pl
@@ -508,6 +508,15 @@ gimp_param_spec_parasite ("$name",
                           "$nick",
                           "$blurb",
                           $flags)
+CODE
+    }
+    elsif ($pdbtype eq 'param') {
+       $pspec = <<CODE;
+g_param_spec_param ("$name",
+                    "$nick",
+                    "$blurb",
+                    G_TYPE_PARAM,
+                    $flags)
 CODE
     }
     elsif ($pdbtype eq 'int32array') {
diff --git a/pdb/groups/procedural_db.pdb b/pdb/groups/procedural_db.pdb
index 91a426d8a2..5a8c396c3c 100644
--- a/pdb/groups/procedural_db.pdb
+++ b/pdb/groups/procedural_db.pdb
@@ -244,6 +244,124 @@ CODE
     );
 }
 
+sub procedural_db_proc_argument {
+    $blurb = <<BLURB;
+Queries the procedural database for information on the specified procedure's
+argument.
+BLURB
+
+    $help = <<HELP;
+This procedure returns the #GParamSpec of procedure_name's argument.
+HELP
+
+    &mitch_pdb_misc;
+    $date = '2019';
+    $since = '3.0';
+
+    @inargs = (
+       { name => 'procedure_name', type  => 'string', non_empty => 1,
+         desc => 'The procedure name' },
+       { name => 'arg_num', type => 'int32',
+         desc => 'The argument number' }
+    );
+
+    @outargs = (
+       { name => 'param_spec', type => 'param',
+         desc => "The GParamSpec of the argument" }
+    );
+
+   %invoke = (
+       code => <<CODE
+{
+  GimpProcedure *proc;
+  gchar         *canonical;
+
+  canonical = gimp_canonicalize_identifier (procedure_name);
+
+  proc = gimp_pdb_lookup_procedure (gimp->pdb, canonical);
+
+  if (! proc)
+    {
+      const gchar *compat_name;
+
+      compat_name = gimp_pdb_lookup_compat_proc_name (gimp->pdb, canonical);
+
+      if (compat_name)
+        proc = gimp_pdb_lookup_procedure (gimp->pdb, compat_name);
+    }
+
+  g_free (canonical);
+
+  if (proc && (arg_num >= 0 && arg_num < proc->num_args))
+    {
+      param_spec = g_param_spec_ref (proc->args[arg_num]);
+    }
+  else
+    success = FALSE;
+}
+CODE
+   );
+}
+
+sub procedural_db_proc_return_value {
+    $blurb = <<BLURB;
+Queries the procedural database for information on the specified procedure's
+return value.
+BLURB
+
+    $help = <<HELP;
+This procedure returns the #GParamSpec of procedure_name's return value.
+HELP
+
+    &mitch_pdb_misc;
+    $date = '2019';
+    $since = '3.0';
+
+    @inargs = (
+       { name => 'procedure_name', type  => 'string', non_empty => 1,
+         desc => 'The procedure name' },
+       { name => 'val_num', type => 'int32',
+         desc => 'The return value number' }
+    );
+
+    @outargs = (
+       { name => 'param_spec', type => 'param',
+         desc => "The GParamSpec of the return value" }
+    );
+
+   %invoke = (
+       code => <<CODE
+{
+  GimpProcedure *proc;
+  gchar         *canonical;
+
+  canonical = gimp_canonicalize_identifier (procedure_name);
+
+  proc = gimp_pdb_lookup_procedure (gimp->pdb, canonical);
+
+  if (! proc)
+    {
+      const gchar *compat_name;
+
+      compat_name = gimp_pdb_lookup_compat_proc_name (gimp->pdb, canonical);
+
+      if (compat_name)
+        proc = gimp_pdb_lookup_procedure (gimp->pdb, compat_name);
+    }
+
+  g_free (canonical);
+
+  if (proc && (val_num >= 0 && val_num < proc->num_values))
+    {
+      param_spec = g_param_spec_ref (proc->values[val_num]);
+    }
+  else
+    success = FALSE;
+}
+CODE
+   );
+}
+
 sub procedural_db_proc_arg {
     $blurb = <<BLURB;
 Queries the procedural database for information on the specified procedure's
@@ -507,7 +625,10 @@ CODE
             procedural_db_query
             procedural_db_proc_exists
             procedural_db_proc_info
-            procedural_db_proc_arg procedural_db_proc_val
+            procedural_db_proc_arg
+            procedural_db_proc_val
+            procedural_db_proc_argument
+            procedural_db_proc_return_value
            procedural_db_get_data procedural_db_get_data_size
            procedural_db_set_data);
 
diff --git a/pdb/lib.pl b/pdb/lib.pl
index d804adfaef..3b1ee8f091 100644
--- a/pdb/lib.pl
+++ b/pdb/lib.pl
@@ -163,6 +163,9 @@ sub generate {
            elsif ($retarg->{type} eq 'stringarray') {
                $retdesc .= "\n *          The returned value must be freed with g_strfreev().";
            }
+           elsif ($retarg->{type} eq 'param') {
+               $retdesc .= "\n *          The returned value must be freed with g_param_spec_unref().";
+           }
            elsif (exists $argtype->{array}) {
                $retdesc .= "\n *          The returned value must be freed with g_free().";
            }
diff --git a/pdb/pdb.pl b/pdb/pdb.pl
index e82cc9fdb0..20e8c9b96d 100644
--- a/pdb/pdb.pl
+++ b/pdb/pdb.pl
@@ -277,6 +277,17 @@ package Gimp::CodeGen::pdb;
                     take_value_func => 'g_value_take_boxed ($value, $var)',
                     headers         => [ qw("libgimpbase/gimpbase.h") ] },
 
+    param       => { name            => 'PARAM',
+                    gtype           => 'G_TYPE_PARAM_SPEC',
+                    type            => 'GParamSpec *',
+                    const_type      => 'GParamSpec *',
+                    init_value      => 'NULL',
+                    out_annotate    => '(transfer full)',
+                    get_value_func  => '$var = g_value_get_param ($value)',
+                    dup_value_func  => '$var = g_value_dup_param ($value)',
+                    set_value_func  => 'g_value_set_param ($value, $var)',
+                    take_value_func => 'g_value_take_param ($value, $var)' },
+
     # Special cases
     enum        => { name            => 'INT32',
                     gtype           => 'G_TYPE_ENUM',


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