pgbackrest.git / summary / log / commit / refs

commit    1807bfcff5550bb40fa4f92dee1e15580a0b752d
Author:   David Steele <david@pgmasters.net>
Date:     Tue Mar 21 04:22:47 2023 +0000

    Clear buffer limit when buffer is limited to allocated size.
    
    This minor optimization automatically clears the limit flag when limit is set to allocated size. This has no impact on the current code but will simplify a future commit where a conditional bufLimitClear() is being used.


src/common/type/buffer.c | 2 +- test/src/module/common/typeBufferTest.c | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/common/type/buffer.c b/src/common/type/buffer.c index c01e1d2e0..0e6835759 100644 --- a/src/common/type/buffer.c +++ b/src/common/type/buffer.c @@ -292,7 +292,7 @@ bufLimitSet(Buffer *this, size_t limit) ASSERT(limit >= bufUsed(this)); this->pub.size = limit; - this->pub.sizeLimit = true; + this->pub.sizeLimit = limit != bufSizeAlloc(this); FUNCTION_TEST_RETURN_VOID(); } diff --git a/test/src/module/common/typeBufferTest.c b/test/src/module/common/typeBufferTest.c index 0957b4ec4..7b01fb5fa 100644 --- a/test/src/module/common/typeBufferTest.c +++ b/test/src/module/common/typeBufferTest.c @@ -107,9 +107,20 @@ testRun(void) // Use limits to change size reporting TEST_RESULT_VOID(bufLimitSet(buffer, 64), "set limit"); - TEST_RESULT_UINT(bufSize(buffer), 64, " check limited size"); - TEST_RESULT_VOID(bufLimitClear(buffer), " clear limit"); - TEST_RESULT_UINT(bufSize(buffer), 128, " check unlimited size"); + TEST_RESULT_UINT(bufSize(buffer), 64, "check limited size"); + TEST_RESULT_BOOL(buffer->pub.sizeLimit, true, "check limit flag"); + + TEST_RESULT_VOID(bufLimitClear(buffer), "clear limit"); + TEST_RESULT_UINT(bufSize(buffer), 128, "check unlimited size"); + TEST_RESULT_BOOL(buffer->pub.sizeLimit, false, "check limit flag"); + + TEST_RESULT_VOID(bufLimitSet(buffer, 96), "set limit"); + TEST_RESULT_UINT(bufSize(buffer), 96, "check limited size"); + TEST_RESULT_BOOL(buffer->pub.sizeLimit, true, "check limit flag"); + + TEST_RESULT_VOID(bufLimitSet(buffer, 128), "set limit"); + TEST_RESULT_UINT(bufSize(buffer), 128, "check unlimited size"); + TEST_RESULT_BOOL(buffer->pub.sizeLimit, false, "check limit flag"); // Resize to zero buffer TEST_RESULT_VOID(bufUsedZero(buffer), "set used to 0"); [parent: 5b5786c082b6]