ObjFW  Check-in [22b2e6ea8b]

Overview
Comment:OFApplication: Fix MorphOS LocalVar list iteration

Double linked lists on MorphOS/AmigaOS have the last node point back to
the list head, so checking the successor for NULL is not correct, as
this will then include the list head which has no payload.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 22b2e6ea8bce9802fc012084e8c4b76a6ae653f47d927a790ef6a256710e19bb
User & Date: js on 2017-06-03 23:28:33
Other Links: manifest | tags
Context
2017-06-04
01:30
OFLocalization: Add support for MorphOS + libnix check-in: d974e769c5 user: js tags: trunk
2017-06-03
23:28
OFApplication: Fix MorphOS LocalVar list iteration check-in: 22b2e6ea8b user: js tags: trunk
21:53
Fix two OF_ASSUME_NONNULL_BEGIN being too early check-in: ade26679ca user: js tags: trunk
Changes

Modified src/OFApplication.m from [459adf8210] to [cd6046dfba].

300
301
302
303
304
305
306
307

308
309
310
311
312
313
314
			objc_autoreleasePoolPop(pool2);
		}

		/* Local variables override global variables */
		proc = (struct Process *)FindTask(NULL);
		firstLocalVar = (struct LocalVar *)proc->pr_LocalVars.mlh_Head;

		for (struct LocalVar *iter = firstLocalVar; iter != NULL;

		    iter = (struct LocalVar *)iter->lv_Node.ln_Succ) {
			size_t length;
			OFString *key, *value;

			if (iter->lv_Node.ln_Type != LV_VAR ||
			    iter->lv_Flags & GVF_BINARY_VAR)
				continue;







|
>







300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
			objc_autoreleasePoolPop(pool2);
		}

		/* Local variables override global variables */
		proc = (struct Process *)FindTask(NULL);
		firstLocalVar = (struct LocalVar *)proc->pr_LocalVars.mlh_Head;

		for (struct LocalVar *iter = firstLocalVar;
		    iter->lv_Node.ln_Succ != NULL;
		    iter = (struct LocalVar *)iter->lv_Node.ln_Succ) {
			size_t length;
			OFString *key, *value;

			if (iter->lv_Node.ln_Type != LV_VAR ||
			    iter->lv_Flags & GVF_BINARY_VAR)
				continue;