File tree Expand file tree Collapse file tree 1 file changed +9
-7
lines changed Expand file tree Collapse file tree 1 file changed +9
-7
lines changed Original file line number Diff line number Diff line change 31
31
// decomposedStringWithCanonicalMapping implementation. Instead, we use a local
32
32
// autorelease pool to prevent leaking of the temporary object into the callers
33
33
// autorelease pool.
34
- #if defined(__i386__)
35
- #define AUTORELEASEPOOL @autoreleasepool
36
- #else
37
- // On other platforms we rely on the remove from autorelease pool optimization.
38
34
//
39
- // PLUS ZERO TODO: Right now we force an autoreleasepool here where we really do
40
- // not want to do so. The reason why is that without the autoreleasepool (or
35
+ //
36
+ // FIXME: Right now we force an autoreleasepool here on x86_64 where we really
37
+ // do not want to do so. The reason why is that without the autoreleasepool (or
41
38
// really something like a defer), we tail call
42
39
// objc_retainAutoreleasedReturnValue which blocks the hand shake. Evidently
43
40
// this is something that we do not want to do. See:
44
41
// b79ff50f1bca97ecfd053372f5f6dc9d017398bc. Until that is resolved, just create
45
- // an autoreleasepool here.
42
+ // an autoreleasepool here on x86_64. On arm/arm64 we do not have such an issue
43
+ // since we use an assembly marker instead.
44
+ #if defined(__i386__) || defined(__x86_64__)
46
45
#define AUTORELEASEPOOL @autoreleasepool
46
+ #else
47
+ // On other platforms we rely on the remove from autorelease pool optimization.
48
+ #define AUTORELEASEPOOL
47
49
#endif
48
50
49
51
SWIFT_CC (swift) SWIFT_RUNTIME_STDLIB_INTERFACE
You can’t perform that action at this time.
0 commit comments