diff options
Diffstat (limited to 'render')
-rw-r--r-- | render/font.h | 4 | ||||
-rw-r--r-- | render/html.c | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/render/font.h b/render/font.h index f42d96229..4a983098a 100644 --- a/render/font.h +++ b/render/font.h @@ -33,13 +33,13 @@ struct font_data *nsfont_open(struct font_set *set, struct css_style *style); void nsfont_free_set(struct font_set *set); unsigned long nsfont_width(struct font_data *font, const char *text, size_t length); -void nsfont_position_in_string(struct font_data *font, const char *text, +bool nsfont_position_in_string(struct font_data *font, const char *text, size_t length, unsigned long x, int *char_offset, int *pixel_offset); char *nsfont_split(struct font_data *font, const char *text, size_t length, unsigned int width, unsigned int *used_width); -void nsfont_paint(struct font_data *font, const char *str, +bool nsfont_paint(struct font_data *font, const char *str, size_t length, int xpos, int ypos, void *trfm); void nsfont_txtenum(struct font_data *font, const char *text, size_t length, diff --git a/render/html.c b/render/html.c index 33b2a96c2..6d934e22e 100644 --- a/render/html.c +++ b/render/html.c @@ -592,9 +592,13 @@ bool html_find_stylesheets(struct content *c, xmlNode *head) if (c->data.html.stylesheet_content[STYLESHEET_STYLE] != 0) { if (css_convert(c->data.html.stylesheet_content[STYLESHEET_STYLE], c->width, c->height)) { - content_add_user(c->data.html.stylesheet_content[STYLESHEET_STYLE], + if (!content_add_user(c->data.html.stylesheet_content[STYLESHEET_STYLE], html_convert_css_callback, - c, (void *) STYLESHEET_STYLE); + c, (void *) STYLESHEET_STYLE)) { + /* no memory */ + c->data.html.stylesheet_content[STYLESHEET_STYLE] = 0; + return false; + } } else { /* conversion failed */ c->data.html.stylesheet_content[STYLESHEET_STYLE] = 0; |