summaryrefslogtreecommitdiff
path: root/src/seq_window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/seq_window.c')
-rw-r--r--src/seq_window.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/src/seq_window.c b/src/seq_window.c
index f5c0bf8..df5f9d9 100644
--- a/src/seq_window.c
+++ b/src/seq_window.c
@@ -41,25 +41,23 @@
#include <stdio.h>
-void seq_win_init(seq_win_t** win, window_size_t size)
+int seq_win_init(seq_win_t* win, window_size_t size)
{
if(!win)
- return;
+ return -1;
- *win = malloc(sizeof(seq_win_t));
- if(!*win)
- return;
+ win->size_ = size;
+ win->first_ = NULL;
- (*win)->size_ = size;
- (*win)->first_ = NULL;
+ return 0;
}
-void seq_win_clear(seq_win_t** win)
+void seq_win_clear(seq_win_t* win)
{
- if(!win || !(*win))
+ if(!win)
return;
- seq_win_element_t* ptr = (*win)->first_;
+ seq_win_element_t* ptr = win->first_;
while(ptr) {
seq_win_element_t* to_free = ptr;
ptr = ptr->next_;
@@ -68,9 +66,6 @@ void seq_win_clear(seq_win_t** win)
free(to_free);
}
-
- free(*win);
- *win = NULL;
}
seq_win_element_t* seq_win_new_element(sender_id_t sender_id, seq_nr_t max, window_size_t size)