summaryrefslogtreecommitdiff
path: root/desktop/frames.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2016-04-26 10:26:00 +0100
committerVincent Sanders <vince@kyllikki.org>2016-04-26 10:26:00 +0100
commit7ec49463dafc20f915ce68c789f36458579783c3 (patch)
treec7c6d993a345f83df7f7c86545f7216cfc89f830 /desktop/frames.c
parent5c427ba8459b46bcb63daa74e4e03f2e22ed6deb (diff)
downloadnetsurf-7ec49463dafc20f915ce68c789f36458579783c3.tar.gz
netsurf-7ec49463dafc20f915ce68c789f36458579783c3.tar.bz2
fix error reporting from frameset creation
Diffstat (limited to 'desktop/frames.c')
-rw-r--r--desktop/frames.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/desktop/frames.c b/desktop/frames.c
index 253e84225..394deb2ad 100644
--- a/desktop/frames.c
+++ b/desktop/frames.c
@@ -291,14 +291,8 @@ void browser_window_recalculate_iframes(struct browser_window *bw)
}
-/**
- * Create and open a frameset for a browser window.
- *
- * \param bw The browser window to create the frameset for
- * \param frameset The frameset to create
- */
-
-void browser_window_create_frameset(struct browser_window *bw,
+/* exported interface documented in desktop/frames.h */
+nserror browser_window_create_frameset(struct browser_window *bw,
struct content_html_frames *frameset)
{
int row, col, index;
@@ -313,8 +307,10 @@ void browser_window_create_frameset(struct browser_window *bw,
assert(frameset->cols + frameset->rows != 0);
bw->children = calloc((frameset->cols * frameset->rows), sizeof(*bw));
- if (!bw->children)
- return;
+ if (!bw->children) {
+ return NSERROR_NOMEM;
+ }
+
bw->cols = frameset->cols;
bw->rows = frameset->rows;
for (row = 0; row < bw->rows; row++) {
@@ -344,8 +340,11 @@ void browser_window_create_frameset(struct browser_window *bw,
window->margin_height = frame->margin_height;
if (frame->name) {
window->name = strdup(frame->name);
- if (!window->name)
- warn_user("NoMemory", 0);
+ if (!window->name) {
+ free(bw->children);
+ bw->children = NULL;
+ return NSERROR_NOMEM;
+ }
}
window->scale = bw->scale;
@@ -406,6 +405,8 @@ void browser_window_create_frameset(struct browser_window *bw,
}
}
}
+
+ return NSERROR_OK;
}