summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
Diffstat (limited to 'render')
-rw-r--r--render/box_construct.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/render/box_construct.c b/render/box_construct.c
index 9519f8ff8..391999aa7 100644
--- a/render/box_construct.c
+++ b/render/box_construct.c
@@ -355,7 +355,17 @@ bool box_construct_element(xmlNode *n, struct content *content,
target = box->target;
}
if (style->display == CSS_DISPLAY_NONE) {
+ /* Free style and invalidate box's style pointer */
talloc_free(style);
+ box->style = NULL;
+
+ /* If this box has an associated gadget, invalidate the
+ * gadget's box pointer and our pointer to the gadget. */
+ if (box->gadget) {
+ box->gadget->box = NULL;
+ box->gadget = NULL;
+ }
+
/* We can't do this, as it will destroy any gadget
* associated with the box, thus making any form usage
* access freed memory. The box is in the talloc context,