ObjFW  Diff

Differences From Artifact [b612119f40]:

To Artifact [15533381ae]:

  • File src/runtime/lookup.m — 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: 4838) [annotate] [blame] [check-ins using]


20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <stdlib.h>

#import "ObjFW_RT.h"
#import "private.h"
#import "macros.h"

@interface DummyObject
{
	Class isa;
}

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

static IMP forwardHandler = (IMP)0;
static IMP stretForwardHandler = (IMP)0;

static IMP
commonMethodNotFound(id object, SEL selector, IMP (*lookup)(id, SEL),
    IMP forward)
{







<
<
<
<
<
<
<
<
<







20
21
22
23
24
25
26









27
28
29
30
31
32
33
#include <stdio.h>
#include <stdlib.h>

#import "ObjFW_RT.h"
#import "private.h"
#import "macros.h"










static IMP forwardHandler = (IMP)0;
static IMP stretForwardHandler = (IMP)0;

static IMP
commonMethodNotFound(id object, SEL selector, IMP (*lookup)(id, SEL),
    IMP forward)
{