Diff between ba4d51606bdec565732e58531ee846fc537bcce8 and f6c017e88c54b9881520c74c697d1d9251130822

Changed Files

File Additions Deletions Status
src/shared/timeout-glib.c +10 -5 modified
src/shared/timeout-mainloop.c +17 -10 modified
src/shared/timeout.h +2 -2 modified

Full Patch

diff --git a/src/shared/timeout-glib.c b/src/shared/timeout-glib.c
index c045efc..4163bce 100644
--- a/src/shared/timeout-glib.c
+++ b/src/shared/timeout-glib.c
@@ -47,18 +47,22 @@ static void timeout_destroy(gpointer user_data)
 	g_free(data);
 }
 
-int timeout_add(unsigned int ms, timeout_func_t func, void *user_data,
-						timeout_destroy_func_t destroy)
+unsigned int timeout_add(unsigned int timeout, timeout_func_t func,
+			void *user_data, timeout_destroy_func_t destroy)
 {
+	struct timeout_data *data;
 	guint id;
-	struct timeout_data *data = g_malloc0(sizeof(*data));
+
+	data = g_try_new0(struct timeout_data, 1);
+	if (!data)
+		return 0;
 
 	data->func = func;
 	data->destroy = destroy;
 	data->user_data = user_data;
 
-	id = g_timeout_add_full(G_PRIORITY_DEFAULT, ms, timeout_callback, data,
-							timeout_destroy);
+	id = g_timeout_add_full(G_PRIORITY_DEFAULT, timeout, timeout_callback,
+						data, timeout_destroy);
 	if (!id)
 		g_free(data);
 
@@ -68,6 +72,7 @@ int timeout_add(unsigned int ms, timeout_func_t func, void *user_data,
 void timeout_remove(unsigned int id)
 {
 	GSource *source = g_main_context_find_source_by_id(NULL, id);
+
 	if (source)
 		g_source_destroy(source);
 }
diff --git a/src/shared/timeout-mainloop.c b/src/shared/timeout-mainloop.c
index bdc527a..a0d18b7 100644
--- a/src/shared/timeout-mainloop.c
+++ b/src/shared/timeout-mainloop.c
@@ -19,10 +19,11 @@
 
 #include <stdlib.h>
 
-#include "timeout.h"
-
 #include "monitor/mainloop.h"
 
+#include "util.h"
+#include "timeout.h"
+
 struct timeout_data {
 	int id;
 	timeout_func_t func;
@@ -52,27 +53,33 @@ static void timeout_destroy(void *user_data)
 	free(data);
 }
 
-int timeout_add(unsigned int t, timeout_func_t func, void *user_data,
-						timeout_destroy_func_t destroy)
+unsigned int timeout_add(unsigned int timeout, timeout_func_t func,
+			void *user_data, timeout_destroy_func_t destroy)
 {
-	struct timeout_data *data = malloc(sizeof(*data));
+	struct timeout_data *data;
+
+	data = new0(struct timeout_data, 1);
+	if (!data)
+		return 0;
 
 	data->func = func;
 	data->user_data = user_data;
-	data->timeout = t;
+	data->timeout = timeout;
 
-	data->id = mainloop_add_timeout(t, timeout_callback, data,
+	data->id = mainloop_add_timeout(timeout, timeout_callback, data,
 							timeout_destroy);
 	if (!data->id) {
 		free(data);
 		return 0;
 	}
 
-	return data->id;
+	return (unsigned int) data->id;
 }
 
 void timeout_remove(unsigned int id)
 {
-	if (id)
-		mainloop_remove_timeout(id);
+	if (!id)
+		return;
+
+	mainloop_remove_timeout((int) id);
 }
diff --git a/src/shared/timeout.h b/src/shared/timeout.h
index c13616f..4930ce1 100644
--- a/src/shared/timeout.h
+++ b/src/shared/timeout.h
@@ -22,6 +22,6 @@
 typedef bool (*timeout_func_t)(void *user_data);
 typedef void (*timeout_destroy_func_t)(void *user_data);
 
-int timeout_add(unsigned int msec, timeout_func_t func, void *user_data,
-					timeout_destroy_func_t destroy);
+unsigned int timeout_add(unsigned int timeout, timeout_func_t func,
+			void *user_data, timeout_destroy_func_t destroy);
 void timeout_remove(unsigned int id);