Fix allocs in graphics_controller
This commit is contained in:
parent
02d1d21163
commit
3be8ac1bec
|
@ -83,7 +83,7 @@ struct graphics_controller_s {
|
|||
unsigned popup_visible;
|
||||
unsigned valid_mouse_position;
|
||||
unsigned auto_action_triggered;
|
||||
BOG_DATA *bog_data;
|
||||
BOG_DATA bog_data[MAX_NUM_BOGS];
|
||||
BOG_DATA *saved_bog_data;
|
||||
BD_UO_MASK page_uo_mask;
|
||||
|
||||
|
@ -359,10 +359,6 @@ static void _reset_user_timeout(GRAPHICS_CONTROLLER *gc)
|
|||
|
||||
static int _save_page_state(GRAPHICS_CONTROLLER *gc)
|
||||
{
|
||||
if (!gc->bog_data) {
|
||||
GC_TRACE("_save_page_state(): no bog data !\n");
|
||||
return -1;
|
||||
}
|
||||
if (!gc->igs || !gc->igs->ics) {
|
||||
GC_TRACE("_save_page_state(): no IG composition\n");
|
||||
return -1;
|
||||
|
@ -383,7 +379,7 @@ static int _save_page_state(GRAPHICS_CONTROLLER *gc)
|
|||
/* copy enabled button state, clear draw state */
|
||||
|
||||
X_FREE(gc->saved_bog_data);
|
||||
gc->saved_bog_data = calloc(page->num_bogs, sizeof(*gc->saved_bog_data));
|
||||
gc->saved_bog_data = calloc(1, sizeof(gc->bog_data));
|
||||
if (!gc->saved_bog_data) {
|
||||
GC_ERROR("_save_page_state(): out of memory\n");
|
||||
return -1;
|
||||
|
@ -403,13 +399,8 @@ static int _restore_page_state(GRAPHICS_CONTROLLER *gc)
|
|||
gc->out_effects = NULL;
|
||||
|
||||
if (gc->saved_bog_data) {
|
||||
if (gc->bog_data) {
|
||||
GC_ERROR("_restore_page_state(): bog data already exists !\n");
|
||||
X_FREE(gc->bog_data);
|
||||
}
|
||||
gc->bog_data = gc->saved_bog_data;
|
||||
gc->saved_bog_data = NULL;
|
||||
|
||||
memcpy(gc->bog_data, gc->saved_bog_data, sizeof(gc->bog_data));
|
||||
X_FREE(gc->saved_bog_data);
|
||||
return 1;
|
||||
}
|
||||
return -1;
|
||||
|
@ -429,10 +420,7 @@ static void _reset_page_state(GRAPHICS_CONTROLLER *gc)
|
|||
return;
|
||||
}
|
||||
|
||||
size_t size = page->num_bogs * sizeof(*gc->bog_data);
|
||||
gc->bog_data = realloc(gc->bog_data, size);
|
||||
|
||||
memset(gc->bog_data, 0, size);
|
||||
memset(gc->bog_data, 0, sizeof(gc->bog_data));
|
||||
|
||||
for (ii = 0; ii < page->num_bogs; ii++) {
|
||||
gc->bog_data[ii].enabled_button = page->bog[ii].default_valid_button_id_ref;
|
||||
|
@ -753,7 +741,7 @@ static void _gc_reset(GRAPHICS_CONTROLLER *gc)
|
|||
gc->next_dialog_idx = 0;
|
||||
gc->textst_user_style = -1;
|
||||
|
||||
X_FREE(gc->bog_data);
|
||||
memset(gc->bog_data, 0, sizeof(gc->bog_data));
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -94,6 +94,8 @@ typedef struct bd_ig_effect_sequence_s {
|
|||
|
||||
} BD_IG_EFFECT_SEQUENCE;
|
||||
|
||||
#define MAX_NUM_BOGS 256
|
||||
|
||||
typedef struct bd_ig_page_s {
|
||||
uint8_t id;
|
||||
uint8_t version;
|
||||
|
|
Loading…
Reference in New Issue