Overview
| Comment: | Make blocks work on Windows with static lib |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
cc519b99bf5137232379481602600f7e |
| User & Date: | js on 2017-07-08 15:00:50 |
| Other Links: | manifest | tags |
Context
|
2017-07-08
| ||
| 20:11 | Update buildsys (check-in: 2570b8fd95 user: js tags: trunk) | |
| 15:00 | Make blocks work on Windows with static lib (check-in: cc519b99bf user: js tags: trunk) | |
|
2017-07-02
| ||
| 19:30 | Fix tests/objc_sync (check-in: 292b83bb90 user: js tags: trunk) | |
Changes
Modified src/block.h from [9d0c7b51a6] to [a2c827d522].
| ︙ | ︙ | |||
38 39 40 41 42 43 44 |
#ifdef __cplusplus
extern "C" {
#endif
extern void *_Block_copy(const void *);
extern void _Block_release(const void *);
| | | > | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#ifdef __cplusplus
extern "C" {
#endif
extern void *_Block_copy(const void *);
extern void _Block_release(const void *);
# ifdef OF_WINDOWS
/*
* Clang has implicit declarations for these, but they are dllimport. When
* compiling ObjFW itself or using it as a static library, these need to be
* dllexport. Interestingly, this still works when using it as a shared library.
*/
extern __declspec(dllexport) struct objc_abi_class _NSConcreteStackBlock;
extern __declspec(dllexport) struct objc_abi_class _NSConcreteGlobalBlock;
extern __declspec(dllexport) void _Block_object_assign(void *, const void *,
const int);
extern __declspec(dllexport) void _Block_object_dispose(const void *,
const int);
|
| ︙ | ︙ |
Modified tests/OFBlockTests.m from [f49253f9ac] to [3e483694ef].
| ︙ | ︙ | |||
26 27 28 29 30 31 32 | # include <objc/runtime.h> #endif #import "TestsAppDelegate.h" static OFString *module = @"OFBlock"; | | | | | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# include <objc/runtime.h>
#endif
#import "TestsAppDelegate.h"
static OFString *module = @"OFBlock";
extern struct objc_abi_class _NSConcreteStackBlock;
extern struct objc_abi_class _NSConcreteGlobalBlock;
extern struct objc_abi_class _NSConcreteMallocBlock;
static void (^g)(void) = ^ {};
static int
(^returnStackBlock(void))(void)
{
__block int i = 42;
|
| ︙ | ︙ |