summaryrefslogtreecommitdiff
path: root/riscos/history.c
diff options
context:
space:
mode:
Diffstat (limited to 'riscos/history.c')
-rw-r--r--riscos/history.c42
1 files changed, 23 insertions, 19 deletions
diff --git a/riscos/history.c b/riscos/history.c
index 153d3c629..7901ed3ae 100644
--- a/riscos/history.c
+++ b/riscos/history.c
@@ -433,24 +433,29 @@ void ro_gui_history_redraw_tree(struct history_entry *he,
area, (osspriteop_id)header,
colourtrans_CURRENT_MODE, colourtrans_CURRENT_PALETTE,
0, colourtrans_GIVEN_SPRITE, 0, 0, &size);
- table = xcalloc(size, 1);
- xcolourtrans_generate_table_for_sprite(
- area, (osspriteop_id)header,
- colourtrans_CURRENT_MODE, colourtrans_CURRENT_PALETTE,
- table, colourtrans_GIVEN_SPRITE, 0, 0, 0);
-
- factors.xmul = 1;
- factors.ymul = 1;
- factors.xdiv = 1;
- factors.ydiv = 1;
-
- xosspriteop_put_sprite_scaled(osspriteop_PTR,
- area, (osspriteop_id)header,
- x0 + he->x * FULL_WIDTH + MARGIN,
- y0 - he->y * FULL_HEIGHT - FULL_HEIGHT + MARGIN,
- osspriteop_USE_MASK | osspriteop_USE_PALETTE, &factors, table);
-
- xfree(table);
+ table = calloc(size, 1);
+ if (!table) {
+ LOG(("Insufficient memory for calloc"));
+ warn_user("NoMemory", 0);
+ } else {
+ xcolourtrans_generate_table_for_sprite(
+ area, (osspriteop_id)header,
+ colourtrans_CURRENT_MODE, colourtrans_CURRENT_PALETTE,
+ table, colourtrans_GIVEN_SPRITE, 0, 0, 0);
+
+ factors.xmul = 1;
+ factors.ymul = 1;
+ factors.xdiv = 1;
+ factors.ydiv = 1;
+
+ xosspriteop_put_sprite_scaled(osspriteop_PTR,
+ area, (osspriteop_id)header,
+ x0 + he->x * FULL_WIDTH + MARGIN,
+ y0 - he->y * FULL_HEIGHT - FULL_HEIGHT + MARGIN,
+ osspriteop_USE_MASK | osspriteop_USE_PALETTE,
+ &factors, table);
+ free(table);
+ }
}
}
@@ -466,7 +471,6 @@ void ro_gui_history_redraw_tree(struct history_entry *he,
y0 - he->y * FULL_HEIGHT - HEIGHT - MARGIN - 24,
NULL, NULL, 0);
-
colourtrans_set_gcol(os_COLOUR_MID_DARK_GREY, 0,
os_ACTION_OVERWRITE, 0);