summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--render/layout.c15
-rw-r--r--riscos/theme.c25
2 files changed, 4 insertions, 36 deletions
diff --git a/render/layout.c b/render/layout.c
index 92aadbf7e..0e825f5cd 100644
--- a/render/layout.c
+++ b/render/layout.c
@@ -13,6 +13,7 @@
* precalculation of minimum / maximum box widths.
*/
+#include <alloca.h>
#include <assert.h>
#include <ctype.h>
#include <limits.h>
@@ -1002,16 +1003,7 @@ void layout_table(struct box *table, int available_width)
struct box *row;
struct box *row_group;
struct box **row_span_cell;
- /**
- * \attention
- * See the note at the top of ro_theme_load()
- * in riscos/theme.c for an explaination of this \#ifdef silliness
- */
-#ifdef __GNUC__
- struct column col[columns];
-#else
- struct column *col = xcalloc(columns, sizeof(*col));
-#endif
+ struct column *col = alloca(columns * sizeof(struct column));
struct css_style *style = table->style;
assert(table->type == BOX_TABLE);
@@ -1218,9 +1210,6 @@ void layout_table(struct box *table, int available_width)
xfree(excess_y);
xfree(row_span);
xfree(xs);
-#ifndef __GNUC__
- xfree(col);
-#endif
table->width = table_width;
table->height = table_height;
diff --git a/riscos/theme.c b/riscos/theme.c
index f20705e69..2febebc0b 100644
--- a/riscos/theme.c
+++ b/riscos/theme.c
@@ -10,6 +10,7 @@
* Toolbar themes (implementation).
*/
+#include <alloca.h>
#include <assert.h>
#include <stdio.h>
#include <string.h>
@@ -37,26 +38,7 @@ void ro_theme_load(char *pathname)
char name[] = "toolbar";
int context, window_size, data_size, size, i;
static char *data = 0;
- /**
- * \note
- * This is necessary as, when compiling with Norcroft 5.54,
- * linking fails due to it trying to use
- * __rt_allocauto and __rt_freeauto to allocate (and free)
- * the stack space used by the filename buffer.
- * These symbols are provided by the SCL but not by Unixlib
- *
- * \note
- * There are three possible ways around this \#ifdef nastiness:
- * - Allocate filename on the heap instead
- * - Get NetSurf to build and link against the SCL
- * - Implement __rt_allocauto and __rt_freeauto for Unixlib
- *
- */
-#ifdef __GNUC__
- char filename[strlen(pathname) + 12];
-#else
- char *filename = xcalloc(strlen(pathname) + 12, sizeof(char));
-#endif
+ char *filename = alloca(strlen(pathname) + 12);
fileswitch_object_type obj_type;
/* free old theme data */
@@ -117,9 +99,6 @@ void ro_theme_load(char *pathname)
theme_throbs = n;
}
}
-#ifndef __GNUC__
- xfree(filename);
-#endif
}