summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
Diffstat (limited to 'render')
-rw-r--r--render/box.c4
-rw-r--r--render/box.h5
2 files changed, 4 insertions, 5 deletions
diff --git a/render/box.c b/render/box.c
index 0f73cbe57..91999b8ac 100644
--- a/render/box.c
+++ b/render/box.c
@@ -85,7 +85,7 @@ void *box_style_alloc(void *ptr, size_t len, void *pw)
static int
free_box_style(struct box *b)
{
- if (b->style_owned && b->style != NULL) {
+ if ((b->flags & STYLE_OWNED) && b->style != NULL) {
css_computed_style_destroy(b->style);
b->style = NULL;
}
@@ -132,9 +132,9 @@ struct box * box_create(css_select_results *styles, css_computed_style *style,
box->type = BOX_INLINE;
box->flags = 0;
+ box->flags = style_owned ? box->flags | STYLE_OWNED : box->flags;
box->styles = styles;
box->style = style;
- box->style_owned = style_owned;
box->x = box->y = 0;
box->width = UNKNOWN_WIDTH;
box->height = 0;
diff --git a/render/box.h b/render/box.h
index 0f3d06f7c..a24047001 100644
--- a/render/box.h
+++ b/render/box.h
@@ -118,7 +118,8 @@ typedef enum {
/** Type of a struct box. */
typedef enum {
- NEW_LINE = 1 << 0 /* first inline on a new line */
+ NEW_LINE = 1 << 0, /* first inline on a new line */
+ STYLE_OWNED = 1 << 1 /* style is owned by this box */
} box_flags;
/* Sides of a box */
@@ -149,8 +150,6 @@ struct box {
* a box's 'styles' select results, except for implied boxes, where it
* is a pointer to an owned computed style. */
css_computed_style *style;
- /** Whether the style is owned by this box. */
- bool style_owned;
/** Coordinate of left padding edge relative to parent box, or relative
* to ancestor that contains this box in float_children for FLOAT_. */