[WIP] Improve memory management of matrix maps

This commit is contained in:
Adam Honse
2026-01-09 01:19:20 -06:00
parent d258e3551f
commit af04dd8d58
68 changed files with 235 additions and 608 deletions

View File

@@ -312,14 +312,14 @@ void RGBController_RedSquareKeyrox::SetupZones()
unsigned int zone_size = 0;
zone z;
z.name = ZONE_EN_KEYBOARD;
z.type = ZONE_TYPE_MATRIX;
z.name = ZONE_EN_KEYBOARD;
z.type = ZONE_TYPE_MATRIX;
z.matrix_map = new matrix_map_type;
z.matrix_map->height = keyboard->height;
z.matrix_map->width = keyboard->width;
z.matrix_map->map = new unsigned int[keyboard->height * keyboard->width];
z.matrix_map = new matrix_map_type;
z.matrix_map->height = keyboard->height;
z.matrix_map->width = keyboard->width;
z.matrix_map->delete_map = true;
z.matrix_map->map = new unsigned int[keyboard->height * keyboard->width];
for(unsigned int h = 0; h < keyboard->height; h++)
{

View File

@@ -205,20 +205,20 @@ void RGBController_RedSquareKeyroxTKLClassic::SetupZones()
| Create the keyboard zone usiung Keyboard Layout Manager |
\*---------------------------------------------------------*/
zone new_zone;
new_zone.name = ZONE_EN_KEYBOARD;
new_zone.type = ZONE_TYPE_MATRIX;
new_zone.name = ZONE_EN_KEYBOARD;
new_zone.type = ZONE_TYPE_MATRIX;
KeyboardLayoutManager new_kb(KEYBOARD_LAYOUT_ANSI_QWERTY, KEYBOARD_SIZE_TKL, keyrox_tkl_offset_values);
matrix_map_type * new_map = new matrix_map_type;
new_zone.matrix_map = new_map;
new_zone.matrix_map->height = KEYROX_TKL_CLASSIC_HEIGHT;
new_zone.matrix_map->width = KEYROX_TKL_CLASSIC_WIDTH;
new_zone.matrix_map->map = new unsigned int[new_map->height * new_map->width];
new_zone.leds_count = new_kb.GetKeyCount();
new_zone.leds_min = new_zone.leds_count;
new_zone.leds_max = new_zone.leds_count;
matrix_map_type * new_map = new matrix_map_type;
new_zone.matrix_map = new_map;
new_zone.matrix_map->height = KEYROX_TKL_CLASSIC_HEIGHT;
new_zone.matrix_map->width = KEYROX_TKL_CLASSIC_WIDTH;
new_zone.matrix_map->delete_map = true;
new_zone.matrix_map->map = new unsigned int[new_map->height * new_map->width];
new_zone.leds_count = new_kb.GetKeyCount();
new_zone.leds_min = new_zone.leds_count;
new_zone.leds_max = new_zone.leds_count;
/*---------------------------------------------------------*\
| Matrix map still uses declared zone rows and columns |