Skip to content

Commit af8be66

Browse files
committed
mp: rework flb_mp_count() using 'mpack' backend
Signed-off-by: Eduardo Silva <[email protected]>
1 parent d2d3c02 commit af8be66

File tree

2 files changed

+10
-45
lines changed

2 files changed

+10
-45
lines changed

include/fluent-bit/flb_mp.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@
2121
#ifndef FLB_MP_H
2222
#define FLB_MP_H
2323

24-
#include <msgpack.h>
25-
2624
int flb_mp_count(const void *data, size_t bytes);
27-
int flb_mp_count_zone(const void *data, size_t bytes, msgpack_zone *zone);
2825

2926
#endif

src/flb_mp.c

Lines changed: 10 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -19,51 +19,19 @@
1919
*/
2020

2121
#include <fluent-bit/flb_info.h>
22-
#include <fluent-bit/flb_pack.h>
23-
#include <msgpack.h>
22+
#include <mpack/mpack.h>
2423

25-
static inline int mp_count(const void *data, size_t bytes, msgpack_zone *zone)
24+
int flb_mp_count(const void *data, size_t bytes)
2625
{
27-
int c = 0;
28-
int ret;
29-
size_t off = 0;
30-
msgpack_zone *t = NULL;
31-
msgpack_object obj;
32-
33-
if (!zone) {
34-
t = msgpack_zone_new(MSGPACK_ZONE_CHUNK_SIZE);
35-
if (!t) {
36-
return -1;
37-
}
38-
}
39-
else {
40-
t = zone;
41-
}
42-
43-
do {
44-
ret = msgpack_unpack(data, bytes, &off, t, &obj);
45-
if (ret == MSGPACK_UNPACK_SUCCESS || ret == MSGPACK_UNPACK_EXTRA_BYTES) {
46-
c++;
47-
}
48-
else {
49-
break;
50-
}
51-
} while (1);
26+
int count = 0;
27+
mpack_reader_t reader;
5228

53-
msgpack_zone_clear(t);
54-
if (t != zone) {
55-
msgpack_zone_free(t);
29+
mpack_reader_init_data(&reader, (const char *) data, bytes);
30+
while (mpack_reader_remaining(&reader, NULL) > 0) {
31+
count++;
32+
mpack_discard(&reader);
5633
}
5734

58-
return c;
59-
}
60-
61-
int flb_mp_count(const void *data, size_t bytes)
62-
{
63-
return mp_count(data, bytes, NULL);
64-
}
65-
66-
int flb_mp_count_zone(const void *data, size_t bytes, msgpack_zone *zone)
67-
{
68-
return mp_count(data, bytes, zone);
35+
mpack_reader_destroy(&reader);
36+
return count;
6937
}

0 commit comments

Comments
 (0)