ObjFW  Diff

Differences From Artifact [536f7c35b9]:

  • File src/OFBlock.m — part of check-in [3c3467423a] at 2015-08-23 10:34:19 on branch trunk — OFBlock: Fix two bugs

    The first was that _Block_object_{assign,dispose} would only be a NOP
    when called from a byref helper instead of only being a NOP when called
    for an object from a byref helper.

    The second was that byref helpers would even be called when there are no
    byref helpers (bit 25 in the byref flags needs to be checked -
    conveniently, bit 25 indicates copy/dispose helpers in the block literal
    flags, too, so that define can be reused). (user: js, size: 11213) [annotate] [blame] [check-ins using] [more...]

To Artifact [3d4ae6ee72]:


139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
	const char *ivar_layout;
	struct class_ext *ext;
};

struct class _NSConcreteStackBlock;
struct class _NSConcreteGlobalBlock;
struct class _NSConcreteMallocBlock;
# if defined(__OBJC2__) && !defined(__ppc64__)
struct class _NSConcreteStackBlock_metaclass;
struct class _NSConcreteGlobalBlock_metaclass;
struct class _NSConcreteMallocBlock_metaclass;
# endif
#endif

static struct {







|







139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
	const char *ivar_layout;
	struct class_ext *ext;
};

struct class _NSConcreteStackBlock;
struct class _NSConcreteGlobalBlock;
struct class _NSConcreteMallocBlock;
# if defined(__OBJC2__) && !defined(OF_POWERPC64)
struct class _NSConcreteStackBlock_metaclass;
struct class _NSConcreteGlobalBlock_metaclass;
struct class _NSConcreteMallocBlock_metaclass;
# endif
#endif

static struct {
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
			@throw [OFInitializationFailedException
			    exceptionWithClass: self];
#endif

#ifdef OF_APPLE_RUNTIME
	Class tmp;

# if defined(__OBJC2__) && !defined(__ppc64__)
	tmp = objc_initializeClassPair(self, "OFStackBlock",
	    (Class)&_NSConcreteStackBlock,
	    (Class)&_NSConcreteStackBlock_metaclass);
	if (tmp == Nil)
		@throw [OFInitializationFailedException
		    exceptionWithClass: self];
	objc_registerClassPair(tmp);







|







317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
			@throw [OFInitializationFailedException
			    exceptionWithClass: self];
#endif

#ifdef OF_APPLE_RUNTIME
	Class tmp;

# if defined(__OBJC2__) && !defined(OF_POWERPC64)
	tmp = objc_initializeClassPair(self, "OFStackBlock",
	    (Class)&_NSConcreteStackBlock,
	    (Class)&_NSConcreteStackBlock_metaclass);
	if (tmp == Nil)
		@throw [OFInitializationFailedException
		    exceptionWithClass: self];
	objc_registerClassPair(tmp);