Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SR-2587] Optimisation for zero length String fails on Android build of Foundation #3939

Closed
johnno1962 opened this issue Sep 8, 2016 · 1 comment
Assignees

Comments

@johnno1962
Copy link
Contributor

Previous ID SR-2587
Radar None
Original Reporter @johnno1962
Type Bug
Status Closed
Resolution Done
Additional Detail from JIRA
Votes 0
Component/s Foundation
Labels Bug
Assignee @johnno1962
Priority Medium

md5: 647012f97ad3fe4b3b854ad423c13a8a

Issue Description:

During the port of Foundation to Android it was found that an optimisation for creating zero length Strings from Data objects was causing a SEGFAULT.

#622

The change made to remove this optimisation is here:

https://github.com/SwiftJava/swift-corelibs-foundation/blob/master/CoreFoundation/String.subproj/CFString.c#L1267

@johnno1962
Copy link
Contributor Author

This was resolved by moving the alias from __CFConstantStringClassReference to _TMC10Foundation19_NSCFConstantString from being applied as a linker option into CFInternal.h:

#ifdef ANDROID
// Avoids crashes on Android
// https://bugs.swift.org/browse/SR-2587
// https://bugs.swift.org/browse/SR-2588
// Seemed to be a linker/relocation? problem.
// CFStrings using CONST_STRING_DECL() were not working
// Applies reference to _NSCFConstantString's isa here
// rather than using a linker option to create an alias.
#define __CFConstantStringClassReference _TMC10Foundation19_NSCFConstantString
#endif

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@shahmishal shahmishal transferred this issue from apple/swift May 5, 2022
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant