ObjFW  Check-in [e7f4f80e23]

Overview
Comment:runtime: Correctly handle AR pool push during pop

Getting a pointer and increasing it until we reach the top pointer does
not work: Releasing an object can temporarily create new autorelease
pools, which can trigger resizing of "objects" using realloc, which can
move it to a different address, which will then lead to continuing to
iterate on a now invalid pointer.

This is now solved by using an index into "objects" instead. Since we're
now indexing for the pop, let's use indexes everywhere, as they're more
readable anyway.

While debugging this, I noticed that the last pool is popped quite
frequently, only for a new pool to be pushed immediately again. This
resulted in a free followed by a malloc every time. Instead, keep the
pool, but let OFThread explicitly say when to free everything.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: e7f4f80e2313fb6294ed2e0a210e4fefc5dab9f4c93fa71b04313e52451f1e82
User & Date: js on 2020-01-24 03:03:32
Other Links: manifest | tags
Context
2020-01-25
20:04
tlskey.m: Use hashtable from runtime on AmigaOS check-in: 49aee5736e user: js tags: trunk
2020-01-24
03:03
runtime: Correctly handle AR pool push during pop check-in: e7f4f80e23 user: js tags: trunk
2020-01-19
15:37
OFHTTPClient: Fix type mismatch on Windows check-in: 5256e9acaf user: js tags: trunk
Changes