separate out ready and done message processing to make the code
more readable.
remove checking of content status as content_close() handles that
itself.
We were using integer multiplication rather than fixed-point
multiplication when calculating point sizes relative to the viewport.
This fixes that.
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Otherwise, each source file that includes the header will create a
new definition, which are usually merged together by the linker.
Multiple definitions of an object is not allowed in ISO C.
In order to help us debug shutting down with active fetches, this
will abort the process cleanly if we get a callback to an "active"
llcache handle after the abort process has actually killed them
all. This can happen with deferred fetcher aborts in the cURL
fetcher.
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
During the process of finalising the hlcache, there won't be
any more fetching going on. As such, we can abort, error, and
then destroy any contents still in the process of loading. This
should reduce our leaks during shutdown.
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
In order to better support valgrind and friends, add -w to
the monkey driver. You can use it as:
monkey_driver.py ...normalargs... -w 'valgrind -v --track-origins=yes'
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Sometimes JavaScript chooses to log an empty string. We should
honour that by requiring msg be a valid empty string.
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Sometimes callbacks may be cancelled from within themselves. In
that case we need to simply ensure that should the callback be
wanted to repeat, we instead stop that so that once the callback
is completed we do not attempt to reschedule something which had
already been deleted.
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
In order to cope better with modern cURL which prevents making
cURL calls when inside a callback from within cURL, defer fetch
start when we are processing in `fetch_curl_data()`.
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
The pushed fragment node holds the reference, so unref it in
the end of createDocumentFragment()
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Since executing a script can cause more scripts to be appended
to the script array, and that can cause a reallocation which might
move the script array, reacquire the script pointer after running
the script so that we don't wander off into the reeds.
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>