| //===----------------------------------------------------------------------===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See http://swift.org/LICENSE.txt for license information |
| // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // THIS IS JUST TEMPORARY TO AVOID LOCKSTEP ISSUES WITH COREFOUNDATION |
| |
| #import <CoreFoundation/CoreFoundation.h> |
| |
| #define HASHFACTOR 2654435761U |
| |
| CFHashCode __CFHashInt(long i) { |
| return ((i > 0) ? (CFHashCode)(i) : (CFHashCode)(-i)) * HASHFACTOR; |
| } |
| |
| CFHashCode __CFHashDouble(double d) { |
| double dInt; |
| if (d < 0) d = -d; |
| dInt = floor(d+0.5); |
| CFHashCode integralHash = HASHFACTOR * (CFHashCode)fmod(dInt, (double)ULONG_MAX); |
| return (CFHashCode)(integralHash + (CFHashCode)((d - dInt) * ULONG_MAX)); |
| } |