ObjFW  Check-in [ddcfab2b93]

Overview
Comment:Blocks need to be copied, not retained.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: ddcfab2b938bab6263fdca09b68be799440ff29d86818c8e10cf89f10845fff8
User & Date: js on 2012-07-20 14:17:30
Other Links: manifest | tags
Context
2012-07-20
14:53
Fix tests/objc_sync. check-in: a417f307de user: js tags: trunk
14:17
Blocks need to be copied, not retained. check-in: ddcfab2b93 user: js tags: trunk
2012-07-19
13:56
Add Linux/ARM to PLATFORMS.md. check-in: 05284c8560 user: js tags: trunk
Changes

Modified src/OFPlugin.m from [9ce801be06] to [c230c7ec3d].

52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
	if ((handle = dlopen([file cStringWithEncoding:
	    OF_STRING_ENCODING_NATIVE], RTLD_LAZY)) == NULL)
		@throw [OFInitializationFailedException
		    exceptionWithClass: self];

	[pool release];

	initPlugin = (OFPlugin*(*)(void))dlsym(handle, "init_plugin");
	if (initPlugin == NULL || (plugin = initPlugin()) == nil) {
		dlclose(handle);
		@throw [OFInitializationFailedException
		    exceptionWithClass: self];
	}

	plugin->handle = handle;







|







52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
	if ((handle = dlopen([file cStringWithEncoding:
	    OF_STRING_ENCODING_NATIVE], RTLD_LAZY)) == NULL)
		@throw [OFInitializationFailedException
		    exceptionWithClass: self];

	[pool release];

	*(void**)&initPlugin = dlsym(handle, "init_plugin");
	if (initPlugin == NULL || (plugin = initPlugin()) == nil) {
		dlclose(handle);
		@throw [OFInitializationFailedException
		    exceptionWithClass: self];
	}

	plugin->handle = handle;

Modified src/OFThread.m from [c1f31b8f18] to [d622539c3c].

237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
}

- initWithBlock: (of_thread_block_t)block_
	 object: (id)object_
{
	self = [super init];

	block = [block_ retain];
	object = [object_ retain];

	return self;
}
#endif

- (id)main







|







237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
}

- initWithBlock: (of_thread_block_t)block_
	 object: (id)object_
{
	self = [super init];

	block = [block_ copy];
	object = [object_ retain];

	return self;
}
#endif

- (id)main

Modified src/OFThreadPool.m from [59038be60b] to [8a78192e7d].

90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#ifdef OF_HAVE_BLOCKS
- initWithBlock: (of_thread_pool_block_t)block_
	 object: (id)object_
{
	self = [super init];

	@try {
		block = [block_ retain];
		object = [object_ retain];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;







|







90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#ifdef OF_HAVE_BLOCKS
- initWithBlock: (of_thread_pool_block_t)block_
	 object: (id)object_
{
	self = [super init];

	@try {
		block = [block_ copy];
		object = [object_ retain];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;