[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 02/11] chardev/baum: Use definitions to avoid dynamic stack al
From: |
Peter Maydell |
Subject: |
[PATCH v2 02/11] chardev/baum: Use definitions to avoid dynamic stack allocation |
Date: |
Fri, 19 Aug 2022 16:39:22 +0100 |
From: Philippe Mathieu-Daudé <philmd@redhat.com>
We know 'x * y' will be at most 'X_MAX * Y_MAX' (which is not
a big value, it is actually 84). Instead of having the compiler
use variable-length array, declare an array able to hold the
maximum 'x * y'.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
chardev/baum.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/chardev/baum.c b/chardev/baum.c
index 6d538808a0f..6a210ffd815 100644
--- a/chardev/baum.c
+++ b/chardev/baum.c
@@ -383,9 +383,9 @@ static int baum_eat_packet(BaumChardev *baum, const uint8_t
*buf, int len)
switch (req) {
case BAUM_REQ_DisplayData:
{
- uint8_t cells[baum->x * baum->y], c;
- uint8_t text[baum->x * baum->y];
- uint8_t zero[baum->x * baum->y];
+ uint8_t cells[X_MAX * Y_MAX], c;
+ uint8_t text[X_MAX * Y_MAX];
+ uint8_t zero[X_MAX * Y_MAX];
int cursor = BRLAPI_CURSOR_OFF;
int i;
@@ -408,7 +408,7 @@ static int baum_eat_packet(BaumChardev *baum, const uint8_t
*buf, int len)
}
timer_del(baum->cellCount_timer);
- memset(zero, 0, sizeof(zero));
+ memset(zero, 0, baum->x * baum->y);
brlapi_writeArguments_t wa = {
.displayNumber = BRLAPI_DISPLAY_DEFAULT,
--
2.25.1
- [PATCH v2 00/11] misc: Remove variable-length arrays on the stack, Peter Maydell, 2022/08/19
- [PATCH v2 03/11] chardev/baum: Avoid dynamic stack allocation, Peter Maydell, 2022/08/19
- [PATCH v2 04/11] io/channel-websock: Replace strlen(const_str) by sizeof(const_str) - 1, Peter Maydell, 2022/08/19
- [PATCH v2 02/11] chardev/baum: Use definitions to avoid dynamic stack allocation,
Peter Maydell <=
- [PATCH v2 01/11] chardev/baum: Replace magic values by X_MAX / Y_MAX definitions, Peter Maydell, 2022/08/19
- [PATCH v2 05/11] hw/net/e1000e_core: Use definition to avoid dynamic stack allocation, Peter Maydell, 2022/08/19
- [PATCH v2 06/11] hw/ppc/pnv: Avoid dynamic stack allocation, Peter Maydell, 2022/08/19
- [PATCH v2 07/11] hw/intc/xics: Avoid dynamic stack allocation, Peter Maydell, 2022/08/19
- [PATCH v2 10/11] ui/curses: Avoid dynamic stack allocation, Peter Maydell, 2022/08/19
- [PATCH v2 09/11] hw/usb/hcd-ohci: Use definition to avoid dynamic stack allocation, Peter Maydell, 2022/08/19
- [PATCH v2 11/11] tests/unit/test-vmstate: Avoid dynamic stack allocation, Peter Maydell, 2022/08/19
- [PATCH v2 08/11] hw/i386/multiboot: Avoid dynamic stack allocation, Peter Maydell, 2022/08/19
- Re: [PATCH v2 00/11] misc: Remove variable-length arrays on the stack, Philippe Mathieu-Daudé, 2022/08/25