summaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2011-09-17 14:35:54 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2011-09-17 14:35:54 +0000
commit19daa23f947b0bef7f86877be68277d4696e40a9 (patch)
tree2a24ed2dee2565dbe4d048b1cb059f1258b514ff /content
parent9bb586769a947be985485fcc5e713cfedb22ef2f (diff)
downloadnetsurf-19daa23f947b0bef7f86877be68277d4696e40a9.tar.gz
netsurf-19daa23f947b0bef7f86877be68277d4696e40a9.tar.bz2
Only lock content around its reformat call. This means it is not now locked when reformat message is broadcast. Prevents the browser window callback asking the core to redraw a content before it gets unlocked.
svn path=/trunk/netsurf/; revision=12802
Diffstat (limited to 'content')
-rw-r--r--content/content.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/content/content.c b/content/content.c
index f2d06b639..7aea920a5 100644
--- a/content/content.c
+++ b/content/content.c
@@ -354,14 +354,16 @@ void content__reformat(struct content *c, bool background,
c->status == CONTENT_STATUS_DONE);
assert(c->locked == false);
LOG(("%p %s", c, llcache_handle_get_url(c->llcache)));
- c->locked = true;
c->available_width = width;
if (c->handler->reformat != NULL) {
+
+ c->locked = true;
c->handler->reformat(c, width, height);
+ c->locked = false;
+
data.background = background;
content_broadcast(c, CONTENT_MSG_REFORMAT, data);
}
- c->locked = false;
}