ObjFW  Check-in [a37a78d51b]

Overview
Comment:runtime/linklib: Do not pass exit() to Amiga lib

The only reason the runtime should ever terminate the process is because
a fatal error occurred, and for that it should use abort().

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: a37a78d51b0411551264cf9cfe5f60fb0039c90ae95da74fdf8b9b1705950ae0
User & Date: js on 2018-06-03 23:08:34
Other Links: manifest | tags
Context
2018-06-03
23:31
Add -[OFObject allocZeroedMemoryWithSize:(count:)] check-in: aacb5897a0 user: js tags: trunk
23:08
runtime/linklib: Do not pass exit() to Amiga lib check-in: a37a78d51b user: js tags: trunk
20:58
ofzip: LHA: Only try to set a mode if we have one check-in: 54c76965d7 user: js tags: trunk
Changes

Modified src/runtime/amiga-library.m from [cbe13c4c89] to [a831aab769].

462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483

int
fflush(FILE *restrict stream)
{
	return libc.fflush(stream);
}

void
exit(int status)
{
	libc.exit(status);

	OF_UNREACHABLE
}

void
abort(void)
{
	libc.abort();

	OF_UNREACHABLE
}







<
<
<
<
<
<
<
<







462
463
464
465
466
467
468








469
470
471
472
473
474
475

int
fflush(FILE *restrict stream)
{
	return libc.fflush(stream);
}









void
abort(void)
{
	libc.abort();

	OF_UNREACHABLE
}

Modified src/runtime/linklib/linklib.m from [715e972f4a] to [b705064e93].

67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
	struct objc_libc libc = {
		.malloc = malloc,
		.calloc = calloc,
		.realloc = realloc,
		.free = free,
		.vfprintf = vfprintf,
		.fflush = fflush,
		.exit = exit,
		.abort = abort,
#ifdef HAVE_SJLJ_EXCEPTIONS
		._Unwind_SjLj_RaiseException = _Unwind_SjLj_RaiseException,
#else
		._Unwind_RaiseException = _Unwind_RaiseException,
#endif
		._Unwind_DeleteException = _Unwind_DeleteException,







<







67
68
69
70
71
72
73

74
75
76
77
78
79
80
	struct objc_libc libc = {
		.malloc = malloc,
		.calloc = calloc,
		.realloc = realloc,
		.free = free,
		.vfprintf = vfprintf,
		.fflush = fflush,

		.abort = abort,
#ifdef HAVE_SJLJ_EXCEPTIONS
		._Unwind_SjLj_RaiseException = _Unwind_SjLj_RaiseException,
#else
		._Unwind_RaiseException = _Unwind_RaiseException,
#endif
		._Unwind_DeleteException = _Unwind_DeleteException,

Modified src/runtime/private.h from [417682c35b] to [9809c03572].

139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
struct objc_libc {
	void *_Nullable (*_Nonnull malloc)(size_t);
	void *_Nullable (*_Nonnull calloc)(size_t, size_t);
	void *_Nullable (*_Nonnull realloc)(void *_Nullable, size_t);
	void (*_Nonnull free)(void *_Nullable);
	int (*_Nonnull vfprintf)(FILE *_Nonnull, const char *_Nonnull, va_list);
	int (*_Nonnull fflush)(FILE *_Nonnull);
	void (*_Nonnull exit)(int);
	void (*_Nonnull abort)(void);
# ifdef HAVE_SJLJ_EXCEPTIONS
	int (*_Nonnull _Unwind_SjLj_RaiseException)(void *_Nonnull);
# else
	int (*_Nonnull _Unwind_RaiseException)(void *_Nonnull);
# endif
	void (*_Nonnull _Unwind_DeleteException)(void *_Nonnull);







<







139
140
141
142
143
144
145

146
147
148
149
150
151
152
struct objc_libc {
	void *_Nullable (*_Nonnull malloc)(size_t);
	void *_Nullable (*_Nonnull calloc)(size_t, size_t);
	void *_Nullable (*_Nonnull realloc)(void *_Nullable, size_t);
	void (*_Nonnull free)(void *_Nullable);
	int (*_Nonnull vfprintf)(FILE *_Nonnull, const char *_Nonnull, va_list);
	int (*_Nonnull fflush)(FILE *_Nonnull);

	void (*_Nonnull abort)(void);
# ifdef HAVE_SJLJ_EXCEPTIONS
	int (*_Nonnull _Unwind_SjLj_RaiseException)(void *_Nonnull);
# else
	int (*_Nonnull _Unwind_RaiseException)(void *_Nonnull);
# endif
	void (*_Nonnull _Unwind_DeleteException)(void *_Nonnull);