[empathy] CameraMonitor: dynamically-allocate the queue
- From: Emilio Pozuelo Monfort <epm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] CameraMonitor: dynamically-allocate the queue
- Date: Mon, 15 Aug 2011 12:07:12 +0000 (UTC)
commit 64b8693b800d880aee7f16e5b353f239a24e02fa
Author: Emilio Pozuelo Monfort <emilio pozuelo collabora co uk>
Date: Mon Aug 15 11:06:51 2011 +0100
CameraMonitor: dynamically-allocate the queue
libempathy/empathy-camera-monitor.c | 25 +++++++++++++++++--------
1 files changed, 17 insertions(+), 8 deletions(-)
---
diff --git a/libempathy/empathy-camera-monitor.c b/libempathy/empathy-camera-monitor.c
index d3d8beb..da6b234 100644
--- a/libempathy/empathy-camera-monitor.c
+++ b/libempathy/empathy-camera-monitor.c
@@ -34,7 +34,7 @@
struct _EmpathyCameraMonitorPrivate
{
CheeseCameraDeviceMonitor *cheese_monitor;
- GQueue cameras;
+ GQueue *cameras;
gint num_cameras;
};
@@ -117,7 +117,10 @@ on_camera_added (CheeseCameraDeviceMonitor *device,
{
EmpathyCamera *camera = empathy_camera_new (id, filename, product_name);
- g_queue_push_tail (&self->priv->cameras, camera);
+ if (self->priv->cameras == NULL)
+ return;
+
+ g_queue_push_tail (self->priv->cameras, camera);
self->priv->num_cameras++;
@@ -135,13 +138,16 @@ on_camera_removed (CheeseCameraDeviceMonitor *device,
EmpathyCamera *camera;
GList *l;
- l = g_queue_find_custom (&self->priv->cameras, id, empathy_camera_find);
+ if (self->priv->cameras == NULL)
+ return;
+
+ l = g_queue_find_custom (self->priv->cameras, id, empathy_camera_find);
g_return_if_fail (l != NULL);
camera = l->data;
- g_queue_delete_link (&self->priv->cameras, l);
+ g_queue_delete_link (self->priv->cameras, l);
self->priv->num_cameras--;
@@ -156,7 +162,10 @@ on_camera_removed (CheeseCameraDeviceMonitor *device,
const GList *
empathy_camera_monitor_get_cameras (EmpathyCameraMonitor *self)
{
- return self->priv->cameras.head;
+ if (self->priv->cameras != NULL)
+ return self->priv->cameras->head;
+ else
+ return NULL;
}
static void
@@ -185,9 +194,9 @@ empathy_camera_monitor_dispose (GObject *object)
tp_clear_object (&self->priv->cheese_monitor);
- g_queue_foreach (&self->priv->cameras,
+ g_queue_foreach (self->priv->cameras,
empathy_camera_monitor_free_camera_foreach, NULL);
- g_queue_clear (&self->priv->cameras);
+ tp_clear_pointer (&self->priv->cameras, g_queue_free);
G_OBJECT_CLASS (empathy_camera_monitor_parent_class)->dispose (object);
}
@@ -264,7 +273,7 @@ empathy_camera_monitor_init (EmpathyCameraMonitor *self)
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
EMPATHY_TYPE_CAMERA_MONITOR, EmpathyCameraMonitorPrivate);
- g_queue_init (&self->priv->cameras);
+ self->priv->cameras = g_queue_new ();
self->priv->cheese_monitor = cheese_camera_device_monitor_new ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]