summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 147fa8b)
raw | patch | inline | side by side (parent: 147fa8b)
author | Tim-Philipp Müller <tim.muller@collabora.co.uk> | |
Sat, 12 Nov 2011 14:55:07 +0000 (14:55 +0000) | ||
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | |
Sat, 12 Nov 2011 14:57:48 +0000 (14:57 +0000) |
gst/gstelementfactory.c | patch | blob | history | |
gst/gstparse.c | patch | blob | history | |
gst/gstplugin.c | patch | blob | history | |
libs/gst/controller/gstinterpolationcontrolsource.c | patch | blob | history |
index 0eca4576d758049b03bb400a6fd9053b96b65a2e..a74183c569aef02747b5892730c14712d3817597 100644 (file)
--- a/gst/gstelementfactory.c
+++ b/gst/gstelementfactory.c
gst_element_factory_list_filter (GList * list,
const GstCaps * caps, GstPadDirection direction, gboolean subsetonly)
{
- GList *result = NULL;
+ GQueue results = G_QUEUE_INIT;
GST_DEBUG ("finding factories");
if ((subsetonly && gst_caps_is_subset (caps, tmpl_caps)) ||
(!subsetonly && gst_caps_can_intersect (caps, tmpl_caps))) {
/* non empty intersection, we can use this element */
- result = g_list_prepend (result, gst_object_ref (factory));
+ g_queue_push_tail (&results, gst_object_ref (factory));
gst_caps_unref (tmpl_caps);
break;
}
}
}
}
- return g_list_reverse (result);
+ return results.head;
}
diff --git a/gst/gstparse.c b/gst/gstparse.c
index 910fc8f702bd94dc9fef2c65d874025d4287a0fc..a2d3d3deaf60d741e6011a0a863a23e7781f421a 100644 (file)
--- a/gst/gstparse.c
+++ b/gst/gstparse.c
#include "parse/types.h"
#endif
-static void
-_prepend_missing_element (gchar * element, GList ** list)
-{
- *list = g_list_prepend (*list, g_strdup (element));
-}
-
static GstParseContext *
gst_parse_context_copy (const GstParseContext * context)
{
ret = gst_parse_context_new ();
if (context) {
- g_list_foreach (context->missing_elements, (GFunc) _prepend_missing_element,
- &ret->missing_elements);
- ret->missing_elements = g_list_reverse (ret->missing_elements);
+ GQueue missing_copy = G_QUEUE_INIT;
+ GList *l;
+
+ for (l = context->missing_elements; l != NULL; l = l->next)
+ g_queue_push_tail (&missing_copy, g_strdup ((const gchar *) l->data));
+
+ ret->missing_elements = missing_copy.head;
}
#endif
return ret;
diff --git a/gst/gstplugin.c b/gst/gstplugin.c
index 4db7612d13f43529d71041bc9819453e28d65925..02e5cc959eb54af85ab30728b34f1c9f40083027 100644 (file)
--- a/gst/gstplugin.c
+++ b/gst/gstplugin.c
return FALSE;
}
-static GList *
+static void
gst_plugin_ext_dep_extract_env_vars_paths (GstPlugin * plugin,
- GstPluginDep * dep)
+ GstPluginDep * dep, GQueue * paths)
{
gchar **evars;
- GList *paths = NULL;
for (evars = dep->env_vars; evars != NULL && *evars != NULL; ++evars) {
const gchar *e;
full_path = g_strdup (arr[i]);
}
- if (!g_list_find_custom (paths, full_path, (GCompareFunc) strcmp)) {
+ if (!g_queue_find_custom (paths, full_path, (GCompareFunc) strcmp)) {
GST_LOG_OBJECT (plugin, "path: '%s'", full_path);
- paths = g_list_prepend (paths, full_path);
+ g_queue_push_tail (paths, full_path);
full_path = NULL;
} else {
GST_LOG_OBJECT (plugin, "path: '%s' (duplicate,ignoring)", full_path);
g_strfreev (components);
}
- GST_LOG_OBJECT (plugin, "Extracted %d paths from environment",
- g_list_length (paths));
-
- return paths;
+ GST_LOG_OBJECT (plugin, "Extracted %d paths from environment", paths->length);
}
static guint
gst_plugin_ext_dep_get_stat_hash (GstPlugin * plugin, GstPluginDep * dep)
{
gboolean paths_are_default_only;
- GList *scan_paths;
+ GQueue scan_paths = G_QUEUE_INIT;
guint scan_hash = 0;
+ gchar *path;
GST_LOG_OBJECT (plugin, "start");
paths_are_default_only =
dep->flags & GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY;
- scan_paths = gst_plugin_ext_dep_extract_env_vars_paths (plugin, dep);
+ gst_plugin_ext_dep_extract_env_vars_paths (plugin, dep, &scan_paths);
- if (scan_paths == NULL || !paths_are_default_only) {
+ if (g_queue_is_empty (&scan_paths) || !paths_are_default_only) {
gchar **paths;
for (paths = dep->paths; paths != NULL && *paths != NULL; ++paths) {
const gchar *path = *paths;
- if (!g_list_find_custom (scan_paths, path, (GCompareFunc) strcmp)) {
+ if (!g_queue_find_custom (&scan_paths, path, (GCompareFunc) strcmp)) {
GST_LOG_OBJECT (plugin, "path: '%s'", path);
- scan_paths = g_list_prepend (scan_paths, g_strdup (path));
+ g_queue_push_tail (&scan_paths, g_strdup (path));
} else {
GST_LOG_OBJECT (plugin, "path: '%s' (duplicate, ignoring)", path);
}
}
}
- /* not that the order really matters, but it makes debugging easier */
- scan_paths = g_list_reverse (scan_paths);
-
- while (scan_paths != NULL) {
- const gchar *path = scan_paths->data;
-
+ while ((path = g_queue_pop_head (&scan_paths))) {
scan_hash += gst_plugin_ext_dep_scan_path_with_filenames (plugin, path,
(const gchar **) dep->names, dep->flags);
scan_hash = scan_hash << 1;
-
- g_free (scan_paths->data);
- scan_paths = g_list_delete_link (scan_paths, scan_paths);
+ g_free (path);
}
GST_LOG_OBJECT (plugin, "done, scan_hash: %08x", scan_hash);
diff --git a/libs/gst/controller/gstinterpolationcontrolsource.c b/libs/gst/controller/gstinterpolationcontrolsource.c
index 8f7d1d86f6fe1f67ee4cde96cb139ea5cf24965a..f320d7d0fc1422a228db78a65e4b1b6a82520101 100644 (file)
}
static void
-_append_control_point (GstControlPoint * cp, GList ** l)
+_append_control_point (GstControlPoint * cp, GQueue * res)
{
- *l = g_list_prepend (*l, cp);
+ g_queue_push_tail (res, cp);
}
/**
GList *
gst_interpolation_control_source_get_all (GstInterpolationControlSource * self)
{
- GList *res = NULL;
+ GQueue res = G_QUEUE_INIT;
g_return_val_if_fail (GST_IS_INTERPOLATION_CONTROL_SOURCE (self), NULL);
&res);
g_mutex_unlock (self->lock);
- return g_list_reverse (res);
+ return res.head;
}
/**