fpi-context: Make fpi_get_driver_types to return an array

No need to create one all the times and the fill it with what we need.
This commit is contained in:
Marco Trevisan (Treviño) 2019-12-14 16:56:15 +01:00
parent 8184e33dd6
commit 09576e5209
5 changed files with 11 additions and 16 deletions

View file

@ -243,8 +243,7 @@ fp_context_init (FpContext *self)
g_autoptr(GError) error = NULL; g_autoptr(GError) error = NULL;
FpContextPrivate *priv = fp_context_get_instance_private (self); FpContextPrivate *priv = fp_context_get_instance_private (self);
priv->drivers = g_array_new (TRUE, FALSE, sizeof (GType)); priv->drivers = fpi_get_driver_types ();
fpi_get_driver_types (priv->drivers);
priv->devices = g_ptr_array_new_with_free_func (g_object_unref); priv->devices = g_ptr_array_new_with_free_func (g_object_unref);

View file

@ -23,11 +23,12 @@
/** /**
* fpi_get_driver_types: * fpi_get_driver_types:
* @drivers: #GArray to be filled with all driver types
* *
* This function is purely for private used. It is solely part of the public * This function is purely for private used. It is solely part of the public
* API as it is useful during build time. * API as it is useful during build time.
* *
* Stability: private * Stability: private
* Returns: (element-type GType) (transfer container): a #GArray filled with
* all driver types
*/ */
void fpi_get_driver_types (GArray *drivers); GArray *fpi_get_driver_types (void);

View file

@ -31,11 +31,9 @@ GHashTable *printed = NULL;
static GList * static GList *
insert_drivers (GList *list) insert_drivers (GList *list)
{ {
g_autoptr(GArray) drivers = g_array_new (FALSE, FALSE, sizeof (GType)); g_autoptr(GArray) drivers = fpi_get_driver_types ();
gint i; gint i;
fpi_get_driver_types (drivers);
/* Find the best driver to handle this USB device. */ /* Find the best driver to handle this USB device. */
for (i = 0; i < drivers->len; i++) for (i = 0; i < drivers->len; i++)
{ {

View file

@ -96,11 +96,9 @@ print_driver (const FpDeviceClass *cls)
int int
main (int argc, char **argv) main (int argc, char **argv)
{ {
g_autoptr(GArray) drivers = g_array_new (FALSE, FALSE, sizeof (GType)); g_autoptr(GArray) drivers = fpi_get_driver_types ();
guint i; guint i;
fpi_get_driver_types (drivers);
printed = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); printed = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
for (i = 0; i < drivers->len; i++) for (i = 0; i < drivers->len; i++)

View file

@ -151,21 +151,20 @@ drivers_type_func = []
drivers_type_list += '#include <glib-object.h>' drivers_type_list += '#include <glib-object.h>'
drivers_type_list += '#include "fpi-context.h"' drivers_type_list += '#include "fpi-context.h"'
drivers_type_list += '' drivers_type_list += ''
drivers_type_func += 'void fpi_get_driver_types (GArray *drivers)' drivers_type_func += 'GArray *'
drivers_type_func += 'fpi_get_driver_types (void)'
drivers_type_func += '{' drivers_type_func += '{'
drivers_type_func += ' GArray *drivers = g_array_new (TRUE, FALSE, sizeof (GType));'
drivers_type_func += ' GType t;' drivers_type_func += ' GType t;'
drivers_type_func += '' drivers_type_func += ''
idx = 0
foreach driver: drivers foreach driver: drivers
drivers_type_list += 'extern GType (fpi_device_' + driver + '_get_type) (void);' drivers_type_list += 'extern GType (fpi_device_' + driver + '_get_type) (void);'
drivers_type_func += ' t = fpi_device_' + driver + '_get_type ();' drivers_type_func += ' t = fpi_device_' + driver + '_get_type ();'
drivers_type_func += ' g_array_append_val (drivers, t);' drivers_type_func += ' g_array_append_val (drivers, t);'
if idx != drivers.length() - 1 drivers_type_func += ''
drivers_type_func += ''
idx += 1
endif
endforeach endforeach
drivers_type_list += '' drivers_type_list += ''
drivers_type_func += ' return drivers;'
drivers_type_func += '}' drivers_type_func += '}'
root_inc = include_directories('.') root_inc = include_directories('.')