summaryrefslogtreecommitdiff
path: root/src/coding.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/coding.c')
-rw-r--r--src/coding.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/coding.c b/src/coding.c
index d4c468cfbbf..5e7a676aecd 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -7273,15 +7273,12 @@ produce_charset (struct coding_system *coding, int *charbuf, ptrdiff_t pos)
#define ALLOC_CONVERSION_WORK_AREA(coding, size) \
do { \
- int units = (size) + MAX_CHARBUF_EXTRA_SIZE; \
- \
- if (units > MAX_CHARBUF_SIZE) \
- units = MAX_CHARBUF_SIZE; \
- coding->charbuf = SAFE_ALLOCA ((units) * sizeof (int)); \
- coding->charbuf_size = (units); \
+ ptrdiff_t units = min ((size) + MAX_CHARBUF_EXTRA_SIZE, \
+ MAX_CHARBUF_SIZE); \
+ coding->charbuf = SAFE_ALLOCA (units * sizeof (int)); \
+ coding->charbuf_size = units; \
} while (0)
-
static void
produce_annotation (struct coding_system *coding, ptrdiff_t pos)
{