diff options
author | iphydf <iphydf@users.noreply.github.com> | 2018-01-21 17:42:19 +0000 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2018-01-21 17:42:19 +0000 |
commit | 6c98791563b41deebbd34bd35db2839d78f12c2c (patch) | |
tree | 9b57e794366b1ff19e16410f46ab0e809ccf3803 /toxav/ring_buffer.c | |
parent | 1cecb6c87a4d1c9773d6861868124a9d0f01f7b2 (diff) |
Add comment from #629 in ring_buffer.c.
Diffstat (limited to 'toxav/ring_buffer.c')
-rw-r--r-- | toxav/ring_buffer.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/toxav/ring_buffer.c b/toxav/ring_buffer.c index 99be0e8a..c60c21f2 100644 --- a/toxav/ring_buffer.c +++ b/toxav/ring_buffer.c | |||
@@ -34,10 +34,16 @@ bool rb_full(const RingBuffer *b) | |||
34 | { | 34 | { |
35 | return (b->end + 1) % b->size == b->start; | 35 | return (b->end + 1) % b->size == b->start; |
36 | } | 36 | } |
37 | |||
37 | bool rb_empty(const RingBuffer *b) | 38 | bool rb_empty(const RingBuffer *b) |
38 | { | 39 | { |
39 | return b->end == b->start; | 40 | return b->end == b->start; |
40 | } | 41 | } |
42 | |||
43 | /* | ||
44 | * returns: NULL on success | ||
45 | * input value "p" on FAILURE -> caller can free on failed rb_write | ||
46 | */ | ||
41 | void *rb_write(RingBuffer *b, void *p) | 47 | void *rb_write(RingBuffer *b, void *p) |
42 | { | 48 | { |
43 | void *rc = NULL; | 49 | void *rc = NULL; |
@@ -55,6 +61,7 @@ void *rb_write(RingBuffer *b, void *p) | |||
55 | 61 | ||
56 | return rc; | 62 | return rc; |
57 | } | 63 | } |
64 | |||
58 | bool rb_read(RingBuffer *b, void **p) | 65 | bool rb_read(RingBuffer *b, void **p) |
59 | { | 66 | { |
60 | if (b->end == b->start) { /* Empty */ | 67 | if (b->end == b->start) { /* Empty */ |
@@ -66,6 +73,7 @@ bool rb_read(RingBuffer *b, void **p) | |||
66 | b->start = (b->start + 1) % b->size; | 73 | b->start = (b->start + 1) % b->size; |
67 | return true; | 74 | return true; |
68 | } | 75 | } |
76 | |||
69 | RingBuffer *rb_new(int size) | 77 | RingBuffer *rb_new(int size) |
70 | { | 78 | { |
71 | RingBuffer *buf = (RingBuffer *)calloc(sizeof(RingBuffer), 1); | 79 | RingBuffer *buf = (RingBuffer *)calloc(sizeof(RingBuffer), 1); |
@@ -83,6 +91,7 @@ RingBuffer *rb_new(int size) | |||
83 | 91 | ||
84 | return buf; | 92 | return buf; |
85 | } | 93 | } |
94 | |||
86 | void rb_kill(RingBuffer *b) | 95 | void rb_kill(RingBuffer *b) |
87 | { | 96 | { |
88 | if (b) { | 97 | if (b) { |
@@ -90,6 +99,7 @@ void rb_kill(RingBuffer *b) | |||
90 | free(b); | 99 | free(b); |
91 | } | 100 | } |
92 | } | 101 | } |
102 | |||
93 | uint16_t rb_size(const RingBuffer *b) | 103 | uint16_t rb_size(const RingBuffer *b) |
94 | { | 104 | { |
95 | if (rb_empty(b)) { | 105 | if (rb_empty(b)) { |
@@ -101,6 +111,7 @@ uint16_t rb_size(const RingBuffer *b) | |||
101 | b->end - b->start : | 111 | b->end - b->start : |
102 | (b->size - b->start) + b->end; | 112 | (b->size - b->start) + b->end; |
103 | } | 113 | } |
114 | |||
104 | uint16_t rb_data(const RingBuffer *b, void **dest) | 115 | uint16_t rb_data(const RingBuffer *b, void **dest) |
105 | { | 116 | { |
106 | uint16_t i = 0; | 117 | uint16_t i = 0; |