summaryrefslogtreecommitdiff
path: root/src/haikufont.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-02-03 10:34:50 +0000
committerPo Lu <luangruo@yahoo.com>2022-02-03 10:34:50 +0000
commit9b0cdf461c24e36cedda27c700febebb00b40909 (patch)
tree01dbe4ab40cdea3f36b59302b6e4cbcb22662a84 /src/haikufont.c
parentd35c4ee10a549deb613f0ab2f99244e0240c4b60 (diff)
downloademacs-9b0cdf461c24e36cedda27c700febebb00b40909.tar.gz
emacs-9b0cdf461c24e36cedda27c700febebb00b40909.tar.bz2
emacs-9b0cdf461c24e36cedda27c700febebb00b40909.zip
* src/haikufont.c (haikufont_draw): Allocate string buffer on stack.
Diffstat (limited to 'src/haikufont.c')
-rw-r--r--src/haikufont.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/haikufont.c b/src/haikufont.c
index 67b1113e44c..1ef5f54c9aa 100644
--- a/src/haikufont.c
+++ b/src/haikufont.c
@@ -1000,12 +1000,13 @@ haikufont_draw (struct glyph_string *s, int from, int to,
else
{
ptrdiff_t b_len = 0;
- char *b = xmalloc (b_len);
+ char *b = alloca ((to - from + 1) * MAX_MULTIBYTE_LENGTH);
for (int idx = from; idx < to; ++idx)
{
int len = CHAR_STRING (s->char2b[idx], mb);
- b = xrealloc (b, b_len = (b_len + len));
+ b_len += len;
+
if (len == 1)
b[b_len - len] = mb[0];
else
@@ -1013,7 +1014,6 @@ haikufont_draw (struct glyph_string *s, int from, int to,
}
BView_DrawString (view, b, b_len);
- xfree (b);
}
unblock_input ();