ObjFW  Diff

Differences From Artifact [69f97ea107]:

To Artifact [88abdbc6a0]:

  • File src/runtime/private.h — part of check-in [ede088a30d] at 2019-04-14 13:35:38 on branch trunk — runtime: Match Apple's +[initialize] behavior

    This now calls +[initialize] several times on the same class if it is
    unimplemented in one or more of the classes in the chain, to match the
    behavior of the Apple runtime. While the behavior before was safer, it
    can lead to testing against the ObjFW runtime and everything working,
    but then failing when trying to use it with the Apple runtime. (user: js, size: 8978) [annotate] [blame] [check-ins using]


274
275
276
277
278
279
280










		fprintf(stderr, "[objc @ " __FILE__ ":%d] ", __LINE__);	\
		fprintf(stderr, __VA_ARGS__);				\
		fprintf(stderr, "\n");					\
		fflush(stderr);						\
		abort();						\
		OF_UNREACHABLE						\
	}

















>
>
>
>
>
>
>
>
>
>
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
		fprintf(stderr, "[objc @ " __FILE__ ":%d] ", __LINE__);	\
		fprintf(stderr, __VA_ARGS__);				\
		fprintf(stderr, "\n");					\
		fflush(stderr);						\
		abort();						\
		OF_UNREACHABLE						\
	}

@interface DummyObject
{
	Class _Nonnull isa;
}

+ (void)initialize;
+ (bool)resolveClassMethod: (nonnull SEL)selector;
+ (bool)resolveInstanceMethod: (nonnull SEL)selector;
@end