Fixes to the previous batch of commits

This commit is contained in:
Přemysl Eric Janouch 2017-01-23 23:14:04 +01:00
parent 0e08055d6d
commit 084e964286
Signed by: p
GPG Key ID: B715679E3A361BE6
2 changed files with 5 additions and 7 deletions

View File

@ -194,9 +194,7 @@ row_buffer_space (struct row_buffer *self, int width, chtype attrs)
if (width < 0)
return;
while (self->chars_len + width >= self->chars_alloc)
self->chars = xreallocarray (self->chars,
sizeof *self->chars, (self->chars_alloc <<= 1));
ARRAY_RESERVE (self->chars, (size_t) width);
struct row_char space = { .attrs = attrs, .c = ' ', .width = 1 };
self->total_width += width;

View File

@ -305,17 +305,17 @@ xstrndup (const char *s, size_t n)
// The most basic helper macros to make working with arrays not suck
#define ARRAY(type, name) type *name; size_t name ## _len, name ## _size;
#define ARRAY(type, name) type *name; size_t name ## _len, name ## _alloc;
#define ARRAY_INIT_SIZED(a, n) \
BLOCK_START \
(a) = xcalloc (sizeof *(a), (a ## _size) = (n)); \
(a) = xcalloc (sizeof *(a), (a ## _alloc) = (n)); \
(a ## _len) = 0; \
BLOCK_END
#define ARRAY_INIT(a) ARRAY_INIT_SIZED (a, 16)
#define ARRAY_RESERVE(a, n) \
BLOCK_START \
while ((a ## _size) - (a ## _len) < n) \
(a) = xreallocarray ((a), sizeof *(a), (a ## _size) <<= 1); \
while ((a ## _alloc) - (a ## _len) < n) \
(a) = xreallocarray ((a), sizeof *(a), (a ## _alloc) <<= 1); \
BLOCK_END
// --- Double-linked list helpers ----------------------------------------------