[libpeas] Use stack-allocation for GArgument arrays.



commit c51a385672e9f22b3da69537bb3839c8d4b99195
Author: Steve Frécinaux <code istique net>
Date:   Wed Sep 1 00:22:35 2010 +0200

    Use stack-allocation for GArgument arrays.

 libpeas/peas-extension-set.c |    9 ++-------
 libpeas/peas-extension.c     |    4 +---
 libpeas/peas-introspection.c |    6 ++----
 3 files changed, 5 insertions(+), 14 deletions(-)
---
diff --git a/libpeas/peas-extension-set.c b/libpeas/peas-extension-set.c
index ea5a19e..8da6c27 100644
--- a/libpeas/peas-extension-set.c
+++ b/libpeas/peas-extension-set.c
@@ -497,20 +497,15 @@ peas_extension_set_call_valist (PeasExtensionSet *set,
 {
   GICallableInfo *callable_info;
   GArgument *args;
-  gboolean ret;
 
   g_return_val_if_fail (PEAS_IS_EXTENSION_SET (set), FALSE);
   g_return_val_if_fail (method_name != NULL, FALSE);
 
   callable_info = peas_gi_get_method_info (set->priv->exten_type, method_name);
-  args = g_new (GArgument, g_callable_info_get_n_args (callable_info));
+  args = g_newa (GArgument, g_callable_info_get_n_args (callable_info));
   peas_gi_valist_to_arguments (callable_info, va_args, args, NULL);
 
-  ret = peas_extension_set_callv (set, method_name, args);
-
-  g_free (args);
-
-  return ret;
+  return peas_extension_set_callv (set, method_name, args);
 }
 
 /**
diff --git a/libpeas/peas-extension.c b/libpeas/peas-extension.c
index 3546b6a..d3e0deb 100644
--- a/libpeas/peas-extension.c
+++ b/libpeas/peas-extension.c
@@ -225,7 +225,7 @@ peas_extension_call_valist (PeasExtension *exten,
   if (callable_info == NULL)
     return FALSE;
 
-  gargs = g_new (GArgument, g_callable_info_get_n_args (callable_info));
+  gargs = g_newa (GArgument, g_callable_info_get_n_args (callable_info));
   peas_gi_valist_to_arguments (callable_info, args, gargs, &retval_ptr);
 
   ret = peas_extension_callv (exten, method_name, gargs, &retval);
@@ -237,8 +237,6 @@ peas_extension_call_valist (PeasExtension *exten,
       g_base_info_unref ((GIBaseInfo *) retval_info);
     }
 
-  g_free (gargs);
-
   return ret;
 }
 
diff --git a/libpeas/peas-introspection.c b/libpeas/peas-introspection.c
index 040d83c..55ed3dd 100644
--- a/libpeas/peas-introspection.c
+++ b/libpeas/peas-introspection.c
@@ -360,8 +360,8 @@ peas_method_apply (GObject     *instance,
   n_in_args = 0;
   n_out_args = 0;
 
-  in_args = g_new0 (GArgument, n_args + 1);
-  out_args = g_new0 (GArgument, n_args);
+  in_args = g_newa (GArgument, n_args + 1);
+  out_args = g_newa (GArgument, n_args);
 
   peas_gi_split_in_and_out_arguments (func_info, args,
                                       in_args+1, &n_in_args,
@@ -385,8 +385,6 @@ peas_method_apply (GObject     *instance,
     }
 
 out:
-  g_free (in_args);
-  g_free (out_args);
   g_base_info_unref ((GIBaseInfo *) func_info);
 
   return ret;



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