From 3f0e8956b83dadab51c6aceaf1f29193ba5f2f60 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Tue, 11 Oct 2022 22:47:14 +0200 Subject: [PATCH] Add emplace method for buffer. --- m-buffer.h | 2 ++ tests/test-mbuffer.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/m-buffer.h b/m-buffer.h index 9deb9bc4..19bdffaf 100644 --- a/m-buffer.h +++ b/m-buffer.h @@ -737,6 +737,8 @@ M_C(name, _init)(buffer_t v, size_t size) \ } \ } \ } \ + \ + M_EMPLACE_QUEUE_DEF(name, buffer_t, M_C(name, _emplace), oplist, M_EMPLACE_QUEUE_GENE) diff --git a/tests/test-mbuffer.c b/tests/test-mbuffer.c index 36de313b..c70f571c 100644 --- a/tests/test-mbuffer.c +++ b/tests/test-mbuffer.c @@ -271,6 +271,18 @@ static void test_no_thread(void) buffer_llong_clear(buff); } +static void test_emplace(void) +{ + buffer_mpz_t b; + buffer_mpz_init(b, 32); + buffer_mpz_emplace_str(b, "56"); + testobj_t o; + testobj_init(o); + buffer_mpz_pop(&o, b); + assert( testobj_cmp_ui(o, 56) == 0 ); + testobj_clear(o); + buffer_mpz_clear(b); +} /********************************************************************************************/ /* Test intrusive shared pointer + buffer */ @@ -642,6 +654,7 @@ int main(void) test_stack(); test_stack2(); test_no_thread(); + test_emplace(); test_global_ishared(); test_queue(1000000, 2, 2148371710223136ULL); test_spsc();