It seems unnecessary to set the dst pointer to null here, nothing
cares if this pointer is null or not null, only the length matters.
#include "specstr.h"
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+
size_t cdecl__advance(struct output_state *dst, size_t amount)
{
- if (amount >= dst->dstlen) {
- dst->dstlen = 0;
- dst->dst = 0;
- } else {
- dst->dst += amount;
- dst->dstlen -= amount;
- }
+ size_t x = MIN(amount, dst->dstlen);
+
+ dst->dst += x;
+ dst->dstlen -= x;
return amount;
}