ObjFW  Check-in [b610a6165c]

Overview
Comment:Adjust Amiga .library to amiga-gcc changes
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: b610a6165c00888647bb001ddc16866a19c4c42e84e57dec8634d4fdd7e6b2f3
User & Date: js on 2022-10-14 19:15:18
Other Links: manifest | tags
Context
2022-10-14
19:36
Document more exceptions check-in: 6c6c413432 user: js tags: trunk
19:15
Adjust Amiga .library to amiga-gcc changes check-in: b610a6165c user: js tags: trunk
16:11
OFOpenItemFailedException: Improve description check-in: 67b1d67088 user: js tags: trunk
Changes

Modified src/runtime/amiga-library.m from [0f1cc9582a] to [db6b5f4a82].

290
291
292
293
294
295
296
297

298
299
300
301
302
303
304
305
306
	OBJC_M68K_ARG(struct ObjFWRTBase *, base, a6)

	if (base->parent != NULL) {
		struct ObjFWRTBase *parent;

#ifdef OF_AMIGAOS_M68K
		if (base->initialized)
			for (size_t i = 1; i <= (size_t)_EH_FRAME_BEGINS__; i++)

				libc.__deregister_frame_info(
				    (&_EH_FRAME_BEGINS__)[i]);
#endif

		parent = base->parent;

		FreeMem(base->dataSeg - DATA_OFFSET, getDataSize());
		FreeMem((char *)base - base->library.lib_NegSize,
		    base->library.lib_NegSize + base->library.lib_PosSize);







|
>
|
<







290
291
292
293
294
295
296
297
298
299

300
301
302
303
304
305
306
	OBJC_M68K_ARG(struct ObjFWRTBase *, base, a6)

	if (base->parent != NULL) {
		struct ObjFWRTBase *parent;

#ifdef OF_AMIGAOS_M68K
		if (base->initialized)
			for (void *const *frame = _EH_FRAME_BEGINS__;
			    *frame != NULL;)
				libc.__deregister_frame_info(*frame++);

#endif

		parent = base->parent;

		FreeMem(base->dataSeg - DATA_OFFSET, getDataSize());
		FreeMem((char *)base - base->library.lib_NegSize,
		    base->library.lib_NegSize + base->library.lib_PosSize);
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357

	if (version > 1)
		return false;

	memcpy(&libc, libc_, sizeof(libc));

#ifdef OF_AMIGAOS_M68K
	if ((size_t)_EH_FRAME_BEGINS__ != (size_t)_EH_FRAME_OBJECTS__)
		return false;

	for (size_t i = 1; i <= (size_t)_EH_FRAME_BEGINS__; i++)
		libc.__register_frame_info((&_EH_FRAME_BEGINS__)[i],
		    (&_EH_FRAME_OBJECTS__)[i]);

	iter0 = &__CTOR_LIST__[1];
#elif defined(OF_MORPHOS)
	__asm__ (
	    "lis	%0, __EH_FRAME_BEGIN__@ha\n\t"
	    "la		%0, __EH_FRAME_BEGIN__@l(%0)\n\t"
	    "lis	%1, __CTOR_LIST__@ha\n\t"







|
<
|
<
|
<







338
339
340
341
342
343
344
345

346

347

348
349
350
351
352
353
354

	if (version > 1)
		return false;

	memcpy(&libc, libc_, sizeof(libc));

#ifdef OF_AMIGAOS_M68K
	for (void *const *frame = _EH_FRAME_OBJECTS__,

	    **object = _EH_FRAME_OBJECTS__; *frame != NULL;)

		libc.__register_frame_info(*frame++, *object++);


	iter0 = &__CTOR_LIST__[1];
#elif defined(OF_MORPHOS)
	__asm__ (
	    "lis	%0, __EH_FRAME_BEGIN__@ha\n\t"
	    "la		%0, __EH_FRAME_BEGIN__@l(%0)\n\t"
	    "lis	%1, __CTOR_LIST__@ha\n\t"