summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Schleifer <js@nil.im>2020-01-08 03:29:37 +0100
committerJonathan Schleifer <js@nil.im>2020-01-08 03:29:37 +0100
commitee1d93e6886170031e9d8bb1651bddbafd2147da (patch)
tree7bd8b4230e884365df0e6f4553d0cf63439f9cfd
parent2382ac8d77ffc10efa54bdef02c312247f2d5b61 (diff)
parent5fd3714ee0d52b3c2c73390eb03ffd4dd7997162 (diff)
Merge branch 'master' into 1.01.0
-rw-r--r--PLATFORMS.md2
-rw-r--r--README.md10
-rw-r--r--configure.ac6
-rw-r--r--generators/TableGenerator.h4
-rw-r--r--generators/TableGenerator.m4
-rw-r--r--generators/copyright.h8
-rw-r--r--src/Makefile4
-rw-r--r--src/OFAdjacentArray.h4
-rw-r--r--src/OFAdjacentArray.m4
-rw-r--r--src/OFAdjacentSubarray.h4
-rw-r--r--src/OFAdjacentSubarray.m4
-rw-r--r--src/OFApplication.h4
-rw-r--r--src/OFApplication.m4
-rw-r--r--src/OFArray+Private.h4
-rw-r--r--src/OFArray.h4
-rw-r--r--src/OFArray.m4
-rw-r--r--src/OFBitSetCharacterSet.h4
-rw-r--r--src/OFBitSetCharacterSet.m4
-rw-r--r--src/OFBlock.h4
-rw-r--r--src/OFBlock.m4
-rw-r--r--src/OFBytesValue.h4
-rw-r--r--src/OFBytesValue.m4
-rw-r--r--src/OFCharacterSet.h4
-rw-r--r--src/OFCharacterSet.m4
-rw-r--r--src/OFCollection.h4
-rw-r--r--src/OFColor.h4
-rw-r--r--src/OFColor.m4
-rw-r--r--src/OFCondition.h4
-rw-r--r--src/OFCondition.m4
-rw-r--r--src/OFConstantString.h4
-rw-r--r--src/OFConstantString.m4
-rw-r--r--src/OFCountedMapTableSet.h4
-rw-r--r--src/OFCountedMapTableSet.m4
-rw-r--r--src/OFCountedSet.h4
-rw-r--r--src/OFCountedSet.m4
-rw-r--r--src/OFCryptoHash.h23
-rw-r--r--src/OFDNSQuery.h4
-rw-r--r--src/OFDNSQuery.m4
-rw-r--r--src/OFDNSResolver.h4
-rw-r--r--src/OFDNSResolver.m4
-rw-r--r--src/OFDNSResolverSettings.h4
-rw-r--r--src/OFDNSResolverSettings.m4
-rw-r--r--src/OFDNSResourceRecord.h4
-rw-r--r--src/OFDNSResourceRecord.m4
-rw-r--r--src/OFDNSResponse.h4
-rw-r--r--src/OFDNSResponse.m4
-rw-r--r--src/OFData+CryptoHashing.h4
-rw-r--r--src/OFData+CryptoHashing.m7
-rw-r--r--src/OFData+MessagePackValue.h4
-rw-r--r--src/OFData+MessagePackValue.m4
-rw-r--r--src/OFData.h4
-rw-r--r--src/OFData.m4
-rw-r--r--src/OFDate.h4
-rw-r--r--src/OFDate.m4
-rw-r--r--src/OFDictionary.h4
-rw-r--r--src/OFDictionary.m4
-rw-r--r--src/OFDimensionValue.h4
-rw-r--r--src/OFDimensionValue.m4
-rw-r--r--src/OFEnumerator.h4
-rw-r--r--src/OFEnumerator.m4
-rw-r--r--src/OFEpollKernelEventObserver.h4
-rw-r--r--src/OFEpollKernelEventObserver.m27
-rw-r--r--src/OFFile.h4
-rw-r--r--src/OFFile.m4
-rw-r--r--src/OFFileManager.h4
-rw-r--r--src/OFFileManager.m4
-rw-r--r--src/OFFileURLHandler.h4
-rw-r--r--src/OFFileURLHandler.m4
-rw-r--r--src/OFGZIPStream.h4
-rw-r--r--src/OFGZIPStream.m6
-rw-r--r--src/OFHMAC.h16
-rw-r--r--src/OFHMAC.m30
-rw-r--r--src/OFHTTPClient.h4
-rw-r--r--src/OFHTTPClient.m6
-rw-r--r--src/OFHTTPCookie.h4
-rw-r--r--src/OFHTTPCookie.m4
-rw-r--r--src/OFHTTPCookieManager.h4
-rw-r--r--src/OFHTTPCookieManager.m4
-rw-r--r--src/OFHTTPRequest.h4
-rw-r--r--src/OFHTTPRequest.m4
-rw-r--r--src/OFHTTPResponse.h4
-rw-r--r--src/OFHTTPResponse.m4
-rw-r--r--src/OFHTTPServer.h4
-rw-r--r--src/OFHTTPServer.m6
-rw-r--r--src/OFHTTPURLHandler.h4
-rw-r--r--src/OFHTTPURLHandler.m4
-rw-r--r--src/OFHostAddressResolver.h4
-rw-r--r--src/OFHostAddressResolver.m20
-rw-r--r--src/OFINICategory+Private.h4
-rw-r--r--src/OFINICategory.h4
-rw-r--r--src/OFINICategory.m4
-rw-r--r--src/OFINIFile.h4
-rw-r--r--src/OFINIFile.m4
-rw-r--r--src/OFINIFileSettings.h4
-rw-r--r--src/OFINIFileSettings.m4
-rw-r--r--src/OFInflate64Stream.h4
-rw-r--r--src/OFInflate64Stream.m4
-rw-r--r--src/OFInflateStream.h4
-rw-r--r--src/OFInflateStream.m4
-rw-r--r--src/OFInvertedCharacterSet.h4
-rw-r--r--src/OFInvertedCharacterSet.m4
-rw-r--r--src/OFInvocation.h4
-rw-r--r--src/OFInvocation.m4
-rw-r--r--src/OFJSONRepresentation.h4
-rw-r--r--src/OFKernelEventObserver+Private.h31
-rw-r--r--src/OFKernelEventObserver.h22
-rw-r--r--src/OFKernelEventObserver.m180
-rw-r--r--src/OFKeyValueCoding.h4
-rw-r--r--src/OFKqueueKernelEventObserver.h4
-rw-r--r--src/OFKqueueKernelEventObserver.m27
-rw-r--r--src/OFLHAArchive.h4
-rw-r--r--src/OFLHAArchive.m4
-rw-r--r--src/OFLHAArchiveEntry+Private.h4
-rw-r--r--src/OFLHAArchiveEntry.h4
-rw-r--r--src/OFLHAArchiveEntry.m4
-rw-r--r--src/OFLHADecompressingStream.h4
-rw-r--r--src/OFLHADecompressingStream.m4
-rw-r--r--src/OFList.h4
-rw-r--r--src/OFList.m4
-rw-r--r--src/OFLocale.h4
-rw-r--r--src/OFLocale.m4
-rw-r--r--src/OFLocking.h4
-rw-r--r--src/OFMD5Hash.h5
-rw-r--r--src/OFMD5Hash.m22
-rw-r--r--src/OFMapTable+Private.h4
-rw-r--r--src/OFMapTable.h4
-rw-r--r--src/OFMapTable.m4
-rw-r--r--src/OFMapTableDictionary.h4
-rw-r--r--src/OFMapTableDictionary.m4
-rw-r--r--src/OFMapTableSet.h4
-rw-r--r--src/OFMapTableSet.m4
-rw-r--r--src/OFMessagePackExtension.h4
-rw-r--r--src/OFMessagePackExtension.m4
-rw-r--r--src/OFMessagePackRepresentation.h4
-rw-r--r--src/OFMethodSignature.h4
-rw-r--r--src/OFMethodSignature.m4
-rw-r--r--src/OFMutableAdjacentArray.h4
-rw-r--r--src/OFMutableAdjacentArray.m4
-rw-r--r--src/OFMutableArray.h4
-rw-r--r--src/OFMutableArray.m4
-rw-r--r--src/OFMutableData.h4
-rw-r--r--src/OFMutableData.m4
-rw-r--r--src/OFMutableDictionary.h4
-rw-r--r--src/OFMutableDictionary.m4
-rw-r--r--src/OFMutableLHAArchiveEntry.h4
-rw-r--r--src/OFMutableLHAArchiveEntry.m4
-rw-r--r--src/OFMutableMapTableDictionary.h4
-rw-r--r--src/OFMutableMapTableDictionary.m4
-rw-r--r--src/OFMutableMapTableSet.h4
-rw-r--r--src/OFMutableMapTableSet.m4
-rw-r--r--src/OFMutablePair.h4
-rw-r--r--src/OFMutablePair.m4
-rw-r--r--src/OFMutableSet.h4
-rw-r--r--src/OFMutableSet.m4
-rw-r--r--src/OFMutableString.h4
-rw-r--r--src/OFMutableString.m4
-rw-r--r--src/OFMutableTarArchiveEntry.h4
-rw-r--r--src/OFMutableTarArchiveEntry.m4
-rw-r--r--src/OFMutableTriple.h4
-rw-r--r--src/OFMutableTriple.m4
-rw-r--r--src/OFMutableURL.h4
-rw-r--r--src/OFMutableURL.m4
-rw-r--r--src/OFMutableUTF8String.h4
-rw-r--r--src/OFMutableUTF8String.m4
-rw-r--r--src/OFMutableZIPArchiveEntry.h4
-rw-r--r--src/OFMutableZIPArchiveEntry.m4
-rw-r--r--src/OFMutex.h4
-rw-r--r--src/OFMutex.m4
-rw-r--r--src/OFNonretainedObjectValue.h4
-rw-r--r--src/OFNonretainedObjectValue.m4
-rw-r--r--src/OFNull.h4
-rw-r--r--src/OFNull.m4
-rw-r--r--src/OFNumber.h4
-rw-r--r--src/OFNumber.m4
-rw-r--r--src/OFObject+KeyValueCoding.h4
-rw-r--r--src/OFObject+KeyValueCoding.m4
-rw-r--r--src/OFObject+Serialization.h4
-rw-r--r--src/OFObject+Serialization.m4
-rw-r--r--src/OFObject.h9
-rw-r--r--src/OFObject.m8
-rw-r--r--src/OFOptionsParser.h4
-rw-r--r--src/OFOptionsParser.m4
-rw-r--r--src/OFPair.h4
-rw-r--r--src/OFPair.m4
-rw-r--r--src/OFPlugin.h4
-rw-r--r--src/OFPlugin.m4
-rw-r--r--src/OFPointValue.h4
-rw-r--r--src/OFPointValue.m4
-rw-r--r--src/OFPointerValue.h4
-rw-r--r--src/OFPointerValue.m4
-rw-r--r--src/OFPollKernelEventObserver.h4
-rw-r--r--src/OFPollKernelEventObserver.m26
-rw-r--r--src/OFProcess.h4
-rw-r--r--src/OFProcess.m4
-rw-r--r--src/OFRIPEMD160Hash.h5
-rw-r--r--src/OFRIPEMD160Hash.m22
-rw-r--r--src/OFRangeCharacterSet.h4
-rw-r--r--src/OFRangeCharacterSet.m4
-rw-r--r--src/OFRangeValue.h4
-rw-r--r--src/OFRangeValue.m4
-rw-r--r--src/OFRectangleValue.h4
-rw-r--r--src/OFRectangleValue.m4
-rw-r--r--src/OFRecursiveMutex.h4
-rw-r--r--src/OFRecursiveMutex.m4
-rw-r--r--src/OFRunLoop+Private.h4
-rw-r--r--src/OFRunLoop.h4
-rw-r--r--src/OFRunLoop.m4
-rw-r--r--src/OFSHA1Hash.h5
-rw-r--r--src/OFSHA1Hash.m22
-rw-r--r--src/OFSHA224Hash.h4
-rw-r--r--src/OFSHA224Hash.m4
-rw-r--r--src/OFSHA224Or256Hash.h5
-rw-r--r--src/OFSHA224Or256Hash.m22
-rw-r--r--src/OFSHA256Hash.h4
-rw-r--r--src/OFSHA256Hash.m4
-rw-r--r--src/OFSHA384Hash.h4
-rw-r--r--src/OFSHA384Hash.m4
-rw-r--r--src/OFSHA384Or512Hash.h5
-rw-r--r--src/OFSHA384Or512Hash.m22
-rw-r--r--src/OFSHA512Hash.h4
-rw-r--r--src/OFSHA512Hash.m4
-rw-r--r--src/OFSandbox.h4
-rw-r--r--src/OFSandbox.m4
-rw-r--r--src/OFSecureData.h87
-rw-r--r--src/OFSecureData.m249
-rw-r--r--src/OFSeekableStream.h4
-rw-r--r--src/OFSeekableStream.m4
-rw-r--r--src/OFSelectKernelEventObserver.h4
-rw-r--r--src/OFSelectKernelEventObserver.m24
-rw-r--r--src/OFSerialization.h6
-rw-r--r--src/OFSet.h4
-rw-r--r--src/OFSet.m4
-rw-r--r--src/OFSettings.h4
-rw-r--r--src/OFSettings.m4
-rw-r--r--src/OFSortedList.h4
-rw-r--r--src/OFSortedList.m4
-rw-r--r--src/OFStdIOStream+Private.h4
-rw-r--r--src/OFStdIOStream.h4
-rw-r--r--src/OFStdIOStream.m4
-rw-r--r--src/OFStream+Private.h4
-rw-r--r--src/OFStream.h4
-rw-r--r--src/OFStream.m8
-rw-r--r--src/OFStreamSocket.h4
-rw-r--r--src/OFStreamSocket.m4
-rw-r--r--src/OFString+CryptoHashing.h4
-rw-r--r--src/OFString+CryptoHashing.m7
-rw-r--r--src/OFString+JSONValue.h4
-rw-r--r--src/OFString+JSONValue.m4
-rw-r--r--src/OFString+PathAdditions.h4
-rw-r--r--src/OFString+PathAdditions.m4
-rw-r--r--src/OFString+PathAdditions_AmigaOS.m4
-rw-r--r--src/OFString+PathAdditions_DOS.m4
-rw-r--r--src/OFString+PathAdditions_UNIX.m4
-rw-r--r--src/OFString+PathAdditions_libfat.m4
-rw-r--r--src/OFString+PropertyListValue.h4
-rw-r--r--src/OFString+PropertyListValue.m4
-rw-r--r--src/OFString+Serialization.h4
-rw-r--r--src/OFString+Serialization.m4
-rw-r--r--src/OFString+URLEncoding.h4
-rw-r--r--src/OFString+URLEncoding.m4
-rw-r--r--src/OFString+XMLEscaping.h4
-rw-r--r--src/OFString+XMLEscaping.m4
-rw-r--r--src/OFString+XMLUnescaping.h4
-rw-r--r--src/OFString+XMLUnescaping.m4
-rw-r--r--src/OFString.h4
-rw-r--r--src/OFString.m4
-rw-r--r--src/OFSubarray.h4
-rw-r--r--src/OFSubarray.m4
-rw-r--r--src/OFSystemInfo.h4
-rw-r--r--src/OFSystemInfo.m4
-rw-r--r--src/OFTCPSocket+Private.h4
-rw-r--r--src/OFTCPSocket.h4
-rw-r--r--src/OFTCPSocket.m32
-rw-r--r--src/OFTLSSocket.h4
-rw-r--r--src/OFTarArchive.h4
-rw-r--r--src/OFTarArchive.m4
-rw-r--r--src/OFTarArchiveEntry+Private.h4
-rw-r--r--src/OFTarArchiveEntry.h4
-rw-r--r--src/OFTarArchiveEntry.m4
-rw-r--r--src/OFThread+Private.h4
-rw-r--r--src/OFThread.h4
-rw-r--r--src/OFThread.m4
-rw-r--r--src/OFTimer+Private.h4
-rw-r--r--src/OFTimer.h4
-rw-r--r--src/OFTimer.m4
-rw-r--r--src/OFTriple.h4
-rw-r--r--src/OFTriple.m4
-rw-r--r--src/OFUDPSocket+Private.h4
-rw-r--r--src/OFUDPSocket.h4
-rw-r--r--src/OFUDPSocket.m4
-rw-r--r--src/OFURL.h4
-rw-r--r--src/OFURL.m4
-rw-r--r--src/OFURLHandler.h4
-rw-r--r--src/OFURLHandler.m4
-rw-r--r--src/OFUTF8String+Private.h4
-rw-r--r--src/OFUTF8String.h4
-rw-r--r--src/OFUTF8String.m4
-rw-r--r--src/OFValue.h4
-rw-r--r--src/OFValue.m4
-rw-r--r--src/OFWin32ConsoleStdIOStream.h4
-rw-r--r--src/OFWin32ConsoleStdIOStream.m4
-rw-r--r--src/OFWindowsRegistryKey.h4
-rw-r--r--src/OFWindowsRegistryKey.m4
-rw-r--r--src/OFXMLAttribute.h4
-rw-r--r--src/OFXMLAttribute.m4
-rw-r--r--src/OFXMLCDATA.h4
-rw-r--r--src/OFXMLCDATA.m4
-rw-r--r--src/OFXMLCharacters.h4
-rw-r--r--src/OFXMLCharacters.m4
-rw-r--r--src/OFXMLComment.h4
-rw-r--r--src/OFXMLComment.m4
-rw-r--r--src/OFXMLElement+Serialization.h4
-rw-r--r--src/OFXMLElement+Serialization.m4
-rw-r--r--src/OFXMLElement.h4
-rw-r--r--src/OFXMLElement.m4
-rw-r--r--src/OFXMLElementBuilder.h4
-rw-r--r--src/OFXMLElementBuilder.m4
-rw-r--r--src/OFXMLNode+Private.h4
-rw-r--r--src/OFXMLNode.h4
-rw-r--r--src/OFXMLNode.m4
-rw-r--r--src/OFXMLParser.h4
-rw-r--r--src/OFXMLParser.m4
-rw-r--r--src/OFXMLProcessingInstructions.h4
-rw-r--r--src/OFXMLProcessingInstructions.m4
-rw-r--r--src/OFZIPArchive.h4
-rw-r--r--src/OFZIPArchive.m6
-rw-r--r--src/OFZIPArchiveEntry+Private.h4
-rw-r--r--src/OFZIPArchiveEntry.h4
-rw-r--r--src/OFZIPArchiveEntry.m4
-rw-r--r--src/ObjFW.h5
-rw-r--r--src/atomic.h4
-rw-r--r--src/atomic_builtins.h4
-rw-r--r--src/atomic_no_threads.h4
-rw-r--r--src/atomic_osatomic.h4
-rw-r--r--src/atomic_powerpc.h4
-rw-r--r--src/atomic_sync_builtins.h4
-rw-r--r--src/atomic_x86.h4
-rw-r--r--src/autorelease.h52
-rw-r--r--src/base64.h4
-rw-r--r--src/base64.m4
-rw-r--r--src/block.h4
-rw-r--r--src/bridge/NSArray+OFObject.h4
-rw-r--r--src/bridge/NSArray+OFObject.m4
-rw-r--r--src/bridge/NSBridging.h4
-rw-r--r--src/bridge/NSDictionary+OFObject.h4
-rw-r--r--src/bridge/NSDictionary+OFObject.m4
-rw-r--r--src/bridge/NSEnumerator+OFObject.h4
-rw-r--r--src/bridge/NSEnumerator+OFObject.m4
-rw-r--r--src/bridge/NSNumber+OFObject.h4
-rw-r--r--src/bridge/NSNumber+OFObject.m4
-rw-r--r--src/bridge/NSOFArray.h4
-rw-r--r--src/bridge/NSOFArray.m4
-rw-r--r--src/bridge/NSOFDictionary.h4
-rw-r--r--src/bridge/NSOFDictionary.m4
-rw-r--r--src/bridge/NSOFEnumerator.h4
-rw-r--r--src/bridge/NSOFEnumerator.m4
-rw-r--r--src/bridge/NSOFSet.h4
-rw-r--r--src/bridge/NSOFSet.m4
-rw-r--r--src/bridge/NSSet+OFObject.h4
-rw-r--r--src/bridge/NSSet+OFObject.m4
-rw-r--r--src/bridge/NSString+OFObject.h4
-rw-r--r--src/bridge/NSString+OFObject.m4
-rw-r--r--src/bridge/OFArray+NSObject.h4
-rw-r--r--src/bridge/OFArray+NSObject.m4
-rw-r--r--src/bridge/OFBridging.h4
-rw-r--r--src/bridge/OFDictionary+NSObject.h4
-rw-r--r--src/bridge/OFDictionary+NSObject.m4
-rw-r--r--src/bridge/OFEnumerator+NSObject.h4
-rw-r--r--src/bridge/OFEnumerator+NSObject.m4
-rw-r--r--src/bridge/OFException+Swift.h4
-rw-r--r--src/bridge/OFException+Swift.m4
-rw-r--r--src/bridge/OFNSArray.h4
-rw-r--r--src/bridge/OFNSArray.m4
-rw-r--r--src/bridge/OFNSDictionary.h4
-rw-r--r--src/bridge/OFNSDictionary.m4
-rw-r--r--src/bridge/OFNSEnumerator.h4
-rw-r--r--src/bridge/OFNSEnumerator.m4
-rw-r--r--src/bridge/OFNSSet.h4
-rw-r--r--src/bridge/OFNSSet.m4
-rw-r--r--src/bridge/OFNumber+NSObject.h4
-rw-r--r--src/bridge/OFNumber+NSObject.m4
-rw-r--r--src/bridge/OFSet+NSObject.h4
-rw-r--r--src/bridge/OFSet+NSObject.m4
-rw-r--r--src/bridge/OFString+NSObject.h4
-rw-r--r--src/bridge/OFString+NSObject.m4
-rw-r--r--src/bridge/ObjFWBridge.h4
-rw-r--r--src/condition.h4
-rw-r--r--src/condition.m4
-rw-r--r--src/condition_amiga.m4
-rw-r--r--src/condition_pthread.m4
-rw-r--r--src/condition_winapi.m4
-rw-r--r--src/crc16.h4
-rw-r--r--src/crc16.m4
-rw-r--r--src/crc32.h4
-rw-r--r--src/crc32.m4
-rw-r--r--src/encodings/codepage_437.m4
-rw-r--r--src/encodings/codepage_850.m4
-rw-r--r--src/encodings/codepage_858.m4
-rw-r--r--src/encodings/common.h4
-rw-r--r--src/encodings/iso_8859-15.m4
-rw-r--r--src/encodings/iso_8859-2.m4
-rw-r--r--src/encodings/iso_8859-3.m4
-rw-r--r--src/encodings/koi8-r.m4
-rw-r--r--src/encodings/koi8-u.m4
-rw-r--r--src/encodings/mac_roman.m4
-rw-r--r--src/encodings/windows-1251.m4
-rw-r--r--src/encodings/windows-1252.m4
-rw-r--r--src/exceptions/OFAcceptFailedException.h4
-rw-r--r--src/exceptions/OFAcceptFailedException.m4
-rw-r--r--src/exceptions/OFAllocFailedException.h4
-rw-r--r--src/exceptions/OFAllocFailedException.m4
-rw-r--r--src/exceptions/OFAlreadyConnectedException.h4
-rw-r--r--src/exceptions/OFAlreadyConnectedException.m4
-rw-r--r--src/exceptions/OFBindFailedException.h4
-rw-r--r--src/exceptions/OFBindFailedException.m4
-rw-r--r--src/exceptions/OFChangeCurrentDirectoryPathFailedException.h4
-rw-r--r--src/exceptions/OFChangeCurrentDirectoryPathFailedException.m4
-rw-r--r--src/exceptions/OFChecksumMismatchException.h4
-rw-r--r--src/exceptions/OFChecksumMismatchException.m4
-rw-r--r--src/exceptions/OFConditionBroadcastFailedException.h4
-rw-r--r--src/exceptions/OFConditionBroadcastFailedException.m4
-rw-r--r--src/exceptions/OFConditionSignalFailedException.h4
-rw-r--r--src/exceptions/OFConditionSignalFailedException.m4
-rw-r--r--src/exceptions/OFConditionStillWaitingException.h4
-rw-r--r--src/exceptions/OFConditionStillWaitingException.m4
-rw-r--r--src/exceptions/OFConditionWaitFailedException.h4
-rw-r--r--src/exceptions/OFConditionWaitFailedException.m4
-rw-r--r--src/exceptions/OFConnectionFailedException.h4
-rw-r--r--src/exceptions/OFConnectionFailedException.m4
-rw-r--r--src/exceptions/OFCopyItemFailedException.h4
-rw-r--r--src/exceptions/OFCopyItemFailedException.m4
-rw-r--r--src/exceptions/OFCreateDirectoryFailedException.h4
-rw-r--r--src/exceptions/OFCreateDirectoryFailedException.m4
-rw-r--r--src/exceptions/OFCreateSymbolicLinkFailedException.h4
-rw-r--r--src/exceptions/OFCreateSymbolicLinkFailedException.m4
-rw-r--r--src/exceptions/OFCreateWindowsRegistryKeyFailedException.h4
-rw-r--r--src/exceptions/OFCreateWindowsRegistryKeyFailedException.m4
-rw-r--r--src/exceptions/OFDNSQueryFailedException.h4
-rw-r--r--src/exceptions/OFDNSQueryFailedException.m4
-rw-r--r--src/exceptions/OFDeleteWindowsRegistryKeyFailedException.h4
-rw-r--r--src/exceptions/OFDeleteWindowsRegistryKeyFailedException.m4
-rw-r--r--src/exceptions/OFDeleteWindowsRegistryValueFailedException.h4
-rw-r--r--src/exceptions/OFDeleteWindowsRegistryValueFailedException.m4
-rw-r--r--src/exceptions/OFEnumerationMutationException.h4
-rw-r--r--src/exceptions/OFEnumerationMutationException.m4
-rw-r--r--src/exceptions/OFException.h4
-rw-r--r--src/exceptions/OFException.m4
-rw-r--r--src/exceptions/OFGetCurrentDirectoryPathFailedException.h4
-rw-r--r--src/exceptions/OFGetCurrentDirectoryPathFailedException.m4
-rw-r--r--src/exceptions/OFGetOptionFailedException.h4
-rw-r--r--src/exceptions/OFGetOptionFailedException.m4
-rw-r--r--src/exceptions/OFGetWindowsRegistryValueFailedException.h4
-rw-r--r--src/exceptions/OFGetWindowsRegistryValueFailedException.m4
-rw-r--r--src/exceptions/OFHTTPRequestFailedException.h4
-rw-r--r--src/exceptions/OFHTTPRequestFailedException.m4
-rw-r--r--src/exceptions/OFHashAlreadyCalculatedException.h4
-rw-r--r--src/exceptions/OFHashAlreadyCalculatedException.m4
-rw-r--r--src/exceptions/OFInitializationFailedException.h4
-rw-r--r--src/exceptions/OFInitializationFailedException.m4
-rw-r--r--src/exceptions/OFInvalidArgumentException.h4
-rw-r--r--src/exceptions/OFInvalidArgumentException.m4
-rw-r--r--src/exceptions/OFInvalidEncodingException.h4
-rw-r--r--src/exceptions/OFInvalidEncodingException.m4
-rw-r--r--src/exceptions/OFInvalidFormatException.h4
-rw-r--r--src/exceptions/OFInvalidFormatException.m4
-rw-r--r--src/exceptions/OFInvalidJSONException.h4
-rw-r--r--src/exceptions/OFInvalidJSONException.m4
-rw-r--r--src/exceptions/OFInvalidServerReplyException.h4
-rw-r--r--src/exceptions/OFInvalidServerReplyException.m4
-rw-r--r--src/exceptions/OFLinkFailedException.h4
-rw-r--r--src/exceptions/OFLinkFailedException.m4
-rw-r--r--src/exceptions/OFListenFailedException.h4
-rw-r--r--src/exceptions/OFListenFailedException.m4
-rw-r--r--src/exceptions/OFLoadPluginFailedException.h4
-rw-r--r--src/exceptions/OFLoadPluginFailedException.m4
-rw-r--r--src/exceptions/OFLockFailedException.h4
-rw-r--r--src/exceptions/OFLockFailedException.m4
-rw-r--r--src/exceptions/OFMalformedXMLException.h4
-rw-r--r--src/exceptions/OFMalformedXMLException.m4
-rw-r--r--src/exceptions/OFMemoryNotPartOfObjectException.h4
-rw-r--r--src/exceptions/OFMemoryNotPartOfObjectException.m4
-rw-r--r--src/exceptions/OFMoveItemFailedException.h4
-rw-r--r--src/exceptions/OFMoveItemFailedException.m4
-rw-r--r--src/exceptions/OFNotImplementedException.h10
-rw-r--r--src/exceptions/OFNotImplementedException.m17
-rw-r--r--src/exceptions/OFNotOpenException.h4
-rw-r--r--src/exceptions/OFNotOpenException.m4
-rw-r--r--src/exceptions/OFObserveFailedException.h4
-rw-r--r--src/exceptions/OFObserveFailedException.m4
-rw-r--r--src/exceptions/OFOpenItemFailedException.h4
-rw-r--r--src/exceptions/OFOpenItemFailedException.m4
-rw-r--r--src/exceptions/OFOpenWindowsRegistryKeyFailedException.h4
-rw-r--r--src/exceptions/OFOpenWindowsRegistryKeyFailedException.m4
-rw-r--r--src/exceptions/OFOutOfMemoryException.h4
-rw-r--r--src/exceptions/OFOutOfMemoryException.m4
-rw-r--r--src/exceptions/OFOutOfRangeException.h4
-rw-r--r--src/exceptions/OFOutOfRangeException.m4
-rw-r--r--src/exceptions/OFReadFailedException.h4
-rw-r--r--src/exceptions/OFReadFailedException.m4
-rw-r--r--src/exceptions/OFReadOrWriteFailedException.h4
-rw-r--r--src/exceptions/OFReadOrWriteFailedException.m4
-rw-r--r--src/exceptions/OFRemoveItemFailedException.h4
-rw-r--r--src/exceptions/OFRemoveItemFailedException.m4
-rw-r--r--src/exceptions/OFResolveHostFailedException.h4
-rw-r--r--src/exceptions/OFResolveHostFailedException.m4
-rw-r--r--src/exceptions/OFRetrieveItemAttributesFailedException.h4
-rw-r--r--src/exceptions/OFRetrieveItemAttributesFailedException.m4
-rw-r--r--src/exceptions/OFSandboxActivationFailedException.h4
-rw-r--r--src/exceptions/OFSandboxActivationFailedException.m4
-rw-r--r--src/exceptions/OFSeekFailedException.h4
-rw-r--r--src/exceptions/OFSeekFailedException.m4
-rw-r--r--src/exceptions/OFSetItemAttributesFailedException.h4
-rw-r--r--src/exceptions/OFSetItemAttributesFailedException.m4
-rw-r--r--src/exceptions/OFSetOptionFailedException.h4
-rw-r--r--src/exceptions/OFSetOptionFailedException.m4
-rw-r--r--src/exceptions/OFSetWindowsRegistryValueFailedException.h4
-rw-r--r--src/exceptions/OFSetWindowsRegistryValueFailedException.m4
-rw-r--r--src/exceptions/OFStillLockedException.h4
-rw-r--r--src/exceptions/OFStillLockedException.m4
-rw-r--r--src/exceptions/OFThreadJoinFailedException.h4
-rw-r--r--src/exceptions/OFThreadJoinFailedException.m4
-rw-r--r--src/exceptions/OFThreadStartFailedException.h4
-rw-r--r--src/exceptions/OFThreadStartFailedException.m4
-rw-r--r--src/exceptions/OFThreadStillRunningException.h4
-rw-r--r--src/exceptions/OFThreadStillRunningException.m4
-rw-r--r--src/exceptions/OFTruncatedDataException.h4
-rw-r--r--src/exceptions/OFTruncatedDataException.m4
-rw-r--r--src/exceptions/OFUnboundNamespaceException.h4
-rw-r--r--src/exceptions/OFUnboundNamespaceException.m4
-rw-r--r--src/exceptions/OFUnboundPrefixException.h4
-rw-r--r--src/exceptions/OFUnboundPrefixException.m4
-rw-r--r--src/exceptions/OFUndefinedKeyException.h4
-rw-r--r--src/exceptions/OFUndefinedKeyException.m4
-rw-r--r--src/exceptions/OFUnknownXMLEntityException.h4
-rw-r--r--src/exceptions/OFUnknownXMLEntityException.m4
-rw-r--r--src/exceptions/OFUnlockFailedException.h4
-rw-r--r--src/exceptions/OFUnlockFailedException.m4
-rw-r--r--src/exceptions/OFUnsupportedProtocolException.h4
-rw-r--r--src/exceptions/OFUnsupportedProtocolException.m4
-rw-r--r--src/exceptions/OFUnsupportedVersionException.h4
-rw-r--r--src/exceptions/OFUnsupportedVersionException.m4
-rw-r--r--src/exceptions/OFWriteFailedException.h4
-rw-r--r--src/exceptions/OFWriteFailedException.m4
-rw-r--r--src/forwarding/apple-forwarding-arm.S4
-rw-r--r--src/forwarding/apple-forwarding-arm64.S4
-rw-r--r--src/forwarding/apple-forwarding-i386.S4
-rw-r--r--src/forwarding/apple-forwarding-powerpc.S4
-rw-r--r--src/forwarding/apple-forwarding-x86_64.S4
-rw-r--r--src/forwarding/forwarding-arm-elf.S4
-rw-r--r--src/forwarding/forwarding-arm64-elf.S4
-rw-r--r--src/forwarding/forwarding-mips-elf.S4
-rw-r--r--src/forwarding/forwarding-powerpc-elf.S4
-rw-r--r--src/forwarding/forwarding-sparc64-elf.S4
-rw-r--r--src/forwarding/forwarding-x86-elf.S4
-rw-r--r--src/forwarding/forwarding-x86-win32.S4
-rw-r--r--src/forwarding/forwarding-x86_64-elf.S4
-rw-r--r--src/forwarding/forwarding-x86_64-macho.S4
-rw-r--r--src/forwarding/forwarding-x86_64-win64.S4
-rw-r--r--src/forwarding/forwarding.S4
-rw-r--r--src/huffman_tree.h4
-rw-r--r--src/huffman_tree.m4
-rw-r--r--src/instance.h31
-rw-r--r--src/libbases.m4
-rw-r--r--src/macros.h4
-rw-r--r--src/mutex.h4
-rw-r--r--src/mutex.m4
-rw-r--r--src/mutex_amiga.m4
-rw-r--r--src/mutex_pthread.m4
-rw-r--r--src/mutex_winapi.m4
-rw-r--r--src/of_asprintf.h4
-rw-r--r--src/of_asprintf.m4
-rw-r--r--src/of_strptime.h4
-rw-r--r--src/of_strptime.m4
-rw-r--r--src/once.h4
-rw-r--r--src/once.m4
-rw-r--r--src/pbkdf2.h7
-rw-r--r--src/pbkdf2.m17
-rw-r--r--src/platform.h4
-rw-r--r--src/runtime/Makefile2
-rw-r--r--src/runtime/ObjFWRT.h11
-rw-r--r--src/runtime/amiga-end.m4
-rw-r--r--src/runtime/amiga-glue.m43
-rw-r--r--src/runtime/amiga-library.m16
-rw-r--r--src/runtime/amigaos3.sfd6
-rw-r--r--src/runtime/arc.m7
-rw-r--r--src/runtime/autorelease.m (renamed from src/autorelease.m)12
-rw-r--r--src/runtime/category.m4
-rw-r--r--src/runtime/class.m4
-rw-r--r--src/runtime/dtable.m4
-rw-r--r--src/runtime/exception.m4
-rw-r--r--src/runtime/hashtable.m4
-rw-r--r--src/runtime/init.m4
-rw-r--r--src/runtime/instance.m (renamed from src/instance.m)7
-rw-r--r--src/runtime/ivar.m4
-rw-r--r--src/runtime/linklib/linklib.m34
-rw-r--r--src/runtime/lookup-asm/lookup-asm-arm-elf.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-arm64-elf.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-mips-elf.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-mips64-n64-elf.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-powerpc-elf.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-powerpc-macho.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-sparc-elf.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-sparc64-elf.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-x86-elf.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-x86-win32.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-x86_64-elf.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-x86_64-macho.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm-x86_64-win64.S4
-rw-r--r--src/runtime/lookup-asm/lookup-asm.S4
-rw-r--r--src/runtime/lookup.m4
-rw-r--r--src/runtime/method.m4
-rw-r--r--src/runtime/misc.m4
-rw-r--r--src/runtime/morphos-clib.h6
-rw-r--r--src/runtime/morphos.fd6
-rw-r--r--src/runtime/private.h13
-rw-r--r--src/runtime/property.m6
-rw-r--r--src/runtime/protocol.m4
-rw-r--r--src/runtime/selector.m4
-rw-r--r--src/runtime/sparsearray.m4
-rw-r--r--src/runtime/static-instances.m4
-rw-r--r--src/runtime/synchronized.m4
-rw-r--r--src/runtime/threading.m4
-rw-r--r--src/scrypt.h6
-rw-r--r--src/scrypt.m61
-rw-r--r--src/socket.h4
-rw-r--r--src/socket.m4
-rw-r--r--src/socket_helpers.h4
-rw-r--r--src/thread.h4
-rw-r--r--src/thread.m4
-rw-r--r--src/thread_amiga.m4
-rw-r--r--src/thread_pthread.m4
-rw-r--r--src/thread_winapi.m4
-rw-r--r--src/tlskey.h4
-rw-r--r--src/tlskey.m4
-rw-r--r--src/unicode.h4
-rw-r--r--src/unicode.m4
-rw-r--r--src/unistd_wrapper.h5
-rw-r--r--tests/ForwardingTests.m4
-rw-r--r--tests/ImportTest.m4
-rw-r--r--tests/OFArrayTests.m4
-rw-r--r--tests/OFBlockTests.m4
-rw-r--r--tests/OFCharacterSetTests.m4
-rw-r--r--tests/OFDNSResolverTests.m4
-rw-r--r--tests/OFDataTests.m4
-rw-r--r--tests/OFDateTests.m4
-rw-r--r--tests/OFDictionaryTests.m4
-rw-r--r--tests/OFHMACTests.m22
-rw-r--r--tests/OFHTTPClientTests.m4
-rw-r--r--tests/OFHTTPCookieManagerTests.m20
-rw-r--r--tests/OFHTTPCookieTests.m10
-rw-r--r--tests/OFINIFileTests.m4
-rw-r--r--tests/OFInvocationTests.m4
-rw-r--r--tests/OFJSONTests.m4
-rw-r--r--tests/OFKernelEventObserverTests.m4
-rw-r--r--tests/OFListTests.m4
-rw-r--r--tests/OFLocaleTests.m4
-rw-r--r--tests/OFMD5HashTests.m7
-rw-r--r--tests/OFMethodSignatureTests.m4
-rw-r--r--tests/OFNumberTests.m4
-rw-r--r--tests/OFObjectTests.m4
-rw-r--r--tests/OFPluginTests.m4
-rw-r--r--tests/OFPropertyListTests.m4
-rw-r--r--tests/OFRIPEMD160HashTests.m8
-rw-r--r--tests/OFSHA1HashTests.m7
-rw-r--r--tests/OFSHA224HashTests.m7
-rw-r--r--tests/OFSHA256HashTests.m7
-rw-r--r--tests/OFSHA384HashTests.m7
-rw-r--r--tests/OFSHA512HashTests.m7
-rw-r--r--tests/OFSerializationTests.m6
-rw-r--r--tests/OFSetTests.m4
-rw-r--r--tests/OFStreamTests.m4
-rw-r--r--tests/OFStringTests.m4
-rw-r--r--tests/OFSystemInfoTests.m4
-rw-r--r--tests/OFTCPSocketTests.m4
-rw-r--r--tests/OFThreadTests.m4
-rw-r--r--tests/OFUDPSocketTests.m4
-rw-r--r--tests/OFURLTests.m4
-rw-r--r--tests/OFValueTests.m4
-rw-r--r--tests/OFWindowsRegistryKeyTests.m4
-rw-r--r--tests/OFXMLElementBuilderTests.m4
-rw-r--r--tests/OFXMLNodeTests.m4
-rw-r--r--tests/OFXMLParserTests.m4
-rw-r--r--tests/PBKDF2Tests.m19
-rw-r--r--tests/RuntimeTests.m4
-rw-r--r--tests/ScryptTests.m14
-rw-r--r--tests/SocketTests.m4
-rw-r--r--tests/TestsAppDelegate.h4
-rw-r--r--tests/TestsAppDelegate.m4
-rw-r--r--tests/objc_sync/test.m4
-rw-r--r--tests/plugin/TestPlugin.h4
-rw-r--r--tests/plugin/TestPlugin.m4
-rw-r--r--tests/serialization.xml4
-rw-r--r--utils/objfw-compile5
-rw-r--r--utils/objfw-config.in5
-rw-r--r--utils/ofarc/Archive.h4
-rw-r--r--utils/ofarc/GZIPArchive.h4
-rw-r--r--utils/ofarc/GZIPArchive.m4
-rw-r--r--utils/ofarc/LHAArchive.h4
-rw-r--r--utils/ofarc/LHAArchive.m4
-rw-r--r--utils/ofarc/OFArc.h4
-rw-r--r--utils/ofarc/OFArc.m4
-rw-r--r--utils/ofarc/TarArchive.h4
-rw-r--r--utils/ofarc/TarArchive.m4
-rw-r--r--utils/ofarc/ZIPArchive.h4
-rw-r--r--utils/ofarc/ZIPArchive.m4
-rw-r--r--utils/ofdns/OFDNS.m4
-rw-r--r--utils/ofhash/OFHash.m40
-rw-r--r--utils/ofhttp/OFHTTP.m4
-rw-r--r--utils/ofhttp/ProgressBar.h4
-rw-r--r--utils/ofhttp/ProgressBar.m4
710 files changed, 2103 insertions, 2024 deletions
diff --git a/PLATFORMS.md b/PLATFORMS.md
index d320ec63..dbd3bf73 100644
--- a/PLATFORMS.md
+++ b/PLATFORMS.md
@@ -196,7 +196,7 @@ Basically, it should run on any POSIX system to which GCC >= 4.6 or a recent
Clang version has been ported. If not, please send an e-mail with a bug report.
If you successfully ran ObjFW on a platform not listed here, please send an
-e-mail to js@heap.zone so it can be added here!
+e-mail to js@nil.im so it can be added here!
If you have a platform on which ObjFW does not work, please contact me as well!
diff --git a/README.md b/README.md
index 9251f9bb..c72b773d 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ platform supported by ObjFW without having to worry about differences between
operating systems or various frameworks that you would otherwise need if you
want to be portable.
-See https://heap.zone/objfw for more information.
+See https://objfw.nil.im/ for more information.
Table of Contents
@@ -137,7 +137,7 @@ Windows
to build - do *not* use the MSYS2 Shell shortcut, but use the MinGW-w64 Win32
or Win64 Shell shortcut instead!) and check out ObjFW:
- $ git clone https://heap.zone/git/objfw.git
+ $ git clone https://git.nil.im/objfw.git
You can also download a release tarball if you want. Now go to the newly
checked out repository and build and install it:
@@ -206,7 +206,7 @@ Bugs and feature requests
=========================
If you find any bugs or have feature requests, feel free to send a mail to
- js@heap.zone!
+ js@nil.im!
Commercial use
@@ -214,5 +214,5 @@ Commercial use
If for whatever reason neither the terms of the QPL nor those of the GPL work
for you, a proprietary license for ObjFW including support is available upon
- request. Just write a mail to js@heap.zone and we can find a reasonable
- solution for both parties.
+ request. Just write a mail to js@nil.im and we can find a reasonable solution
+ for both parties.
diff --git a/configure.ac b/configure.ac
index 53606c2e..a2172f17 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(ObjFW, 1.0, js@heap.zone)
+AC_INIT(ObjFW, 1.0, js@nil.im)
AC_CONFIG_SRCDIR(src)
AC_CONFIG_AUX_DIR(build-aux)
AC_CONFIG_MACRO_DIR(build-aux/m4)
@@ -625,10 +625,6 @@ esac
AC_CHECK_FUNCS(_Unwind_Backtrace)
-AC_CHECK_FUNC(objc_constructInstance, [], [
- AC_SUBST(INSTANCE_M, "instance.m")
-])
-
AC_CHECK_FUNC(objc_autoreleasePoolPush, [], [
AC_SUBST(AUTORELEASE_M, "autorelease.m")
])
diff --git a/generators/TableGenerator.h b/generators/TableGenerator.h
index ec1480ae..2b292a40 100644
--- a/generators/TableGenerator.h
+++ b/generators/TableGenerator.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/generators/TableGenerator.m b/generators/TableGenerator.m
index 4cf29e96..e0655a5f 100644
--- a/generators/TableGenerator.m
+++ b/generators/TableGenerator.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/generators/copyright.h b/generators/copyright.h
index c62c54ee..10d8ee53 100644
--- a/generators/copyright.h
+++ b/generators/copyright.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -21,8 +21,8 @@
@"/*\n" \
@" * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, " \
@"2017,\n" \
- @" * 2018, 2019\n" \
- @" * Jonathan Schleifer <js@heap.zone>\n" \
+ @" * 2018, 2019, 2020\n" \
+ @" * Jonathan Schleifer <js@nil.im>\n" \
@" *\n" \
@" * All rights reserved.\n" \
@" *\n" \
diff --git a/src/Makefile b/src/Makefile
index 8353e434..0d534f0c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -164,9 +164,7 @@ INCLUDES := ${SRCS:.m=.h} \
OFSerialization.h \
OFTLSSocket.h \
ObjFW.h \
- autorelease.h \
block.h \
- instance.h \
macros.h \
objfw-defs.h \
platform.h \
@@ -194,8 +192,6 @@ SRCS += OFAdjacentArray.m \
OFRectangleValue.m \
OFSubarray.m \
OFUTF8String.m \
- ${AUTORELEASE_M} \
- ${INSTANCE_M} \
${LIBBASES_M}
SRCS_FILES += OFFileURLHandler.m \
OFINIFileSettings.m
diff --git a/src/OFAdjacentArray.h b/src/OFAdjacentArray.h
index 9f896ca0..d5beafde 100644
--- a/src/OFAdjacentArray.h
+++ b/src/OFAdjacentArray.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFAdjacentArray.m b/src/OFAdjacentArray.m
index 8e58679d..eb3b8fe7 100644
--- a/src/OFAdjacentArray.m
+++ b/src/OFAdjacentArray.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFAdjacentSubarray.h b/src/OFAdjacentSubarray.h
index 82ebdac9..e0747b2e 100644
--- a/src/OFAdjacentSubarray.h
+++ b/src/OFAdjacentSubarray.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFAdjacentSubarray.m b/src/OFAdjacentSubarray.m
index 5f6824da..f84d3557 100644
--- a/src/OFAdjacentSubarray.m
+++ b/src/OFAdjacentSubarray.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFApplication.h b/src/OFApplication.h
index 0eb031d9..f40708c0 100644
--- a/src/OFApplication.h
+++ b/src/OFApplication.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFApplication.m b/src/OFApplication.m
index 9d19fb9d..5819a30a 100644
--- a/src/OFApplication.m
+++ b/src/OFApplication.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFArray+Private.h b/src/OFArray+Private.h
index e2e4566a..52dd82a7 100644
--- a/src/OFArray+Private.h
+++ b/src/OFArray+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFArray.h b/src/OFArray.h
index 5db1f21b..831f8e9a 100644
--- a/src/OFArray.h
+++ b/src/OFArray.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFArray.m b/src/OFArray.m
index d3c542ca..0963e3c5 100644
--- a/src/OFArray.m
+++ b/src/OFArray.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFBitSetCharacterSet.h b/src/OFBitSetCharacterSet.h
index bfc2ae4b..1f4c9f5c 100644
--- a/src/OFBitSetCharacterSet.h
+++ b/src/OFBitSetCharacterSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFBitSetCharacterSet.m b/src/OFBitSetCharacterSet.m
index 8ee6cd86..0a929754 100644
--- a/src/OFBitSetCharacterSet.m
+++ b/src/OFBitSetCharacterSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFBlock.h b/src/OFBlock.h
index f0ba9cac..6fe06d22 100644
--- a/src/OFBlock.h
+++ b/src/OFBlock.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFBlock.m b/src/OFBlock.m
index 4b0ba12d..8b666483 100644
--- a/src/OFBlock.m
+++ b/src/OFBlock.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFBytesValue.h b/src/OFBytesValue.h
index 9cd27afa..28821219 100644
--- a/src/OFBytesValue.h
+++ b/src/OFBytesValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFBytesValue.m b/src/OFBytesValue.m
index 9f665e6d..6cfd521e 100644
--- a/src/OFBytesValue.m
+++ b/src/OFBytesValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCharacterSet.h b/src/OFCharacterSet.h
index e1dcded5..9b86e841 100644
--- a/src/OFCharacterSet.h
+++ b/src/OFCharacterSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCharacterSet.m b/src/OFCharacterSet.m
index 8671bec2..7da40ee2 100644
--- a/src/OFCharacterSet.m
+++ b/src/OFCharacterSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCollection.h b/src/OFCollection.h
index 55bd4b47..c8df9478 100644
--- a/src/OFCollection.h
+++ b/src/OFCollection.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFColor.h b/src/OFColor.h
index 1ec439d6..049685b0 100644
--- a/src/OFColor.h
+++ b/src/OFColor.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFColor.m b/src/OFColor.m
index 1300e45a..876b16ac 100644
--- a/src/OFColor.m
+++ b/src/OFColor.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCondition.h b/src/OFCondition.h
index 4c6fe447..7bec5ebe 100644
--- a/src/OFCondition.h
+++ b/src/OFCondition.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCondition.m b/src/OFCondition.m
index d9b003f5..36153dd6 100644
--- a/src/OFCondition.m
+++ b/src/OFCondition.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFConstantString.h b/src/OFConstantString.h
index c9c4ec29..20ef419a 100644
--- a/src/OFConstantString.h
+++ b/src/OFConstantString.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFConstantString.m b/src/OFConstantString.m
index f6ad5089..cf4d4fe0 100644
--- a/src/OFConstantString.m
+++ b/src/OFConstantString.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCountedMapTableSet.h b/src/OFCountedMapTableSet.h
index 8fa7f82f..646f218b 100644
--- a/src/OFCountedMapTableSet.h
+++ b/src/OFCountedMapTableSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCountedMapTableSet.m b/src/OFCountedMapTableSet.m
index fd5b6bc5..3843a573 100644
--- a/src/OFCountedMapTableSet.m
+++ b/src/OFCountedMapTableSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCountedSet.h b/src/OFCountedSet.h
index 7bbf4ef2..9f8d621e 100644
--- a/src/OFCountedSet.h
+++ b/src/OFCountedSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCountedSet.m b/src/OFCountedSet.m
index 92bd078b..11b28d16 100644
--- a/src/OFCountedSet.m
+++ b/src/OFCountedSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFCryptoHash.h b/src/OFCryptoHash.h
index 0d899365..a56250b6 100644
--- a/src/OFCryptoHash.h
+++ b/src/OFCryptoHash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -45,6 +45,11 @@ OF_ASSUME_NONNULL_BEGIN
@property (readonly, nonatomic) size_t blockSize;
/*!
+ * @brief Whether data may be stored in swappable memory.
+ */
+@property (readonly, nonatomic) bool allowsSwappableMemory;
+
+/*!
* @brief A boolean whether the hash has already been calculated.
*/
@property (readonly, nonatomic, getter=isCalculated) bool calculated;
@@ -61,9 +66,10 @@ OF_ASSUME_NONNULL_BEGIN
/*!
* @brief Creates a new cryptographic hash.
*
- * @return A new autoreleased OFCryptoHash
+ * @return A new autoreleased cryptographic hash
*/
-+ (instancetype)cryptoHash;
++ (instancetype)cryptoHashWithAllowsSwappableMemory:
+ (bool)allowsSwappableMemory;
/*!
* @brief Returns the digest size of the cryptographic hash, in bytes.
@@ -80,6 +86,15 @@ OF_ASSUME_NONNULL_BEGIN
+ (size_t)blockSize;
/*!
+ * @brief Initializes an already allocated cryptographic hash.
+ *
+ * @return An initialized cryptographic hash
+ */
+- (instancetype)initWithAllowsSwappableMemory: (bool)allowsSwappableMemory;
+
+- (instancetype)init OF_UNAVAILABLE;
+
+/*!
* @brief Adds a buffer to the cryptographic hash to be calculated.
*
* @param buffer The buffer which should be included into the calculation
diff --git a/src/OFDNSQuery.h b/src/OFDNSQuery.h
index 35398cce..92b660dd 100644
--- a/src/OFDNSQuery.h
+++ b/src/OFDNSQuery.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDNSQuery.m b/src/OFDNSQuery.m
index 60700ae7..44091ed3 100644
--- a/src/OFDNSQuery.m
+++ b/src/OFDNSQuery.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDNSResolver.h b/src/OFDNSResolver.h
index 6aa0d574..51004103 100644
--- a/src/OFDNSResolver.h
+++ b/src/OFDNSResolver.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDNSResolver.m b/src/OFDNSResolver.m
index f6d154ed..d43235f7 100644
--- a/src/OFDNSResolver.m
+++ b/src/OFDNSResolver.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDNSResolverSettings.h b/src/OFDNSResolverSettings.h
index 25fc8578..66c57281 100644
--- a/src/OFDNSResolverSettings.h
+++ b/src/OFDNSResolverSettings.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDNSResolverSettings.m b/src/OFDNSResolverSettings.m
index ed5daf8a..31305ed0 100644
--- a/src/OFDNSResolverSettings.m
+++ b/src/OFDNSResolverSettings.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDNSResourceRecord.h b/src/OFDNSResourceRecord.h
index d4fb4825..5c381229 100644
--- a/src/OFDNSResourceRecord.h
+++ b/src/OFDNSResourceRecord.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDNSResourceRecord.m b/src/OFDNSResourceRecord.m
index 892d2195..89c1e94f 100644
--- a/src/OFDNSResourceRecord.m
+++ b/src/OFDNSResourceRecord.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDNSResponse.h b/src/OFDNSResponse.h
index 6200b686..1b66e927 100644
--- a/src/OFDNSResponse.h
+++ b/src/OFDNSResponse.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDNSResponse.m b/src/OFDNSResponse.m
index ffb09f53..33fcfac2 100644
--- a/src/OFDNSResponse.m
+++ b/src/OFDNSResponse.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFData+CryptoHashing.h b/src/OFData+CryptoHashing.h
index 5d1afcfe..1663372e 100644
--- a/src/OFData+CryptoHashing.h
+++ b/src/OFData+CryptoHashing.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFData+CryptoHashing.m b/src/OFData+CryptoHashing.m
index 4c224951..9273799c 100644
--- a/src/OFData+CryptoHashing.m
+++ b/src/OFData+CryptoHashing.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -34,7 +34,8 @@ int _OFData_CryptoHashing_reference;
- (OFString *)of_cryptoHashWithClass: (Class <OFCryptoHash>)class
{
void *pool = objc_autoreleasePoolPush();
- id <OFCryptoHash> hash = [class cryptoHash];
+ id <OFCryptoHash> hash =
+ [class cryptoHashWithAllowsSwappableMemory: true];
size_t digestSize = [class digestSize];
const unsigned char *digest;
char cString[digestSize * 2];
diff --git a/src/OFData+MessagePackValue.h b/src/OFData+MessagePackValue.h
index a17b74eb..1036614d 100644
--- a/src/OFData+MessagePackValue.h
+++ b/src/OFData+MessagePackValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFData+MessagePackValue.m b/src/OFData+MessagePackValue.m
index d9d903cf..d18893fd 100644
--- a/src/OFData+MessagePackValue.m
+++ b/src/OFData+MessagePackValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFData.h b/src/OFData.h
index 7189e944..b0503bfe 100644
--- a/src/OFData.h
+++ b/src/OFData.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFData.m b/src/OFData.m
index 52c6ab6d..e66abe61 100644
--- a/src/OFData.m
+++ b/src/OFData.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDate.h b/src/OFDate.h
index e640f6d7..c4025018 100644
--- a/src/OFDate.h
+++ b/src/OFDate.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDate.m b/src/OFDate.m
index 7fa65b94..bcc0aa63 100644
--- a/src/OFDate.m
+++ b/src/OFDate.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDictionary.h b/src/OFDictionary.h
index 9955d1a9..53032027 100644
--- a/src/OFDictionary.h
+++ b/src/OFDictionary.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDictionary.m b/src/OFDictionary.m
index 19f353cb..5693bb5f 100644
--- a/src/OFDictionary.m
+++ b/src/OFDictionary.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDimensionValue.h b/src/OFDimensionValue.h
index a6647f09..b3efc36f 100644
--- a/src/OFDimensionValue.h
+++ b/src/OFDimensionValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFDimensionValue.m b/src/OFDimensionValue.m
index f88f98bc..cb7b59ed 100644
--- a/src/OFDimensionValue.m
+++ b/src/OFDimensionValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFEnumerator.h b/src/OFEnumerator.h
index 04667d6e..31eb7968 100644
--- a/src/OFEnumerator.h
+++ b/src/OFEnumerator.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFEnumerator.m b/src/OFEnumerator.m
index 2f3a71d8..fc41fcd0 100644
--- a/src/OFEnumerator.m
+++ b/src/OFEnumerator.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFEpollKernelEventObserver.h b/src/OFEpollKernelEventObserver.h
index bc06f73d..dc506a20 100644
--- a/src/OFEpollKernelEventObserver.h
+++ b/src/OFEpollKernelEventObserver.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFEpollKernelEventObserver.m b/src/OFEpollKernelEventObserver.m
index 8a440472..ec1c24b4 100644
--- a/src/OFEpollKernelEventObserver.m
+++ b/src/OFEpollKernelEventObserver.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -29,12 +29,7 @@
#import "OFEpollKernelEventObserver.h"
#import "OFArray.h"
-#import "OFKernelEventObserver+Private.h"
-#import "OFKernelEventObserver.h"
#import "OFMapTable.h"
-#ifdef OF_HAVE_THREADS
-# import "OFMutex.h"
-#endif
#import "OFNull.h"
#import "OFInitializationFailedException.h"
@@ -158,32 +153,40 @@ static const of_map_table_functions_t mapFunctions = { NULL };
}
}
-- (void)of_addObjectForReading: (id <OFReadyForReadingObserving>)object
+- (void)addObjectForReading: (id <OFReadyForReadingObserving>)object
{
[self of_addObject: object
fileDescriptor: object.fileDescriptorForReading
events: EPOLLIN];
+
+ [super addObjectForReading: object];
}
-- (void)of_addObjectForWriting: (id <OFReadyForWritingObserving>)object
+- (void)addObjectForWriting: (id <OFReadyForWritingObserving>)object
{
[self of_addObject: object
fileDescriptor: object.fileDescriptorForWriting
events: EPOLLOUT];
+
+ [super addObjectForWriting: object];
}
-- (void)of_removeObjectForReading: (id <OFReadyForReadingObserving>)object
+- (void)removeObjectForReading: (id <OFReadyForReadingObserving>)object
{
[self of_removeObject: object
fileDescriptor: object.fileDescriptorForReading
events: EPOLLIN];
+
+ [super removeObjectForReading: object];
}
-- (void)of_removeObjectForWriting: (id <OFReadyForWritingObserving>)object
+- (void)removeObjectForWriting: (id <OFReadyForWritingObserving>)object
{
[self of_removeObject: object
fileDescriptor: object.fileDescriptorForWriting
events: EPOLLOUT];
+
+ [super removeObjectForWriting: object];
}
- (void)observeForTimeInterval: (of_time_interval_t)timeInterval
@@ -192,8 +195,6 @@ static const of_map_table_functions_t mapFunctions = { NULL };
struct epoll_event eventList[EVENTLIST_SIZE];
int events;
- [self of_processQueue];
-
if ([self of_processReadBuffers])
return;
diff --git a/src/OFFile.h b/src/OFFile.h
index 1c747d43..1e009bdf 100644
--- a/src/OFFile.h
+++ b/src/OFFile.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFFile.m b/src/OFFile.m
index f04f7649..6c4edbcf 100644
--- a/src/OFFile.m
+++ b/src/OFFile.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFFileManager.h b/src/OFFileManager.h
index de828d13..0d07a38e 100644
--- a/src/OFFileManager.h
+++ b/src/OFFileManager.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFFileManager.m b/src/OFFileManager.m
index 68211eb7..0fbfb9e8 100644
--- a/src/OFFileManager.m
+++ b/src/OFFileManager.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFFileURLHandler.h b/src/OFFileURLHandler.h
index f4e50ec6..f433a9cb 100644
--- a/src/OFFileURLHandler.h
+++ b/src/OFFileURLHandler.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFFileURLHandler.m b/src/OFFileURLHandler.m
index 82036c32..b2361f31 100644
--- a/src/OFFileURLHandler.m
+++ b/src/OFFileURLHandler.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFGZIPStream.h b/src/OFGZIPStream.h
index 42fbe9a5..c45c0f45 100644
--- a/src/OFGZIPStream.h
+++ b/src/OFGZIPStream.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFGZIPStream.m b/src/OFGZIPStream.m
index ff858855..8a09bbb7 100644
--- a/src/OFGZIPStream.m
+++ b/src/OFGZIPStream.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -51,7 +51,7 @@
if (![mode isEqual: @"r"])
@throw [OFNotImplementedException
exceptionWithSelector: _cmd
- object: self];
+ object: nil];
_stream = [stream retain];
_CRC32 = ~0;
diff --git a/src/OFHMAC.h b/src/OFHMAC.h
index 9f11c02d..213fb6b2 100644
--- a/src/OFHMAC.h
+++ b/src/OFHMAC.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -29,6 +29,7 @@ OF_SUBCLASSING_RESTRICTED
@interface OFHMAC: OFObject
{
Class <OFCryptoHash> _hashClass;
+ bool _allowsSwappableMemory;
id <OFCryptoHash> _Nullable _outerHash, _innerHash;
id <OFCryptoHash> _Nullable _outerHashCopy, _innerHashCopy;
bool _calculated;
@@ -40,6 +41,11 @@ OF_SUBCLASSING_RESTRICTED
@property (readonly, nonatomic) Class <OFCryptoHash> hashClass;
/*!
+ * @brief Whether data may be stored in swappable memory.
+ */
+@property (readonly, nonatomic) bool allowsSwappableMemory;
+
+/*!
* @brief A buffer containing the HMAC.
*
* The size of the buffer depends on the hash used. The buffer is part of the
@@ -57,9 +63,11 @@ OF_SUBCLASSING_RESTRICTED
* @brief Returns a new OFHMAC with the specified hashing algorithm.
*
* @param hashClass The class of the hashing algorithm
+ * @param allowsSwappableMemory Whether data may be stored in swappable memory
* @return A new, autoreleased OFHMAC
*/
-+ (instancetype)HMACWithHashClass: (Class <OFCryptoHash>)hashClass;
++ (instancetype)HMACWithHashClass: (Class <OFCryptoHash>)hashClass
+ allowsSwappableMemory: (bool)allowsSwappableMemory;
- (instancetype)init OF_UNAVAILABLE;
@@ -68,9 +76,11 @@ OF_SUBCLASSING_RESTRICTED
* algorithm.
*
* @param hashClass The class of the hashing algorithm
+ * @param allowsSwappableMemory Whether data may be stored in swappable memory
* @return An initialized OFHMAC
*/
- (instancetype)initWithHashClass: (Class <OFCryptoHash>)hashClass
+ allowsSwappableMemory: (bool)allowsSwappableMemory
OF_DESIGNATED_INITIALIZER;
/*!
diff --git a/src/OFHMAC.m b/src/OFHMAC.m
index ce2ccfe5..fce25a49 100644
--- a/src/OFHMAC.m
+++ b/src/OFHMAC.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -25,10 +25,14 @@
@implementation OFHMAC
@synthesize hashClass = _hashClass;
+@synthesize allowsSwappableMemory = _allowsSwappableMemory;
+ (instancetype)HMACWithHashClass: (Class <OFCryptoHash>)class
+ allowsSwappableMemory: (bool)allowsSwappableMemory
{
- return [[[self alloc] initWithHashClass: class] autorelease];
+ return [[[self alloc] initWithHashClass: class
+ allowsSwappableMemory: allowsSwappableMemory]
+ autorelease];
}
- (instancetype)init
@@ -37,10 +41,12 @@
}
- (instancetype)initWithHashClass: (Class <OFCryptoHash>)class
+ allowsSwappableMemory: (bool)allowsSwappableMemory
{
self = [super init];
_hashClass = class;
+ _allowsSwappableMemory = allowsSwappableMemory;
return self;
}
@@ -60,8 +66,12 @@
{
void *pool = objc_autoreleasePoolPush();
size_t blockSize = [_hashClass blockSize];
- OFSecureData *outerKeyPad = [OFSecureData dataWithCount: blockSize];
- OFSecureData *innerKeyPad = [OFSecureData dataWithCount: blockSize];
+ OFSecureData *outerKeyPad = [OFSecureData
+ dataWithCount: blockSize
+ allowsSwappableMemory: _allowsSwappableMemory];
+ OFSecureData *innerKeyPad = [OFSecureData
+ dataWithCount: blockSize
+ allowsSwappableMemory: _allowsSwappableMemory];
unsigned char *outerKeyPadItems = outerKeyPad.mutableItems;
unsigned char *innerKeyPadItems = innerKeyPad.mutableItems;
@@ -73,7 +83,9 @@
@try {
if (length > blockSize) {
- id <OFCryptoHash> hash = [_hashClass cryptoHash];
+ id <OFCryptoHash> hash = [_hashClass
+ cryptoHashWithAllowsSwappableMemory:
+ _allowsSwappableMemory];
[hash updateWithBuffer: key
length: length];
@@ -97,8 +109,10 @@
innerKeyPadItems[i] ^= 0x36;
}
- _outerHash = [[_hashClass cryptoHash] retain];
- _innerHash = [[_hashClass cryptoHash] retain];
+ _outerHash = [[_hashClass cryptoHashWithAllowsSwappableMemory:
+ _allowsSwappableMemory] retain];
+ _innerHash = [[_hashClass cryptoHashWithAllowsSwappableMemory:
+ _allowsSwappableMemory] retain];
[_outerHash updateWithBuffer: outerKeyPadItems
length: blockSize];
diff --git a/src/OFHTTPClient.h b/src/OFHTTPClient.h
index 302baf54..e8fe179c 100644
--- a/src/OFHTTPClient.h
+++ b/src/OFHTTPClient.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPClient.m b/src/OFHTTPClient.m
index 88233b02..4aac8660 100644
--- a/src/OFHTTPClient.m
+++ b/src/OFHTTPClient.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -174,7 +174,7 @@ constructRequestString(OFHTTPRequest *request)
if ([headers objectForKey: @"User-Agent"] == nil)
[headers setObject: @"Something using ObjFW "
- @"<https://heap.zone/objfw>"
+ @"<https://objfw.nil.im/>"
forKey: @"User-Agent"];
if (request.protocolVersion.major == 1 &&
diff --git a/src/OFHTTPCookie.h b/src/OFHTTPCookie.h
index 213a6ca9..32b1ccab 100644
--- a/src/OFHTTPCookie.h
+++ b/src/OFHTTPCookie.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPCookie.m b/src/OFHTTPCookie.m
index f0e2559c..e3c1c3bc 100644
--- a/src/OFHTTPCookie.m
+++ b/src/OFHTTPCookie.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPCookieManager.h b/src/OFHTTPCookieManager.h
index 368cfee0..7828bffd 100644
--- a/src/OFHTTPCookieManager.h
+++ b/src/OFHTTPCookieManager.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPCookieManager.m b/src/OFHTTPCookieManager.m
index 2f561d85..64ee19c5 100644
--- a/src/OFHTTPCookieManager.m
+++ b/src/OFHTTPCookieManager.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPRequest.h b/src/OFHTTPRequest.h
index 193efc27..11ab7af4 100644
--- a/src/OFHTTPRequest.h
+++ b/src/OFHTTPRequest.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPRequest.m b/src/OFHTTPRequest.m
index 8e69bad8..8296e8b3 100644
--- a/src/OFHTTPRequest.m
+++ b/src/OFHTTPRequest.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPResponse.h b/src/OFHTTPResponse.h
index 6043ea55..2805d6fd 100644
--- a/src/OFHTTPResponse.h
+++ b/src/OFHTTPResponse.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPResponse.m b/src/OFHTTPResponse.m
index c8ab9cf0..57349bef 100644
--- a/src/OFHTTPResponse.m
+++ b/src/OFHTTPResponse.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPServer.h b/src/OFHTTPServer.h
index cd2f7823..ec9b6a20 100644
--- a/src/OFHTTPServer.h
+++ b/src/OFHTTPServer.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPServer.m b/src/OFHTTPServer.m
index 0bc05bcd..13d03ebb 100644
--- a/src/OFHTTPServer.m
+++ b/src/OFHTTPServer.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -748,7 +748,7 @@ normalizedKey(OFString *key)
self = [super init];
_name = @"OFHTTPServer (ObjFW's HTTP server class "
- @"<https://heap.zone/objfw/>)";
+ @"<https://objfw.nil.im/>)";
#ifdef OF_HAVE_THREADS
_numberOfThreads = 1;
#endif
diff --git a/src/OFHTTPURLHandler.h b/src/OFHTTPURLHandler.h
index 5f225ac6..ce233899 100644
--- a/src/OFHTTPURLHandler.h
+++ b/src/OFHTTPURLHandler.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHTTPURLHandler.m b/src/OFHTTPURLHandler.m
index 18f3d94c..7ffdf17e 100644
--- a/src/OFHTTPURLHandler.m
+++ b/src/OFHTTPURLHandler.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHostAddressResolver.h b/src/OFHostAddressResolver.h
index 462cef9a..fda1337e 100644
--- a/src/OFHostAddressResolver.h
+++ b/src/OFHostAddressResolver.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFHostAddressResolver.m b/src/OFHostAddressResolver.m
index c6236c25..53e150af 100644
--- a/src/OFHostAddressResolver.m
+++ b/src/OFHostAddressResolver.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -238,12 +238,24 @@ callDelegateInMode(of_run_loop_mode_t runLoopMode,
[_addresses makeImmutable];
+ if (_addresses.count == 0) {
+ [_addresses release];
+ _addresses = nil;
+
+ if (exception == nil)
+ exception = [OFResolveHostFailedException
+ exceptionWithHost: _host
+ addressFamily: _addressFamily
+ error: OF_DNS_RESOLVER_ERROR_NO_RESULT];
+ } else
+ exception = nil;
+
if ([_delegate respondsToSelector:
@selector(resolver:didResolveHost:addresses:exception:)])
[_delegate resolver: _resolver
didResolveHost: _host
- addresses: (_addresses.count > 0 ? _addresses : nil)
- exception: (_addresses.count == 0 ? exception : nil)];
+ addresses: _addresses
+ exception: exception];
}
- (void)asyncResolve
diff --git a/src/OFINICategory+Private.h b/src/OFINICategory+Private.h
index a9003e41..7aedca48 100644
--- a/src/OFINICategory+Private.h
+++ b/src/OFINICategory+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFINICategory.h b/src/OFINICategory.h
index 796684c8..296b855e 100644
--- a/src/OFINICategory.h
+++ b/src/OFINICategory.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFINICategory.m b/src/OFINICategory.m
index d4893196..bdf109ab 100644
--- a/src/OFINICategory.m
+++ b/src/OFINICategory.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFINIFile.h b/src/OFINIFile.h
index 16e6483a..6620e070 100644
--- a/src/OFINIFile.h
+++ b/src/OFINIFile.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFINIFile.m b/src/OFINIFile.m
index 64ba30f3..c3ceb583 100644
--- a/src/OFINIFile.m
+++ b/src/OFINIFile.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFINIFileSettings.h b/src/OFINIFileSettings.h
index ea9e1c9d..1c86a45e 100644
--- a/src/OFINIFileSettings.h
+++ b/src/OFINIFileSettings.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFINIFileSettings.m b/src/OFINIFileSettings.m
index 8437bb89..48861388 100644
--- a/src/OFINIFileSettings.m
+++ b/src/OFINIFileSettings.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFInflate64Stream.h b/src/OFInflate64Stream.h
index b55873ea..951eb0db 100644
--- a/src/OFInflate64Stream.h
+++ b/src/OFInflate64Stream.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFInflate64Stream.m b/src/OFInflate64Stream.m
index 47ed8c26..e23bdc29 100644
--- a/src/OFInflate64Stream.m
+++ b/src/OFInflate64Stream.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFInflateStream.h b/src/OFInflateStream.h
index 47773c26..622ab8d6 100644
--- a/src/OFInflateStream.h
+++ b/src/OFInflateStream.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFInflateStream.m b/src/OFInflateStream.m
index 26304539..fdfce12b 100644
--- a/src/OFInflateStream.m
+++ b/src/OFInflateStream.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFInvertedCharacterSet.h b/src/OFInvertedCharacterSet.h
index 4c506f74..9ab3e0db 100644
--- a/src/OFInvertedCharacterSet.h
+++ b/src/OFInvertedCharacterSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFInvertedCharacterSet.m b/src/OFInvertedCharacterSet.m
index 37a622a7..aa52ffc8 100644
--- a/src/OFInvertedCharacterSet.m
+++ b/src/OFInvertedCharacterSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFInvocation.h b/src/OFInvocation.h
index f91bc629..bc812335 100644
--- a/src/OFInvocation.h
+++ b/src/OFInvocation.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFInvocation.m b/src/OFInvocation.m
index 232997da..a2243928 100644
--- a/src/OFInvocation.m
+++ b/src/OFInvocation.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFJSONRepresentation.h b/src/OFJSONRepresentation.h
index 5fa5d313..5da04348 100644
--- a/src/OFJSONRepresentation.h
+++ b/src/OFJSONRepresentation.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFKernelEventObserver+Private.h b/src/OFKernelEventObserver+Private.h
deleted file mode 100644
index 894f72bc..00000000
--- a/src/OFKernelEventObserver+Private.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
- *
- * All rights reserved.
- *
- * This file is part of ObjFW. It may be distributed under the terms of the
- * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
- * the packaging of this file.
- *
- * Alternatively, it may be distributed under the terms of the GNU General
- * Public License, either version 2 or 3, which can be found in the file
- * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
- * file.
- */
-
-#import "OFKernelEventObserver.h"
-
-OF_ASSUME_NONNULL_BEGIN
-
-@interface OFKernelEventObserver ()
-- (void)of_addObjectForReading: (id <OFReadyForReadingObserving>)object;
-- (void)of_addObjectForWriting: (id <OFReadyForWritingObserving>)object;
-- (void)of_removeObjectForReading: (id <OFReadyForReadingObserving>)object;
-- (void)of_removeObjectForWriting: (id <OFReadyForWritingObserving>)object;
-- (void)of_processQueue;
-- (bool)of_processReadBuffers;
-@end
-
-OF_ASSUME_NONNULL_END
diff --git a/src/OFKernelEventObserver.h b/src/OFKernelEventObserver.h
index 7f190dd8..44089d5c 100644
--- a/src/OFKernelEventObserver.h
+++ b/src/OFKernelEventObserver.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -136,12 +136,6 @@ OF_ASSUME_NONNULL_BEGIN
#ifdef OF_AMIGAOS
ULONG _execSignalMask;
#endif
-@private
- OFMutableData *_queueActions;
- OFMutableArray *_queueObjects;
-#ifdef OF_HAVE_THREADS
- OFMutex *_mutex;
-#endif
OF_RESERVE_IVARS(4)
}
@@ -234,11 +228,17 @@ OF_ASSUME_NONNULL_BEGIN
/*!
* @brief Cancels the currently blocking observe call.
*
- * This is automatically done when a new object is added or removed by another
- * thread, but in some circumstances, it might be desirable for a thread to
- * manually stop the observe running in another thread.
+ * This is the only method that can and should be called from another thread
+ * than the one using the observer.
*/
- (void)cancel;
+
+/*!
+ * @brief This method should be called by subclasses in @ref observeUntilDate:
+ * as the first thing to handle all sockets that currently have data in
+ * the read buffer.
+ */
+- (bool)of_processReadBuffers;
@end
#endif
diff --git a/src/OFKernelEventObserver.m b/src/OFKernelEventObserver.m
index 91a1952f..9ab39ee8 100644
--- a/src/OFKernelEventObserver.m
+++ b/src/OFKernelEventObserver.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -22,13 +22,9 @@
#include <errno.h>
#import "OFKernelEventObserver.h"
-#import "OFKernelEventObserver+Private.h"
#import "OFArray.h"
#import "OFData.h"
#import "OFDate.h"
-#ifdef OF_HAVE_THREADS
-# import "OFMutex.h"
-#endif
#import "OFStream.h"
#import "OFStream+Private.h"
#ifndef OF_HAVE_PIPE
@@ -170,14 +166,6 @@ enum {
}
# endif
#endif
-
-#ifdef OF_HAVE_THREADS
- _mutex = [[OFMutex alloc] init];
-#endif
-
- _queueActions = [[OFMutableData alloc]
- initWithItemSize: sizeof(int)];
- _queueObjects = [[OFMutableArray alloc] init];
} @catch (id e) {
[self release];
@throw e;
@@ -201,183 +189,27 @@ enum {
[_readObjects release];
[_writeObjects release];
-#ifdef OF_HAVE_THREADS
- [_mutex release];
-#endif
-
- [_queueActions release];
- [_queueObjects release];
-
[super dealloc];
}
- (void)addObjectForReading: (id <OFReadyForReadingObserving>)object
{
-#ifdef OF_HAVE_THREADS
- [_mutex lock];
- @try {
-#endif
- int action = QUEUE_ADD | QUEUE_READ;
-
- [_queueActions addItem: &action];
- [_queueObjects addObject: object];
-#ifdef OF_HAVE_THREADS
- } @finally {
- [_mutex unlock];
- }
-#endif
-
- [self cancel];
+ [_readObjects addObject: object];
}
- (void)addObjectForWriting: (id <OFReadyForWritingObserving>)object
{
-#ifdef OF_HAVE_THREADS
- [_mutex lock];
- @try {
-#endif
- int action = QUEUE_ADD | QUEUE_WRITE;
-
- [_queueActions addItem: &action];
- [_queueObjects addObject: object];
-#ifdef OF_HAVE_THREADS
- } @finally {
- [_mutex unlock];
- }
-#endif
-
- [self cancel];
+ [_writeObjects addObject: object];
}
- (void)removeObjectForReading: (id <OFReadyForReadingObserving>)object
{
-#ifdef OF_HAVE_THREADS
- [_mutex lock];
- @try {
-#endif
- int action = QUEUE_REMOVE | QUEUE_READ;
-
- [_queueActions addItem: &action];
- [_queueObjects addObject: object];
-#ifdef OF_HAVE_THREADS
- } @finally {
- [_mutex unlock];
- }
-#endif
-
- [self cancel];
+ [_readObjects removeObjectIdenticalTo: object];
}
- (void)removeObjectForWriting: (id <OFReadyForWritingObserving>)object
{
-#ifdef OF_HAVE_THREADS
- [_mutex lock];
- @try {
-#endif
- int action = QUEUE_REMOVE | QUEUE_WRITE;
-
- [_queueActions addItem: &action];
- [_queueObjects addObject: object];
-#ifdef OF_HAVE_THREADS
- } @finally {
- [_mutex unlock];
- }
-#endif
-
- [self cancel];
-}
-
-- (void)of_addObjectForReading: (id <OFReadyForReadingObserving>)object
-{
- OF_UNRECOGNIZED_SELECTOR
-}
-
-- (void)of_addObjectForWriting: (id <OFReadyForWritingObserving>)object
-{
- OF_UNRECOGNIZED_SELECTOR
-}
-
-- (void)of_removeObjectForReading: (id <OFReadyForReadingObserving>)object
-{
- OF_UNRECOGNIZED_SELECTOR
-}
-
-- (void)of_removeObjectForWriting: (id <OFReadyForWritingObserving>)object
-{
- OF_UNRECOGNIZED_SELECTOR
-}
-
-- (void)of_processQueue
-{
- void *pool = objc_autoreleasePoolPush();
-
-#ifdef OF_HAVE_THREADS
- [_mutex lock];
- @try {
-#endif
- const int *queueActions = _queueActions.items;
- id const *queueObjects = _queueObjects.objects;
- size_t count = _queueActions.count;
-
- OF_ENSURE(_queueObjects.count == count);
-
- for (size_t i = 0; i < count; i++) {
- int action = queueActions[i];
- id object = queueObjects[i];
-
- switch (action) {
- case QUEUE_ADD | QUEUE_READ:
- [_readObjects addObject: object];
-
- @try {
- [self of_addObjectForReading: object];
- } @catch (id e) {
- [_readObjects
- removeObjectIdenticalTo: object];
-
- @throw e;
- }
-
- break;
- case QUEUE_ADD | QUEUE_WRITE:
- [_writeObjects addObject: object];
-
- @try {
- [self of_addObjectForWriting: object];
- } @catch (id e) {
- [_writeObjects
- removeObjectIdenticalTo: object];
-
- @throw e;
- }
-
- break;
- case QUEUE_REMOVE | QUEUE_READ:
- [self of_removeObjectForReading: object];
-
- [_readObjects removeObjectIdenticalTo: object];
-
- break;
- case QUEUE_REMOVE | QUEUE_WRITE:
- [self of_removeObjectForWriting: object];
-
- [_writeObjects removeObjectIdenticalTo: object];
-
- break;
- default:
- OF_ENSURE(0);
- }
- }
-
- [_queueActions removeAllItems];
- [_queueObjects removeAllObjects];
-#ifdef OF_HAVE_THREADS
- } @finally {
- [_mutex unlock];
- }
-#endif
-
- objc_autoreleasePoolPop(pool);
+ [_writeObjects removeObjectIdenticalTo: object];
}
- (bool)of_processReadBuffers
diff --git a/src/OFKeyValueCoding.h b/src/OFKeyValueCoding.h
index cff8e36d..c37dfc87 100644
--- a/src/OFKeyValueCoding.h
+++ b/src/OFKeyValueCoding.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFKqueueKernelEventObserver.h b/src/OFKqueueKernelEventObserver.h
index 777a6847..c090a414 100644
--- a/src/OFKqueueKernelEventObserver.h
+++ b/src/OFKqueueKernelEventObserver.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFKqueueKernelEventObserver.m b/src/OFKqueueKernelEventObserver.m
index e79a5f2d..d487f37e 100644
--- a/src/OFKqueueKernelEventObserver.m
+++ b/src/OFKqueueKernelEventObserver.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -31,11 +31,6 @@
#import "OFKqueueKernelEventObserver.h"
#import "OFArray.h"
-#import "OFKernelEventObserver.h"
-#import "OFKernelEventObserver+Private.h"
-#ifdef OF_HAVE_THREADS
-# import "OFMutex.h"
-#endif
#import "OFInitializationFailedException.h"
#import "OFObserveFailedException.h"
@@ -86,7 +81,7 @@
[super dealloc];
}
-- (void)of_addObjectForReading: (id <OFReadyForReadingObserving>)object
+- (void)addObjectForReading: (id <OFReadyForReadingObserving>)object
{
struct kevent event;
@@ -103,9 +98,11 @@
if (kevent(_kernelQueue, &event, 1, NULL, 0, NULL) != 0)
@throw [OFObserveFailedException exceptionWithObserver: self
errNo: errno];
+
+ [super addObjectForReading: object];
}
-- (void)of_addObjectForWriting: (id <OFReadyForWritingObserving>)object
+- (void)addObjectForWriting: (id <OFReadyForWritingObserving>)object
{
struct kevent event;
@@ -122,9 +119,11 @@
if (kevent(_kernelQueue, &event, 1, NULL, 0, NULL) != 0)
@throw [OFObserveFailedException exceptionWithObserver: self
errNo: errno];
+
+ [super addObjectForWriting: object];
}
-- (void)of_removeObjectForReading: (id <OFReadyForReadingObserving>)object
+- (void)removeObjectForReading: (id <OFReadyForReadingObserving>)object
{
struct kevent event;
@@ -136,9 +135,11 @@
if (kevent(_kernelQueue, &event, 1, NULL, 0, NULL) != 0)
@throw [OFObserveFailedException exceptionWithObserver: self
errNo: errno];
+
+ [super removeObjectForReading: object];
}
-- (void)of_removeObjectForWriting: (id <OFReadyForWritingObserving>)object
+- (void)removeObjectForWriting: (id <OFReadyForWritingObserving>)object
{
struct kevent event;
@@ -150,6 +151,8 @@
if (kevent(_kernelQueue, &event, 1, NULL, 0, NULL) != 0)
@throw [OFObserveFailedException exceptionWithObserver: self
errNo: errno];
+
+ [super removeObjectForWriting: object];
}
- (void)observeForTimeInterval: (of_time_interval_t)timeInterval
@@ -158,8 +161,6 @@
struct kevent eventList[EVENTLIST_SIZE];
int events;
- [self of_processQueue];
-
if ([self of_processReadBuffers])
return;
diff --git a/src/OFLHAArchive.h b/src/OFLHAArchive.h
index b51da27c..51eb82e4 100644
--- a/src/OFLHAArchive.h
+++ b/src/OFLHAArchive.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFLHAArchive.m b/src/OFLHAArchive.m
index 16025180..7dff5afa 100644
--- a/src/OFLHAArchive.m
+++ b/src/OFLHAArchive.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFLHAArchiveEntry+Private.h b/src/OFLHAArchiveEntry+Private.h
index 5a9fe6ba..f7ed5584 100644
--- a/src/OFLHAArchiveEntry+Private.h
+++ b/src/OFLHAArchiveEntry+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFLHAArchiveEntry.h b/src/OFLHAArchiveEntry.h
index 71af9122..c2ee6f57 100644
--- a/src/OFLHAArchiveEntry.h
+++ b/src/OFLHAArchiveEntry.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFLHAArchiveEntry.m b/src/OFLHAArchiveEntry.m
index 4a329855..eb6b1efb 100644
--- a/src/OFLHAArchiveEntry.m
+++ b/src/OFLHAArchiveEntry.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFLHADecompressingStream.h b/src/OFLHADecompressingStream.h
index 036578c7..a3f626e3 100644
--- a/src/OFLHADecompressingStream.h
+++ b/src/OFLHADecompressingStream.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFLHADecompressingStream.m b/src/OFLHADecompressingStream.m
index 1bb84fb2..34da8734 100644
--- a/src/OFLHADecompressingStream.m
+++ b/src/OFLHADecompressingStream.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFList.h b/src/OFList.h
index de24ed1f..b5d88a0b 100644
--- a/src/OFList.h
+++ b/src/OFList.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFList.m b/src/OFList.m
index 4a3c04fe..0ebef382 100644
--- a/src/OFList.m
+++ b/src/OFList.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFLocale.h b/src/OFLocale.h
index 2458825d..8eb935b0 100644
--- a/src/OFLocale.h
+++ b/src/OFLocale.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFLocale.m b/src/OFLocale.m
index d71665ce..2e01d7a9 100644
--- a/src/OFLocale.m
+++ b/src/OFLocale.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFLocking.h b/src/OFLocking.h
index 76c5b485..62e5eba4 100644
--- a/src/OFLocking.h
+++ b/src/OFLocking.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMD5Hash.h b/src/OFMD5Hash.h
index 16ddb118..fe897878 100644
--- a/src/OFMD5Hash.h
+++ b/src/OFMD5Hash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -39,6 +39,7 @@ OF_SUBCLASSING_RESTRICTED
} buffer;
size_t bufferLength;
} *_iVars;
+ bool _allowsSwappableMemory;
bool _calculated;
}
@end
diff --git a/src/OFMD5Hash.m b/src/OFMD5Hash.m
index 99ebb8f8..c775d17b 100644
--- a/src/OFMD5Hash.m
+++ b/src/OFMD5Hash.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -124,6 +124,7 @@ processBlock(uint32_t *state, uint32_t *buffer)
@implementation OFMD5Hash
@synthesize calculated = _calculated;
+@synthesize allowsSwappableMemory = _allowsSwappableMemory;
+ (size_t)digestSize
{
@@ -135,19 +136,22 @@ processBlock(uint32_t *state, uint32_t *buffer)
return BLOCK_SIZE;
}
-+ (instancetype)cryptoHash
++ (instancetype)cryptoHashWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
- return [[[self alloc] init] autorelease];
+ return [[[self alloc] initWithAllowsSwappableMemory:
+ allowsSwappableMemory] autorelease];
}
-- (instancetype)init
+- (instancetype)initWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
self = [super init];
@try {
_iVarsData = [[OFSecureData alloc]
- initWithCount: sizeof(*_iVars)];
+ initWithCount: sizeof(*_iVars)
+ allowsSwappableMemory: allowsSwappableMemory];
_iVars = _iVarsData.mutableItems;
+ _allowsSwappableMemory = allowsSwappableMemory;
[self of_resetState];
} @catch (id e) {
@@ -158,6 +162,11 @@ processBlock(uint32_t *state, uint32_t *buffer)
return self;
}
+- (instancetype)init
+{
+ OF_INVALID_INIT_METHOD
+}
+
- (instancetype)of_init
{
return [super init];
@@ -186,6 +195,7 @@ processBlock(uint32_t *state, uint32_t *buffer)
copy->_iVarsData = [_iVarsData copy];
copy->_iVars = copy->_iVarsData.mutableItems;
+ copy->_allowsSwappableMemory = _allowsSwappableMemory;
copy->_calculated = _calculated;
return copy;
diff --git a/src/OFMapTable+Private.h b/src/OFMapTable+Private.h
index 3ab0d552..6b16c5f2 100644
--- a/src/OFMapTable+Private.h
+++ b/src/OFMapTable+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMapTable.h b/src/OFMapTable.h
index 699886fc..4ec18f01 100644
--- a/src/OFMapTable.h
+++ b/src/OFMapTable.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMapTable.m b/src/OFMapTable.m
index e6951f61..f1468706 100644
--- a/src/OFMapTable.m
+++ b/src/OFMapTable.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMapTableDictionary.h b/src/OFMapTableDictionary.h
index 14fb60e9..39a64359 100644
--- a/src/OFMapTableDictionary.h
+++ b/src/OFMapTableDictionary.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMapTableDictionary.m b/src/OFMapTableDictionary.m
index 6307f075..063fc71b 100644
--- a/src/OFMapTableDictionary.m
+++ b/src/OFMapTableDictionary.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMapTableSet.h b/src/OFMapTableSet.h
index 5cf5c9e8..4ffc7bac 100644
--- a/src/OFMapTableSet.h
+++ b/src/OFMapTableSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMapTableSet.m b/src/OFMapTableSet.m
index 1c2bea28..9f4a7ee3 100644
--- a/src/OFMapTableSet.m
+++ b/src/OFMapTableSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMessagePackExtension.h b/src/OFMessagePackExtension.h
index 2c15deb9..de565029 100644
--- a/src/OFMessagePackExtension.h
+++ b/src/OFMessagePackExtension.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMessagePackExtension.m b/src/OFMessagePackExtension.m
index 436c1352..023e341b 100644
--- a/src/OFMessagePackExtension.m
+++ b/src/OFMessagePackExtension.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMessagePackRepresentation.h b/src/OFMessagePackRepresentation.h
index 650683d3..7cfc0c8d 100644
--- a/src/OFMessagePackRepresentation.h
+++ b/src/OFMessagePackRepresentation.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMethodSignature.h b/src/OFMethodSignature.h
index 0079e072..7d841380 100644
--- a/src/OFMethodSignature.h
+++ b/src/OFMethodSignature.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMethodSignature.m b/src/OFMethodSignature.m
index 785f5321..1b2aa332 100644
--- a/src/OFMethodSignature.m
+++ b/src/OFMethodSignature.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableAdjacentArray.h b/src/OFMutableAdjacentArray.h
index a15e5661..f71adac8 100644
--- a/src/OFMutableAdjacentArray.h
+++ b/src/OFMutableAdjacentArray.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableAdjacentArray.m b/src/OFMutableAdjacentArray.m
index 9e05787a..1c901977 100644
--- a/src/OFMutableAdjacentArray.m
+++ b/src/OFMutableAdjacentArray.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableArray.h b/src/OFMutableArray.h
index 685292b2..734d63f4 100644
--- a/src/OFMutableArray.h
+++ b/src/OFMutableArray.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableArray.m b/src/OFMutableArray.m
index 381a490c..cdd744dd 100644
--- a/src/OFMutableArray.m
+++ b/src/OFMutableArray.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableData.h b/src/OFMutableData.h
index 67ee86b8..8308b041 100644
--- a/src/OFMutableData.h
+++ b/src/OFMutableData.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableData.m b/src/OFMutableData.m
index faa12de5..6efae89a 100644
--- a/src/OFMutableData.m
+++ b/src/OFMutableData.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableDictionary.h b/src/OFMutableDictionary.h
index cd78eb47..989caaff 100644
--- a/src/OFMutableDictionary.h
+++ b/src/OFMutableDictionary.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableDictionary.m b/src/OFMutableDictionary.m
index 83f6dcdb..b074df17 100644
--- a/src/OFMutableDictionary.m
+++ b/src/OFMutableDictionary.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableLHAArchiveEntry.h b/src/OFMutableLHAArchiveEntry.h
index c870115b..4bb9b9e3 100644
--- a/src/OFMutableLHAArchiveEntry.h
+++ b/src/OFMutableLHAArchiveEntry.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableLHAArchiveEntry.m b/src/OFMutableLHAArchiveEntry.m
index 0863b189..15e8f12d 100644
--- a/src/OFMutableLHAArchiveEntry.m
+++ b/src/OFMutableLHAArchiveEntry.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableMapTableDictionary.h b/src/OFMutableMapTableDictionary.h
index bc676fc9..f754b97d 100644
--- a/src/OFMutableMapTableDictionary.h
+++ b/src/OFMutableMapTableDictionary.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableMapTableDictionary.m b/src/OFMutableMapTableDictionary.m
index 72c32624..d2d25f56 100644
--- a/src/OFMutableMapTableDictionary.m
+++ b/src/OFMutableMapTableDictionary.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableMapTableSet.h b/src/OFMutableMapTableSet.h
index fd424907..39296191 100644
--- a/src/OFMutableMapTableSet.h
+++ b/src/OFMutableMapTableSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableMapTableSet.m b/src/OFMutableMapTableSet.m
index 5d5b9edf..5c4c9ae4 100644
--- a/src/OFMutableMapTableSet.m
+++ b/src/OFMutableMapTableSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutablePair.h b/src/OFMutablePair.h
index 42e3ca29..d7de6a52 100644
--- a/src/OFMutablePair.h
+++ b/src/OFMutablePair.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutablePair.m b/src/OFMutablePair.m
index a6d6925d..d5c02e3c 100644
--- a/src/OFMutablePair.m
+++ b/src/OFMutablePair.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableSet.h b/src/OFMutableSet.h
index fa18fe6d..029a7309 100644
--- a/src/OFMutableSet.h
+++ b/src/OFMutableSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableSet.m b/src/OFMutableSet.m
index ad40ea41..32e94a69 100644
--- a/src/OFMutableSet.m
+++ b/src/OFMutableSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableString.h b/src/OFMutableString.h
index 9785d595..aa9b87c0 100644
--- a/src/OFMutableString.h
+++ b/src/OFMutableString.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableString.m b/src/OFMutableString.m
index 63a35fb4..ffa2bffd 100644
--- a/src/OFMutableString.m
+++ b/src/OFMutableString.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableTarArchiveEntry.h b/src/OFMutableTarArchiveEntry.h
index 03e1eec3..f406f298 100644
--- a/src/OFMutableTarArchiveEntry.h
+++ b/src/OFMutableTarArchiveEntry.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableTarArchiveEntry.m b/src/OFMutableTarArchiveEntry.m
index 4b9268c0..8f888f7e 100644
--- a/src/OFMutableTarArchiveEntry.m
+++ b/src/OFMutableTarArchiveEntry.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableTriple.h b/src/OFMutableTriple.h
index acbbdeb3..eaa0b2a0 100644
--- a/src/OFMutableTriple.h
+++ b/src/OFMutableTriple.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableTriple.m b/src/OFMutableTriple.m
index 6416434d..9df37527 100644
--- a/src/OFMutableTriple.m
+++ b/src/OFMutableTriple.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableURL.h b/src/OFMutableURL.h
index 50b290cc..d3d7d003 100644
--- a/src/OFMutableURL.h
+++ b/src/OFMutableURL.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableURL.m b/src/OFMutableURL.m
index 0cd4597a..a7a1af2a 100644
--- a/src/OFMutableURL.m
+++ b/src/OFMutableURL.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableUTF8String.h b/src/OFMutableUTF8String.h
index 537e7f44..9af6c5f8 100644
--- a/src/OFMutableUTF8String.h
+++ b/src/OFMutableUTF8String.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableUTF8String.m b/src/OFMutableUTF8String.m
index 20709fe7..b5f29b90 100644
--- a/src/OFMutableUTF8String.m
+++ b/src/OFMutableUTF8String.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableZIPArchiveEntry.h b/src/OFMutableZIPArchiveEntry.h
index f92dd7e8..3dcac024 100644
--- a/src/OFMutableZIPArchiveEntry.h
+++ b/src/OFMutableZIPArchiveEntry.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutableZIPArchiveEntry.m b/src/OFMutableZIPArchiveEntry.m
index b47251f3..888cf3b7 100644
--- a/src/OFMutableZIPArchiveEntry.m
+++ b/src/OFMutableZIPArchiveEntry.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutex.h b/src/OFMutex.h
index fe3cfd56..c542a239 100644
--- a/src/OFMutex.h
+++ b/src/OFMutex.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFMutex.m b/src/OFMutex.m
index c399b92b..f0381580 100644
--- a/src/OFMutex.m
+++ b/src/OFMutex.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFNonretainedObjectValue.h b/src/OFNonretainedObjectValue.h
index 1843a2fb..13497237 100644
--- a/src/OFNonretainedObjectValue.h
+++ b/src/OFNonretainedObjectValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFNonretainedObjectValue.m b/src/OFNonretainedObjectValue.m
index e4964ca0..430b3144 100644
--- a/src/OFNonretainedObjectValue.m
+++ b/src/OFNonretainedObjectValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFNull.h b/src/OFNull.h
index 544db62b..0577a441 100644
--- a/src/OFNull.h
+++ b/src/OFNull.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFNull.m b/src/OFNull.m
index 87231938..36d888f3 100644
--- a/src/OFNull.m
+++ b/src/OFNull.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFNumber.h b/src/OFNumber.h
index d3b155eb..b16b9f19 100644
--- a/src/OFNumber.h
+++ b/src/OFNumber.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFNumber.m b/src/OFNumber.m
index 63757c7a..72956256 100644
--- a/src/OFNumber.m
+++ b/src/OFNumber.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFObject+KeyValueCoding.h b/src/OFObject+KeyValueCoding.h
index 9df12186..f19d3b90 100644
--- a/src/OFObject+KeyValueCoding.h
+++ b/src/OFObject+KeyValueCoding.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFObject+KeyValueCoding.m b/src/OFObject+KeyValueCoding.m
index 7727b06e..07f64619 100644
--- a/src/OFObject+KeyValueCoding.m
+++ b/src/OFObject+KeyValueCoding.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFObject+Serialization.h b/src/OFObject+Serialization.h
index 20e418f5..8f9920bd 100644
--- a/src/OFObject+Serialization.h
+++ b/src/OFObject+Serialization.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFObject+Serialization.m b/src/OFObject+Serialization.m
index 4c45d9b8..c7f41cec 100644
--- a/src/OFObject+Serialization.m
+++ b/src/OFObject+Serialization.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFObject.h b/src/OFObject.h
index 3a0813a7..672b75bb 100644
--- a/src/OFObject.h
+++ b/src/OFObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -30,7 +30,6 @@
#include <limits.h>
#import "macros.h"
-#import "autorelease.h"
#import "block.h"
/*
@@ -1277,6 +1276,10 @@ OF_ROOT_CLASS
#ifdef __cplusplus
extern "C" {
#endif
+#ifdef OF_APPLE_RUNTIME
+extern void *_Null_unspecified objc_autoreleasePoolPush(void);
+extern void objc_autoreleasePoolPop(void *_Null_unspecified pool);
+#endif
extern id of_alloc_object(Class class_, size_t extraSize,
size_t extraAlignment, void *_Nullable *_Nullable extra);
extern void OF_NO_RETURN_FUNC of_method_not_found(id self, SEL _cmd);
diff --git a/src/OFObject.m b/src/OFObject.m
index cb63cbdd..611dfd0b 100644
--- a/src/OFObject.m
+++ b/src/OFObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -60,13 +60,15 @@
#import "OFString.h"
-#import "instance.h"
#if defined(OF_HAVE_ATOMIC_OPS)
# import "atomic.h"
#elif defined(OF_HAVE_THREADS)
# import "mutex.h"
#endif
+#ifdef OF_APPLE_RUNTIME
+extern id _Nullable _objc_rootAutorelease(id _Nullable object);
+#endif
#if defined(OF_HAVE_FORWARDING_TARGET_FOR_SELECTOR)
extern id of_forward(id, SEL, ...);
extern struct stret of_forward_stret(id, SEL, ...);
diff --git a/src/OFOptionsParser.h b/src/OFOptionsParser.h
index dcffc2db..ceb1932f 100644
--- a/src/OFOptionsParser.h
+++ b/src/OFOptionsParser.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFOptionsParser.m b/src/OFOptionsParser.m
index a1b7ff98..572e2665 100644
--- a/src/OFOptionsParser.m
+++ b/src/OFOptionsParser.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPair.h b/src/OFPair.h
index 6bcb7b7c..4bc54728 100644
--- a/src/OFPair.h
+++ b/src/OFPair.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPair.m b/src/OFPair.m
index 20ec40e2..41d78495 100644
--- a/src/OFPair.m
+++ b/src/OFPair.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPlugin.h b/src/OFPlugin.h
index 325b3375..a461a696 100644
--- a/src/OFPlugin.h
+++ b/src/OFPlugin.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPlugin.m b/src/OFPlugin.m
index 04b6e3c2..d94e753d 100644
--- a/src/OFPlugin.m
+++ b/src/OFPlugin.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPointValue.h b/src/OFPointValue.h
index 55ea0c6e..88310831 100644
--- a/src/OFPointValue.h
+++ b/src/OFPointValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPointValue.m b/src/OFPointValue.m
index a06eab8d..19f18bd8 100644
--- a/src/OFPointValue.m
+++ b/src/OFPointValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPointerValue.h b/src/OFPointerValue.h
index 4310c40c..0ce2a2ee 100644
--- a/src/OFPointerValue.h
+++ b/src/OFPointerValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPointerValue.m b/src/OFPointerValue.m
index 649d57cf..ccb1573d 100644
--- a/src/OFPointerValue.m
+++ b/src/OFPointerValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPollKernelEventObserver.h b/src/OFPollKernelEventObserver.h
index 0e3b55b8..15fa8341 100644
--- a/src/OFPollKernelEventObserver.h
+++ b/src/OFPollKernelEventObserver.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFPollKernelEventObserver.m b/src/OFPollKernelEventObserver.m
index 496a0c13..ec2d9802 100644
--- a/src/OFPollKernelEventObserver.m
+++ b/src/OFPollKernelEventObserver.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -28,8 +28,6 @@
#import "OFPollKernelEventObserver.h"
#import "OFData.h"
-#import "OFKernelEventObserver+Private.h"
-#import "OFKernelEventObserver.h"
#import "OFObserveFailedException.h"
#import "OFOutOfRangeException.h"
@@ -126,32 +124,40 @@
}
}
-- (void)of_addObjectForReading: (id <OFReadyForReadingObserving>)object
+- (void)addObjectForReading: (id <OFReadyForReadingObserving>)object
{
[self of_addObject: object
fileDescriptor: object.fileDescriptorForReading
events: POLLIN];
+
+ [super addObjectForReading: object];
}
-- (void)of_addObjectForWriting: (id <OFReadyForWritingObserving>)object
+- (void)addObjectForWriting: (id <OFReadyForWritingObserving>)object
{
[self of_addObject: object
fileDescriptor: object.fileDescriptorForWriting
events: POLLOUT];
+
+ [super addObjectForWriting: object];
}
-- (void)of_removeObjectForReading: (id <OFReadyForReadingObserving>)object
+- (void)removeObjectForReading: (id <OFReadyForReadingObserving>)object
{
[self of_removeObject: object
fileDescriptor: object.fileDescriptorForReading
events: POLLIN];
+
+ [super removeObjectForReading: object];
}
-- (void)of_removeObjectForWriting: (id <OFReadyForWritingObserving>)object
+- (void)removeObjectForWriting: (id <OFReadyForWritingObserving>)object
{
[self of_removeObject: object
fileDescriptor: object.fileDescriptorForWriting
events: POLLOUT];
+
+ [super removeObjectForWriting: object];
}
- (void)observeForTimeInterval: (of_time_interval_t)timeInterval
@@ -160,8 +166,6 @@
int events;
size_t nFDs;
- [self of_processQueue];
-
if ([self of_processReadBuffers])
return;
@@ -210,7 +214,7 @@
objc_autoreleasePoolPop(pool);
}
- if (FDs[i].revents & POLLOUT) {
+ if (FDs[i].revents & (POLLOUT | POLLHUP)) {
void *pool = objc_autoreleasePoolPush();
if ([_delegate respondsToSelector:
diff --git a/src/OFProcess.h b/src/OFProcess.h
index 4ae069a3..15189c03 100644
--- a/src/OFProcess.h
+++ b/src/OFProcess.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFProcess.m b/src/OFProcess.m
index 71595653..af96ebe0 100644
--- a/src/OFProcess.m
+++ b/src/OFProcess.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRIPEMD160Hash.h b/src/OFRIPEMD160Hash.h
index d0d072d5..f1e8b568 100644
--- a/src/OFRIPEMD160Hash.h
+++ b/src/OFRIPEMD160Hash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -39,6 +39,7 @@ OF_SUBCLASSING_RESTRICTED
} buffer;
size_t bufferLength;
} *_iVars;
+ bool _allowsSwappableMemory;
bool _calculated;
}
@end
diff --git a/src/OFRIPEMD160Hash.m b/src/OFRIPEMD160Hash.m
index 7b53ac76..43cb8095 100644
--- a/src/OFRIPEMD160Hash.m
+++ b/src/OFRIPEMD160Hash.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -138,6 +138,7 @@ processBlock(uint32_t *state, uint32_t *buffer)
@implementation OFRIPEMD160Hash
@synthesize calculated = _calculated;
+@synthesize allowsSwappableMemory = _allowsSwappableMemory;
+ (size_t)digestSize
{
@@ -149,19 +150,22 @@ processBlock(uint32_t *state, uint32_t *buffer)
return BLOCK_SIZE;
}
-+ (instancetype)cryptoHash
++ (instancetype)cryptoHashWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
- return [[[self alloc] init] autorelease];
+ return [[[self alloc] initWithAllowsSwappableMemory:
+ allowsSwappableMemory] autorelease];
}
-- (instancetype)init
+- (instancetype)initWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
self = [super init];
@try {
_iVarsData = [[OFSecureData alloc]
- initWithCount: sizeof(*_iVars)];
+ initWithCount: sizeof(*_iVars)
+ allowsSwappableMemory: allowsSwappableMemory];
_iVars = _iVarsData.mutableItems;
+ _allowsSwappableMemory = allowsSwappableMemory;
[self of_resetState];
} @catch (id e) {
@@ -172,6 +176,11 @@ processBlock(uint32_t *state, uint32_t *buffer)
return self;
}
+- (instancetype)init
+{
+ OF_INVALID_INIT_METHOD
+}
+
- (instancetype)of_init
{
return [super init];
@@ -200,6 +209,7 @@ processBlock(uint32_t *state, uint32_t *buffer)
copy->_iVarsData = [_iVarsData copy];
copy->_iVars = copy->_iVarsData.mutableItems;
+ copy->_allowsSwappableMemory = _allowsSwappableMemory;
copy->_calculated = _calculated;
return copy;
diff --git a/src/OFRangeCharacterSet.h b/src/OFRangeCharacterSet.h
index 8754d77d..2bdb9097 100644
--- a/src/OFRangeCharacterSet.h
+++ b/src/OFRangeCharacterSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRangeCharacterSet.m b/src/OFRangeCharacterSet.m
index 4c9b495c..dbe90a09 100644
--- a/src/OFRangeCharacterSet.m
+++ b/src/OFRangeCharacterSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRangeValue.h b/src/OFRangeValue.h
index 9c4150bc..9c348c55 100644
--- a/src/OFRangeValue.h
+++ b/src/OFRangeValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRangeValue.m b/src/OFRangeValue.m
index d3bf98ae..217206d5 100644
--- a/src/OFRangeValue.m
+++ b/src/OFRangeValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRectangleValue.h b/src/OFRectangleValue.h
index b119f177..b8516d7f 100644
--- a/src/OFRectangleValue.h
+++ b/src/OFRectangleValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRectangleValue.m b/src/OFRectangleValue.m
index 61a06d88..b76412cf 100644
--- a/src/OFRectangleValue.m
+++ b/src/OFRectangleValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRecursiveMutex.h b/src/OFRecursiveMutex.h
index ed2f7d4a..3af324cc 100644
--- a/src/OFRecursiveMutex.h
+++ b/src/OFRecursiveMutex.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRecursiveMutex.m b/src/OFRecursiveMutex.m
index d52a6d55..5336a2b0 100644
--- a/src/OFRecursiveMutex.m
+++ b/src/OFRecursiveMutex.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRunLoop+Private.h b/src/OFRunLoop+Private.h
index f8c345ef..1519e7a3 100644
--- a/src/OFRunLoop+Private.h
+++ b/src/OFRunLoop+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRunLoop.h b/src/OFRunLoop.h
index 21c57de0..96db093c 100644
--- a/src/OFRunLoop.h
+++ b/src/OFRunLoop.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFRunLoop.m b/src/OFRunLoop.m
index 4f4ddb3c..d9ada3fd 100644
--- a/src/OFRunLoop.m
+++ b/src/OFRunLoop.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSHA1Hash.h b/src/OFSHA1Hash.h
index 617db40d..7a15fbc9 100644
--- a/src/OFSHA1Hash.h
+++ b/src/OFSHA1Hash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -39,6 +39,7 @@ OF_SUBCLASSING_RESTRICTED
} buffer;
size_t bufferLength;
} *_iVars;
+ bool _allowsSwappableMemory;
bool _calculated;
}
@end
diff --git a/src/OFSHA1Hash.m b/src/OFSHA1Hash.m
index 3eaa7484..c8e3fc15 100644
--- a/src/OFSHA1Hash.m
+++ b/src/OFSHA1Hash.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -98,6 +98,7 @@ processBlock(uint32_t *state, uint32_t *buffer)
@implementation OFSHA1Hash
@synthesize calculated = _calculated;
+@synthesize allowsSwappableMemory = _allowsSwappableMemory;
+ (size_t)digestSize
{
@@ -109,19 +110,22 @@ processBlock(uint32_t *state, uint32_t *buffer)
return BLOCK_SIZE;
}
-+ (instancetype)cryptoHash
++ (instancetype)cryptoHashWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
- return [[[self alloc] init] autorelease];
+ return [[[self alloc] initWithAllowsSwappableMemory:
+ allowsSwappableMemory] autorelease];
}
-- (instancetype)init
+- (instancetype)initWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
self = [super init];
@try {
_iVarsData = [[OFSecureData alloc]
- initWithCount: sizeof(*_iVars)];
+ initWithCount: sizeof(*_iVars)
+ allowsSwappableMemory: allowsSwappableMemory];
_iVars = _iVarsData.mutableItems;
+ _allowsSwappableMemory = allowsSwappableMemory;
[self of_resetState];
} @catch (id e) {
@@ -132,6 +136,11 @@ processBlock(uint32_t *state, uint32_t *buffer)
return self;
}
+- (instancetype)init
+{
+ OF_INVALID_INIT_METHOD
+}
+
- (instancetype)of_init
{
return [super init];
@@ -160,6 +169,7 @@ processBlock(uint32_t *state, uint32_t *buffer)
copy->_iVarsData = [_iVarsData copy];
copy->_iVars = copy->_iVarsData.mutableItems;
+ copy->_allowsSwappableMemory = _allowsSwappableMemory;
copy->_calculated = _calculated;
return copy;
diff --git a/src/OFSHA224Hash.h b/src/OFSHA224Hash.h
index f3a110e9..903c323f 100644
--- a/src/OFSHA224Hash.h
+++ b/src/OFSHA224Hash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSHA224Hash.m b/src/OFSHA224Hash.m
index d8666c27..cc7b329b 100644
--- a/src/OFSHA224Hash.m
+++ b/src/OFSHA224Hash.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSHA224Or256Hash.h b/src/OFSHA224Or256Hash.h
index 0acf0044..5516f4e9 100644
--- a/src/OFSHA224Or256Hash.h
+++ b/src/OFSHA224Or256Hash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -41,6 +41,7 @@ OF_ASSUME_NONNULL_BEGIN
size_t bufferLength;
} *_iVars;
@private
+ bool _allowsSwappableMemory;
bool _calculated;
OF_RESERVE_IVARS(4)
}
diff --git a/src/OFSHA224Or256Hash.m b/src/OFSHA224Or256Hash.m
index c0a73194..c83d4c50 100644
--- a/src/OFSHA224Or256Hash.m
+++ b/src/OFSHA224Or256Hash.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -119,6 +119,7 @@ processBlock(uint32_t *state, uint32_t *buffer)
@implementation OFSHA224Or256Hash
@synthesize calculated = _calculated;
+@synthesize allowsSwappableMemory = _allowsSwappableMemory;
+ (size_t)digestSize
{
@@ -130,19 +131,22 @@ processBlock(uint32_t *state, uint32_t *buffer)
return BLOCK_SIZE;
}
-+ (instancetype)cryptoHash
++ (instancetype)cryptoHashWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
- return [[[self alloc] init] autorelease];
+ return [[[self alloc] initWithAllowsSwappableMemory:
+ allowsSwappableMemory] autorelease];
}
-- (instancetype)init
+- (instancetype)initWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
self = [super init];
@try {
_iVarsData = [[OFSecureData alloc]
- initWithCount: sizeof(*_iVars)];
+ initWithCount: sizeof(*_iVars)
+ allowsSwappableMemory: allowsSwappableMemory];
_iVars = _iVarsData.mutableItems;
+ _allowsSwappableMemory = allowsSwappableMemory;
if (self.class == [OFSHA224Or256Hash class]) {
[self doesNotRecognizeSelector: _cmd];
@@ -158,6 +162,11 @@ processBlock(uint32_t *state, uint32_t *buffer)
return self;
}
+- (instancetype)init
+{
+ OF_INVALID_INIT_METHOD
+}
+
- (instancetype)of_init
{
return [super init];
@@ -186,6 +195,7 @@ processBlock(uint32_t *state, uint32_t *buffer)
copy->_iVarsData = [_iVarsData copy];
copy->_iVars = copy->_iVarsData.mutableItems;
+ copy->_allowsSwappableMemory = _allowsSwappableMemory;
copy->_calculated = _calculated;
return copy;
diff --git a/src/OFSHA256Hash.h b/src/OFSHA256Hash.h
index 3621ad40..8a43189b 100644
--- a/src/OFSHA256Hash.h
+++ b/src/OFSHA256Hash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSHA256Hash.m b/src/OFSHA256Hash.m
index 5cdad845..72a1d6e2 100644
--- a/src/OFSHA256Hash.m
+++ b/src/OFSHA256Hash.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSHA384Hash.h b/src/OFSHA384Hash.h
index 67c940f8..845ef5fc 100644
--- a/src/OFSHA384Hash.h
+++ b/src/OFSHA384Hash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSHA384Hash.m b/src/OFSHA384Hash.m
index 6a073e91..7b9e8d20 100644
--- a/src/OFSHA384Hash.m
+++ b/src/OFSHA384Hash.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSHA384Or512Hash.h b/src/OFSHA384Or512Hash.h
index 80c8330c..2fd96508 100644
--- a/src/OFSHA384Or512Hash.h
+++ b/src/OFSHA384Or512Hash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -41,6 +41,7 @@ OF_ASSUME_NONNULL_BEGIN
size_t bufferLength;
} *_iVars;
@private
+ bool _allowsSwappableMemory;
bool _calculated;
OF_RESERVE_IVARS(4)
}
diff --git a/src/OFSHA384Or512Hash.m b/src/OFSHA384Or512Hash.m
index e852692f..c0e72f70 100644
--- a/src/OFSHA384Or512Hash.m
+++ b/src/OFSHA384Or512Hash.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -130,6 +130,7 @@ processBlock(uint64_t *state, uint64_t *buffer)
@implementation OFSHA384Or512Hash
@synthesize calculated = _calculated;
+@synthesize allowsSwappableMemory = _allowsSwappableMemory;
+ (size_t)digestSize
{
@@ -141,19 +142,22 @@ processBlock(uint64_t *state, uint64_t *buffer)
return BLOCK_SIZE;
}
-+ (instancetype)cryptoHash
++ (instancetype)cryptoHashWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
- return [[[self alloc] init] autorelease];
+ return [[[self alloc] initWithAllowsSwappableMemory:
+ allowsSwappableMemory] autorelease];
}
-- (instancetype)init
+- (instancetype)initWithAllowsSwappableMemory: (bool)allowsSwappableMemory
{
self = [super init];
@try {
_iVarsData = [[OFSecureData alloc]
- initWithCount: sizeof(*_iVars)];
+ initWithCount: sizeof(*_iVars)
+ allowsSwappableMemory: allowsSwappableMemory];
_iVars = _iVarsData.mutableItems;
+ _allowsSwappableMemory = allowsSwappableMemory;
if (self.class == [OFSHA384Or512Hash class]) {
[self doesNotRecognizeSelector: _cmd];
@@ -169,6 +173,11 @@ processBlock(uint64_t *state, uint64_t *buffer)
return self;
}
+- (instancetype)init
+{
+ OF_INVALID_INIT_METHOD
+}
+
- (instancetype)of_init
{
return [super init];
@@ -197,6 +206,7 @@ processBlock(uint64_t *state, uint64_t *buffer)
copy->_iVarsData = [_iVarsData copy];
copy->_iVars = copy->_iVarsData.mutableItems;
+ copy->_allowsSwappableMemory = _allowsSwappableMemory;
copy->_calculated = _calculated;
return copy;
diff --git a/src/OFSHA512Hash.h b/src/OFSHA512Hash.h
index f6066da3..ef60f7a0 100644
--- a/src/OFSHA512Hash.h
+++ b/src/OFSHA512Hash.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSHA512Hash.m b/src/OFSHA512Hash.m
index 23d7c254..5c14ac69 100644
--- a/src/OFSHA512Hash.m
+++ b/src/OFSHA512Hash.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSandbox.h b/src/OFSandbox.h
index bab25c77..9f2cabec 100644
--- a/src/OFSandbox.h
+++ b/src/OFSandbox.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSandbox.m b/src/OFSandbox.m
index 89d829d6..fe86379b 100644
--- a/src/OFSandbox.m
+++ b/src/OFSandbox.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSecureData.h b/src/OFSecureData.h
index 36f906aa..062bc236 100644
--- a/src/OFSecureData.h
+++ b/src/OFSecureData.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -34,13 +34,13 @@ OF_SUBCLASSING_RESTRICTED
@interface OFSecureData: OFData
{
struct page *_page;
- bool _swappable;
+ bool _allowsSwappableMemory;
}
/*!
- * @brief Whether the OFSecureData is in swappable memory.
+ * @brief Whether the data may be stored in swappable memory.
*/
-@property (readonly, nonatomic, getter=isSwappable) bool swappable;
+@property (readonly, nonatomic) bool allowsSwappableMemory;
/*!
* @brief All items of the OFSecureData as a C array.
@@ -51,27 +51,30 @@ OF_SUBCLASSING_RESTRICTED
@property (readonly, nonatomic) void *mutableItems OF_RETURNS_INNER_POINTER;
/*!
- * @brief Preallocates the specified number of bytes.
+ * @brief Preallocates the specified number of bytes for unswappable memory.
*
- * This is useful to allocate secure memory before enabling a sandbox that does
- * not allow it anymore.
+ * This is useful to allocate unswappable memory before enabling a sandbox that
+ * does not allow it anymore.
*
* @note This may only be called once per thread!
- * @note Preallocated memory is only available for OFSecureData that is smaller
- * than a single page!
+ * @note Preallocated unswappable memory is only available for data that is
+ * smaller than a single page!
*
- * @param size The number of bytes to preallocate
+ * @param size The number of bytes of unswappable memory to preallocate
*/
-+ (void)preallocateMemoryWithSize: (size_t)size;
++ (void)preallocateUnswappableMemoryWithSize: (size_t)size;
/*!
* @brief Creates a new, autoreleased OFSecureData with count items of item
* size 1, all set to zero.
*
* @param count The number of zero items the OFSecureData should contain
+ * @param allowsSwappableMemory Whether the data may be stored in swappable
+ * memory
* @return A new, autoreleased OFSecureData
*/
-+ (instancetype)dataWithCount: (size_t)count;
++ (instancetype)dataWithCount: (size_t)count
+ allowsSwappableMemory: (bool)allowsSwappableMemory;
/*!
* @brief Creates a new, autoreleased OFSecureData with count items of the
@@ -79,27 +82,44 @@ OF_SUBCLASSING_RESTRICTED
*
* @param itemSize The size of a single item in the OFSecureData in bytes
* @param count The number of zero items the OFSecureData should contain
+ * @param allowsSwappableMemory Whether the data may be stored in swappable
+ * memory
* @return A new, autoreleased OFSecureData
*/
+ (instancetype)dataWithItemSize: (size_t)itemSize
- count: (size_t)count;
-
+ count: (size_t)count
+ allowsSwappableMemory: (bool)allowsSwappableMemory;
+
++ (instancetype)dataWithItems: (const void *)items
+ count: (size_t)count OF_UNAVAILABLE;
++ (instancetype)dataWithItems: (const void *)items
+ itemSize: (size_t)itemSize
+ count: (size_t)count OF_UNAVAILABLE;
++ (instancetype)dataWithItemsNoCopy: (void *)items
+ count: (size_t)count
+ freeWhenDone: (bool)freeWhenDone OF_UNAVAILABLE;
++ (instancetype)dataWithItemsNoCopy: (void *)items
+ itemSize: (size_t)itemSize
+ count: (size_t)count
+ freeWhenDone: (bool)freeWhenDone OF_UNAVAILABLE;
#ifdef OF_HAVE_FILES
+ (instancetype)dataWithContentsOfFile: (OFString *)path OF_UNAVAILABLE;
#endif
+ (instancetype)dataWithContentsOfURL: (OFURL *)URL OF_UNAVAILABLE;
+ (instancetype)dataWithStringRepresentation: (OFString *)string OF_UNAVAILABLE;
+ (instancetype)dataWithBase64EncodedString: (OFString *)string OF_UNAVAILABLE;
-+ (instancetype)dataWithSerialization: (OFXMLElement *)element OF_UNAVAILABLE;
/*!
* @brief Initializes an already allocated OFSecureData with count items of
* item size 1, all set to zero.
*
* @param count The number of zero items the OFSecureData should contain
+ * @param allowsSwappableMemory Whether the data may be stored in swappable
+ * memory
* @return An initialized OFSecureData
*/
-- (instancetype)initWithCount: (size_t)count;
+- (instancetype)initWithCount: (size_t)count
+ allowsSwappableMemory: (bool)allowsSwappableMemory;
/*!
* @brief Initializes an already allocated OFSecureData with count items of the
@@ -107,10 +127,34 @@ OF_SUBCLASSING_RESTRICTED
*
* @param itemSize The size of a single item in the OFSecureData in bytes
* @param count The number of zero items the OFSecureData should contain
+ * @param allowsSwappableMemory Whether the data may be stored in swappable
+ * memory
* @return An initialized OFSecureData
*/
- (instancetype)initWithItemSize: (size_t)itemSize
- count: (size_t)count;
+ count: (size_t)count
+ allowsSwappableMemory: (bool)allowsSwappableMemory
+ OF_DESIGNATED_INITIALIZER;
+
+- (instancetype)initWithItems: (const void *)items
+ count: (size_t)count OF_UNAVAILABLE;
+- (instancetype)initWithItems: (const void *)items
+ itemSize: (size_t)itemSize
+ count: (size_t)count OF_UNAVAILABLE;
+- (instancetype)initWithItemsNoCopy: (void *)items
+ count: (size_t)count
+ freeWhenDone: (bool)freeWhenDone OF_UNAVAILABLE;
+- (instancetype)initWithItemsNoCopy: (void *)items
+ itemSize: (size_t)itemSize
+ count: (size_t)count
+ freeWhenDone: (bool)freeWhenDone OF_UNAVAILABLE;
+#ifdef OF_HAVE_FILES
+- (instancetype)initWithContentsOfFile: (OFString *)path OF_UNAVAILABLE;
+#endif
+- (instancetype)initWithContentsOfURL: (OFURL *)URL OF_UNAVAILABLE;
+- (instancetype)initWithStringRepresentation: (OFString *)string OF_UNAVAILABLE;
+- (instancetype)initWithBase64EncodedString: (OFString *)string OF_UNAVAILABLE;
+- (instancetype)initWithSerialization: (OFXMLElement *)element OF_UNAVAILABLE;
/*!
* @brief Returns a specific item of the OFSecureData.
@@ -139,13 +183,6 @@ OF_SUBCLASSING_RESTRICTED
*/
- (void)zero;
-#ifdef OF_HAVE_FILES
-- (instancetype)initWithContentsOfFile: (OFString *)path OF_UNAVAILABLE;
-#endif
-- (instancetype)initWithContentsOfURL: (OFURL *)URL OF_UNAVAILABLE;
-- (instancetype)initWithStringRepresentation: (OFString *)string OF_UNAVAILABLE;
-- (instancetype)initWithBase64EncodedString: (OFString *)string OF_UNAVAILABLE;
-- (instancetype)initWithSerialization: (OFXMLElement *)element OF_UNAVAILABLE;
- (OFString *)stringRepresentation OF_UNAVAILABLE;
- (OFString *)stringByBase64Encoding OF_UNAVAILABLE;
#ifdef OF_HAVE_FILES
diff --git a/src/OFSecureData.m b/src/OFSecureData.m
index 08bab776..9fc90d44 100644
--- a/src/OFSecureData.m
+++ b/src/OFSecureData.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -30,6 +30,7 @@
#import "OFInitializationFailedException.h"
#import "OFInvalidArgumentException.h"
+#import "OFNotImplementedException.h"
#import "OFOutOfMemoryException.h"
#import "OFOutOfRangeException.h"
@@ -39,30 +40,30 @@
#define CHUNK_SIZE 16
+#if defined(HAVE_MMAP) && defined(HAVE_MLOCK) && defined(MAP_ANON)
struct page {
struct page *next, *previous;
void *map;
- bool swappable;
unsigned char *page;
};
-#if defined(OF_HAVE_COMPILER_TLS)
+# if defined(OF_HAVE_COMPILER_TLS)
static thread_local struct page *firstPage = NULL;
static thread_local struct page *lastPage = NULL;
static thread_local struct page **preallocatedPages = NULL;
static thread_local size_t numPreallocatedPages = 0;
-#elif defined(OF_HAVE_THREADS)
+# elif defined(OF_HAVE_THREADS)
static of_tlskey_t firstPageKey, lastPageKey;
static of_tlskey_t preallocatedPagesKey, numPreallocatedPagesKey;
-#else
+# else
static struct page *firstPage = NULL;
static struct page *lastPage = NULL;
static struct page **preallocatedPages = NULL;
static size_t numPreallocatedPages = 0;
-#endif
+# endif
static void *
-mapPages(size_t numPages, bool *swappable)
+mapPages(size_t numPages)
{
size_t pageSize = [OFSystemInfo pageSize];
void *pointer;
@@ -70,39 +71,30 @@ mapPages(size_t numPages, bool *swappable)
if (numPages > SIZE_MAX / pageSize)
@throw [OFOutOfRangeException exception];
-#if defined(HAVE_MMAP) && defined(HAVE_MLOCK) && defined(MAP_ANON)
if ((pointer = mmap(NULL, numPages * pageSize, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANON, -1, 0)) == MAP_FAILED)
@throw [OFOutOfMemoryException
- exceptionWithRequestedSize: pageSize];
+ exceptionWithRequestedSize: numPages * pageSize];
- *swappable = (mlock(pointer, numPages * pageSize) != 0);
-#else
- if ((pointer = malloc(numPages * pageSize)) == NULL)
+ if (mlock(pointer, numPages * pageSize) != 0) {
+ munmap(pointer, numPages * pageSize);
@throw [OFOutOfMemoryException
- exceptionWithRequestedSize: pageSize];
-
- *swappable = true;
-#endif
+ exceptionWithRequestedSize: numPages * pageSize];
+ }
return pointer;
}
static void
-unmapPages(void *pointer, size_t numPages, bool swappable)
+unmapPages(void *pointer, size_t numPages)
{
size_t pageSize = [OFSystemInfo pageSize];
if (numPages > SIZE_MAX / pageSize)
@throw [OFOutOfRangeException exception];
-#if defined(HAVE_MMAP) && defined(HAVE_MLOCK) && defined(MAP_ANON)
- if (!swappable)
- munlock(pointer, numPages * pageSize);
+ munlock(pointer, numPages * pageSize);
munmap(pointer, numPages * pageSize);
-#else
- free(pointer);
-#endif
}
static struct page *
@@ -111,37 +103,37 @@ addPage(bool allowPreallocated)
size_t pageSize = [OFSystemInfo pageSize];
size_t mapSize = OF_ROUND_UP_POW2(8, pageSize / CHUNK_SIZE) / 8;
struct page *page;
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
struct page *lastPage;
-#endif
+# endif
if (allowPreallocated) {
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
uintptr_t numPreallocatedPages =
(uintptr_t)of_tlskey_get(numPreallocatedPagesKey);
-#endif
+# endif
if (numPreallocatedPages > 0) {
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
struct page **preallocatedPages =
of_tlskey_get(preallocatedPagesKey);
-#endif
+# endif
numPreallocatedPages--;
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
OF_ENSURE(of_tlskey_set(numPreallocatedPagesKey,
(void *)numPreallocatedPages));
-#endif
+# endif
page = preallocatedPages[numPreallocatedPages];
if (numPreallocatedPages == 0) {
free(preallocatedPages);
preallocatedPages = NULL;
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
OF_ENSURE(of_tlskey_set(preallocatedPagesKey,
preallocatedPages));
-#endif
+# endif
}
return page;
@@ -156,12 +148,12 @@ addPage(bool allowPreallocated)
@throw [OFOutOfMemoryException
exceptionWithRequestedSize: mapSize];
- page->page = mapPages(1, &page->swappable);
+ page->page = mapPages(1);
of_explicit_memset(page->page, 0, pageSize);
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
lastPage = of_tlskey_get(lastPageKey);
-#endif
+# endif
page->previous = lastPage;
page->next = NULL;
@@ -169,17 +161,17 @@ addPage(bool allowPreallocated)
if (lastPage != NULL)
lastPage->next = page;
-#if defined(OF_HAVE_COMPILER_TLS) || !defined(OF_HAVE_THREADS)
+# if defined(OF_HAVE_COMPILER_TLS) || !defined(OF_HAVE_THREADS)
lastPage = page;
if (firstPage == NULL)
firstPage = page;
-#else
+# else
OF_ENSURE(of_tlskey_set(lastPageKey, page));
if (of_tlskey_get(firstPageKey) == NULL)
OF_ENSURE(of_tlskey_set(firstPageKey, page));
-#endif
+# endif
return page;
}
@@ -195,7 +187,7 @@ removePageIfEmpty(struct page *page)
if (map[i] != 0)
return;
- unmapPages(page->page, 1, page->swappable);
+ unmapPages(page->page, 1);
free(page->map);
if (page->previous != NULL)
@@ -203,17 +195,17 @@ removePageIfEmpty(struct page *page)
if (page->next != NULL)
page->next->previous = page->previous;
-#if defined(OF_HAVE_COMPILER_TLS) || !defined(OF_HAVE_THREADS)
+# if defined(OF_HAVE_COMPILER_TLS) || !defined(OF_HAVE_THREADS)
if (firstPage == page)
firstPage = page->next;
if (lastPage == page)
lastPage = page->previous;
-#else
+# else
if (of_tlskey_get(firstPageKey) == page)
OF_ENSURE(of_tlskey_set(firstPageKey, page->next));
if (of_tlskey_get(lastPageKey) == page)
OF_ENSURE(of_tlskey_set(lastPageKey, page->previous));
-#endif
+# endif
free(page);
}
@@ -263,11 +255,13 @@ freeMemory(struct page *page, void *pointer, size_t bytes)
for (size_t i = 0; i < chunks; i++)
of_bitset_clear(page->map, chunkIndex + i);
}
+#endif
@implementation OFSecureData
-@synthesize swappable = _swappable;
+@synthesize allowsSwappableMemory = _allowsSwappableMemory;
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+#if defined(HAVE_MMAP) && defined(HAVE_MLOCK) && defined(MAP_ANON) && \
+ !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+ (void)initialize
{
if (self != [OFSecureData class])
@@ -281,14 +275,15 @@ freeMemory(struct page *page, void *pointer, size_t bytes)
}
#endif
-+ (void)preallocateMemoryWithSize: (size_t)size
++ (void)preallocateUnswappableMemoryWithSize: (size_t)size
{
+#if defined(HAVE_MMAP) && defined(HAVE_MLOCK) && defined(MAP_ANON)
size_t pageSize = [OFSystemInfo pageSize];
size_t numPages = OF_ROUND_UP_POW2(pageSize, size) / pageSize;
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
struct page **preallocatedPages = of_tlskey_get(preallocatedPagesKey);
size_t numPreallocatedPages;
-#endif
+# endif
if (preallocatedPages != NULL)
@throw [OFInvalidArgumentException exception];
@@ -298,30 +293,68 @@ freeMemory(struct page *page, void *pointer, size_t bytes)
@throw [OFOutOfMemoryException
exceptionWithRequestedSize: numPages * sizeof(struct page)];
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
of_tlskey_set(preallocatedPagesKey, preallocatedPages);
-#endif
+# endif
for (size_t i = 0; i < numPages; i++)
preallocatedPages[i] = addPage(false);
numPreallocatedPages = numPages;
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
of_tlskey_set(numPreallocatedPagesKey,
(void *)(uintptr_t)numPreallocatedPages);
+# endif
+#else
+ @throw [OFNotImplementedException exceptionWithSelector: _cmd
+ object: self];
#endif
}
+ (instancetype)dataWithCount: (size_t)count
+ allowsSwappableMemory: (bool)allowsSwappableMemory
{
- return [[[self alloc] initWithCount: count] autorelease];
+ return [[[self alloc] initWithCount: count
+ allowsSwappableMemory: allowsSwappableMemory]
+ autorelease];
}
+ (instancetype)dataWithItemSize: (size_t)itemSize
count: (size_t)count
+ allowsSwappableMemory: (bool)allowsSwappableMemory
{
return [[[self alloc] initWithItemSize: itemSize
- count: count] autorelease];
+ count: count
+ allowsSwappableMemory: allowsSwappableMemory]
+ autorelease];
+}
+
++ (instancetype)dataWithItems: (const void *)items
+ count: (size_t)count
+{
+ OF_UNRECOGNIZED_SELECTOR
+}
+
++ (instancetype)dataWithItems: (const void *)items
+ itemSize: (size_t)itemSize
+ count: (size_t)count
+{
+ OF_UNRECOGNIZED_SELECTOR
+}
+
++ (instancetype)dataWithItemsNoCopy: (void *)items
+ count: (size_t)count
+ freeWhenDone: (bool)freeWhenDone
+{
+ OF_UNRECOGNIZED_SELECTOR
+}
+
++ (instancetype)dataWithItemsNoCopy: (void *)items
+ itemSize: (size_t)itemSize
+ count: (size_t)count
+ freeWhenDone: (bool)freeWhenDone
+{
+ OF_UNRECOGNIZED_SELECTOR
}
#ifdef OF_HAVE_FILES
@@ -346,35 +379,41 @@ freeMemory(struct page *page, void *pointer, size_t bytes)
OF_UNRECOGNIZED_SELECTOR
}
-+ (instancetype)dataWithSerialization: (OFXMLElement *)element
-{
- OF_UNRECOGNIZED_SELECTOR
-}
- (instancetype)initWithCount: (size_t)count
+ allowsSwappableMemory: (bool)allowsSwappableMemory
{
return [self initWithItemSize: 1
- count: count];
+ count: count
+ allowsSwappableMemory: allowsSwappableMemory];
}
- (instancetype)initWithItemSize: (size_t)itemSize
count: (size_t)count
+ allowsSwappableMemory: (bool)allowsSwappableMemory
{
self = [super init];
@try {
+#if defined(HAVE_MMAP) && defined(HAVE_MLOCK) && defined(MAP_ANON)
size_t pageSize = [OFSystemInfo pageSize];
+#endif
if (count > SIZE_MAX / itemSize)
@throw [OFOutOfRangeException exception];
- if (count * itemSize >= pageSize)
+ if (allowsSwappableMemory) {
+ _items = [self allocMemoryWithSize: itemSize
+ count: count];
+ memset(_items, 0, count * itemSize);
+#if defined(HAVE_MMAP) && defined(HAVE_MLOCK) && defined(MAP_ANON)
+ } else if (count * itemSize >= pageSize)
_items = mapPages(OF_ROUND_UP_POW2(pageSize,
- count * itemSize) / pageSize, &_swappable);
+ count * itemSize) / pageSize);
else {
-#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
+# if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
struct page *lastPage = of_tlskey_get(lastPageKey);
-#endif
+# endif
for (struct page *page = lastPage; page != NULL;
page = page->previous) {
@@ -396,12 +435,17 @@ freeMemory(struct page *page, void *pointer, size_t bytes)
exceptionWithRequestedSize:
count * itemSize];
}
-
- _swappable = _page->swappable;
}
+#else
+ } else
+ @throw [OFNotImplementedException
+ exceptionWithSelector: _cmd
+ object: nil];
+#endif
_itemSize = itemSize;
_count = count;
+ _allowsSwappableMemory = allowsSwappableMemory;
} @catch (id e) {
[self release];
@throw e;
@@ -411,15 +455,23 @@ freeMemory(struct page *page, void *pointer, size_t bytes)
}
- (instancetype)initWithItems: (const void *)items
- itemSize: (size_t)itemSize
count: (size_t)count
{
- self = [self initWithItemSize: itemSize
- count: count];
+ OF_INVALID_INIT_METHOD
+}
- memcpy(_items, items, count * itemSize);
+- (instancetype)initWithItems: (const void *)items
+ itemSize: (size_t)itemSize
+ count: (size_t)count
+{
+ OF_INVALID_INIT_METHOD
+}
- return self;
+- (instancetype)initWithItemsNoCopy: (void *)items
+ count: (size_t)count
+ freeWhenDone: (bool)freeWhenDone
+{
+ OF_INVALID_INIT_METHOD
}
- (instancetype)initWithItemsNoCopy: (void *)items
@@ -427,16 +479,7 @@ freeMemory(struct page *page, void *pointer, size_t bytes)
count: (size_t)count
freeWhenDone: (bool)freeWhenDone
{
- self = [self initWithItems: items
- itemSize: itemSize
- count: count];
-
- if (freeWhenDone) {
- of_explicit_memset(items, 0, count * itemSize);
- free(items);
- }
-
- return self;
+ OF_INVALID_INIT_METHOD
}
#ifdef OF_HAVE_FILES
@@ -468,18 +511,24 @@ freeMemory(struct page *page, void *pointer, size_t bytes)
- (void)dealloc
{
- size_t pageSize = [OFSystemInfo pageSize];
+ [self zero];
+
+#if defined(HAVE_MMAP) && defined(HAVE_MLOCK) && defined(MAP_ANON)
+ if (!_allowsSwappableMemory) {
+ size_t pageSize = [OFSystemInfo pageSize];
- if (_count * _itemSize > pageSize)
- unmapPages(_items,
- OF_ROUND_UP_POW2(pageSize, _count * _itemSize) / pageSize,
- _swappable);
- else if (_page != NULL) {
- if (_items != NULL)
- freeMemory(_page, _items, _count * _itemSize);
+ if (_count * _itemSize > pageSize)
+ unmapPages(_items,
+ OF_ROUND_UP_POW2(pageSize, _count * _itemSize) /
+ pageSize);
+ else if (_page != NULL) {
+ if (_items != NULL)
+ freeMemory(_page, _items, _count * _itemSize);
- removePageIfEmpty(_page);
+ removePageIfEmpty(_page);
+ }
}
+#endif
[super dealloc];
}
@@ -504,16 +553,26 @@ freeMemory(struct page *page, void *pointer, size_t bytes)
- (id)copy
{
- return [[OFSecureData alloc] initWithItems: _items
- itemSize: _itemSize
- count: _count];
+ OFSecureData *copy = [[OFSecureData alloc]
+ initWithItemSize: _itemSize
+ count: _count
+ allowsSwappableMemory: _allowsSwappableMemory];
+
+ memcpy(copy.mutableItems, _items, _count * _itemSize);
+
+ return copy;
}
- (id)mutableCopy
{
- return [[OFSecureData alloc] initWithItems: _items
- itemSize: _itemSize
- count: _count];
+ OFSecureData *copy = [[OFSecureData alloc]
+ initWithItemSize: _itemSize
+ count: _count
+ allowsSwappableMemory: _allowsSwappableMemory];
+
+ memcpy(copy.mutableItems, _items, _count * _itemSize);
+
+ return copy;
}
- (bool)isEqual: (id)object
diff --git a/src/OFSeekableStream.h b/src/OFSeekableStream.h
index 7c12aca5..f8a30009 100644
--- a/src/OFSeekableStream.h
+++ b/src/OFSeekableStream.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSeekableStream.m b/src/OFSeekableStream.m
index 5e71ab76..84451add 100644
--- a/src/OFSeekableStream.m
+++ b/src/OFSeekableStream.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSelectKernelEventObserver.h b/src/OFSelectKernelEventObserver.h
index d1a7e46a..90fa89ab 100644
--- a/src/OFSelectKernelEventObserver.h
+++ b/src/OFSelectKernelEventObserver.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSelectKernelEventObserver.m b/src/OFSelectKernelEventObserver.m
index bdced42e..c0c49990 100644
--- a/src/OFSelectKernelEventObserver.m
+++ b/src/OFSelectKernelEventObserver.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -33,8 +33,6 @@
#import "OFSelectKernelEventObserver.h"
#import "OFArray.h"
-#import "OFKernelEventObserver+Private.h"
-#import "OFKernelEventObserver.h"
#import "OFInitializationFailedException.h"
#import "OFObserveFailedException.h"
@@ -73,7 +71,7 @@
return self;
}
-- (void)of_addObjectForReading: (id <OFReadyForReadingObserving>)object
+- (void)addObjectForReading: (id <OFReadyForReadingObserving>)object
{
int fd = object.fileDescriptorForReading;
@@ -89,9 +87,11 @@
_maxFD = fd;
FD_SET((of_socket_t)fd, &_readFDs);
+
+ [super addObjectForReading: object];
}
-- (void)of_addObjectForWriting: (id <OFReadyForWritingObserving>)object
+- (void)addObjectForWriting: (id <OFReadyForWritingObserving>)object
{
int fd = object.fileDescriptorForWriting;
@@ -107,9 +107,11 @@
_maxFD = fd;
FD_SET((of_socket_t)fd, &_writeFDs);
+
+ [super addObjectForWriting: object];
}
-- (void)of_removeObjectForReading: (id <OFReadyForReadingObserving>)object
+- (void)removeObjectForReading: (id <OFReadyForReadingObserving>)object
{
/* TODO: Adjust _maxFD */
@@ -124,9 +126,11 @@
#endif
FD_CLR((of_socket_t)fd, &_readFDs);
+
+ [super removeObjectForReading: object];
}
-- (void)of_removeObjectForWriting: (id <OFReadyForWritingObserving>)object
+- (void)removeObjectForWriting: (id <OFReadyForWritingObserving>)object
{
/* TODO: Adjust _maxFD */
@@ -141,6 +145,8 @@
#endif
FD_CLR((of_socket_t)fd, &_writeFDs);
+
+ [super removeObjectForWriting: object];
}
- (void)observeForTimeInterval: (of_time_interval_t)timeInterval
@@ -155,8 +161,6 @@
#endif
size_t count;
- [self of_processQueue];
-
if ([self of_processReadBuffers])
return;
diff --git a/src/OFSerialization.h b/src/OFSerialization.h
index 05c2b144..15d82f77 100644
--- a/src/OFSerialization.h
+++ b/src/OFSerialization.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -19,7 +19,7 @@
OF_ASSUME_NONNULL_BEGIN
-#define OF_SERIALIZATION_NS @"https://webkeks.org/objfw/serialization"
+#define OF_SERIALIZATION_NS @"https://objfw.nil.im/serialization"
@class OFXMLElement;
diff --git a/src/OFSet.h b/src/OFSet.h
index e2fc77be..0153685d 100644
--- a/src/OFSet.h
+++ b/src/OFSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSet.m b/src/OFSet.m
index 99185742..849d6345 100644
--- a/src/OFSet.m
+++ b/src/OFSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSettings.h b/src/OFSettings.h
index 33ca7f8b..4c2d0b55 100644
--- a/src/OFSettings.h
+++ b/src/OFSettings.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSettings.m b/src/OFSettings.m
index 5adbadaa..7a0d7ee0 100644
--- a/src/OFSettings.m
+++ b/src/OFSettings.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSortedList.h b/src/OFSortedList.h
index 2e6bd5d7..fa48a2cf 100644
--- a/src/OFSortedList.h
+++ b/src/OFSortedList.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSortedList.m b/src/OFSortedList.m
index dfa743dc..18c23380 100644
--- a/src/OFSortedList.m
+++ b/src/OFSortedList.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFStdIOStream+Private.h b/src/OFStdIOStream+Private.h
index 8dd9f8f6..8c4c7052 100644
--- a/src/OFStdIOStream+Private.h
+++ b/src/OFStdIOStream+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFStdIOStream.h b/src/OFStdIOStream.h
index f0752a6e..febc83d0 100644
--- a/src/OFStdIOStream.h
+++ b/src/OFStdIOStream.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFStdIOStream.m b/src/OFStdIOStream.m
index d7d60d7a..185029e0 100644
--- a/src/OFStdIOStream.m
+++ b/src/OFStdIOStream.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFStream+Private.h b/src/OFStream+Private.h
index 6b58ace6..ea788e59 100644
--- a/src/OFStream+Private.h
+++ b/src/OFStream+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFStream.h b/src/OFStream.h
index 2af84414..578b8bb8 100644
--- a/src/OFStream.h
+++ b/src/OFStream.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFStream.m b/src/OFStream.m
index d0a9381d..a7e30eb2 100644
--- a/src/OFStream.m
+++ b/src/OFStream.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -1909,6 +1909,10 @@
- (void)close
{
+#ifdef OF_HAVE_SOCKETS
+ [self cancelAsyncRequests];
+#endif
+
[self freeMemory: _readBufferMemory];
_readBuffer = _readBufferMemory = NULL;
_readBufferLength = 0;
diff --git a/src/OFStreamSocket.h b/src/OFStreamSocket.h
index 5dfaa639..ab70c9ce 100644
--- a/src/OFStreamSocket.h
+++ b/src/OFStreamSocket.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFStreamSocket.m b/src/OFStreamSocket.m
index eeb5ca09..cc316497 100644
--- a/src/OFStreamSocket.m
+++ b/src/OFStreamSocket.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+CryptoHashing.h b/src/OFString+CryptoHashing.h
index e40e457a..f3bd442e 100644
--- a/src/OFString+CryptoHashing.h
+++ b/src/OFString+CryptoHashing.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+CryptoHashing.m b/src/OFString+CryptoHashing.m
index 131c77b8..a9927108 100644
--- a/src/OFString+CryptoHashing.m
+++ b/src/OFString+CryptoHashing.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -33,7 +33,8 @@ int _OFString_CryptoHashing_reference;
- (OFString *)of_cryptoHashWithClass: (Class <OFCryptoHash>)class
{
void *pool = objc_autoreleasePoolPush();
- id <OFCryptoHash> hash = [class cryptoHash];
+ id <OFCryptoHash> hash = [class
+ cryptoHashWithAllowsSwappableMemory: true];
size_t digestSize = [class digestSize];
const unsigned char *digest;
char cString[digestSize * 2];
diff --git a/src/OFString+JSONValue.h b/src/OFString+JSONValue.h
index 80c933aa..b25e4781 100644
--- a/src/OFString+JSONValue.h
+++ b/src/OFString+JSONValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+JSONValue.m b/src/OFString+JSONValue.m
index 99abfedf..6d496750 100644
--- a/src/OFString+JSONValue.m
+++ b/src/OFString+JSONValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+PathAdditions.h b/src/OFString+PathAdditions.h
index ebc5e1b7..a53d845e 100644
--- a/src/OFString+PathAdditions.h
+++ b/src/OFString+PathAdditions.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+PathAdditions.m b/src/OFString+PathAdditions.m
index a95a4ad4..924e2776 100644
--- a/src/OFString+PathAdditions.m
+++ b/src/OFString+PathAdditions.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+PathAdditions_AmigaOS.m b/src/OFString+PathAdditions_AmigaOS.m
index 54176b5e..4389c6fc 100644
--- a/src/OFString+PathAdditions_AmigaOS.m
+++ b/src/OFString+PathAdditions_AmigaOS.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+PathAdditions_DOS.m b/src/OFString+PathAdditions_DOS.m
index 6ef87451..25be876d 100644
--- a/src/OFString+PathAdditions_DOS.m
+++ b/src/OFString+PathAdditions_DOS.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+PathAdditions_UNIX.m b/src/OFString+PathAdditions_UNIX.m
index 08b5578c..079271ff 100644
--- a/src/OFString+PathAdditions_UNIX.m
+++ b/src/OFString+PathAdditions_UNIX.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+PathAdditions_libfat.m b/src/OFString+PathAdditions_libfat.m
index 1dbbd67f..e9968ff3 100644
--- a/src/OFString+PathAdditions_libfat.m
+++ b/src/OFString+PathAdditions_libfat.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+PropertyListValue.h b/src/OFString+PropertyListValue.h
index 6a8ba342..fd0bbb93 100644
--- a/src/OFString+PropertyListValue.h
+++ b/src/OFString+PropertyListValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+PropertyListValue.m b/src/OFString+PropertyListValue.m
index c6ce70c5..950ecf0f 100644
--- a/src/OFString+PropertyListValue.m
+++ b/src/OFString+PropertyListValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+Serialization.h b/src/OFString+Serialization.h
index cf5b5ead..cbd271e4 100644
--- a/src/OFString+Serialization.h
+++ b/src/OFString+Serialization.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+Serialization.m b/src/OFString+Serialization.m
index 1558e81c..2cb52a1d 100644
--- a/src/OFString+Serialization.m
+++ b/src/OFString+Serialization.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+URLEncoding.h b/src/OFString+URLEncoding.h
index 3be8d8c1..20c91a44 100644
--- a/src/OFString+URLEncoding.h
+++ b/src/OFString+URLEncoding.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+URLEncoding.m b/src/OFString+URLEncoding.m
index f032c4b0..3631a10d 100644
--- a/src/OFString+URLEncoding.m
+++ b/src/OFString+URLEncoding.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+XMLEscaping.h b/src/OFString+XMLEscaping.h
index 7ef479d9..15a5f469 100644
--- a/src/OFString+XMLEscaping.h
+++ b/src/OFString+XMLEscaping.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+XMLEscaping.m b/src/OFString+XMLEscaping.m
index b60dbe68..363a6443 100644
--- a/src/OFString+XMLEscaping.m
+++ b/src/OFString+XMLEscaping.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+XMLUnescaping.h b/src/OFString+XMLUnescaping.h
index 66f48dec..6a3e7b6f 100644
--- a/src/OFString+XMLUnescaping.h
+++ b/src/OFString+XMLUnescaping.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString+XMLUnescaping.m b/src/OFString+XMLUnescaping.m
index d3f59a9f..5a7981fd 100644
--- a/src/OFString+XMLUnescaping.m
+++ b/src/OFString+XMLUnescaping.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString.h b/src/OFString.h
index 9f7f9f85..bfc0ba02 100644
--- a/src/OFString.h
+++ b/src/OFString.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFString.m b/src/OFString.m
index aa6212de..e053d1ff 100644
--- a/src/OFString.m
+++ b/src/OFString.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSubarray.h b/src/OFSubarray.h
index 3fff109b..5007abe0 100644
--- a/src/OFSubarray.h
+++ b/src/OFSubarray.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSubarray.m b/src/OFSubarray.m
index 4b303060..3536f1e7 100644
--- a/src/OFSubarray.m
+++ b/src/OFSubarray.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSystemInfo.h b/src/OFSystemInfo.h
index a3d4974d..919a714a 100644
--- a/src/OFSystemInfo.h
+++ b/src/OFSystemInfo.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFSystemInfo.m b/src/OFSystemInfo.m
index 111f9b28..d81ad790 100644
--- a/src/OFSystemInfo.m
+++ b/src/OFSystemInfo.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTCPSocket+Private.h b/src/OFTCPSocket+Private.h
index 82e28948..4b721638 100644
--- a/src/OFTCPSocket+Private.h
+++ b/src/OFTCPSocket+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTCPSocket.h b/src/OFTCPSocket.h
index 434dbdd2..7b0d8232 100644
--- a/src/OFTCPSocket.h
+++ b/src/OFTCPSocket.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTCPSocket.m b/src/OFTCPSocket.m
index 4d0f0e99..63b3f9e4 100644
--- a/src/OFTCPSocket.m
+++ b/src/OFTCPSocket.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -224,14 +224,36 @@ static uint16_t defaultSOCKS5Port = 1080;
exception: (id)exception
{
if (exception != nil) {
+ /*
+ * self might be retained only by the pending async requests,
+ * which we're about to cancel.
+ */
+ [[self retain] autorelease];
+
+ [sock cancelAsyncRequests];
[sock of_closeSocket];
if (_socketAddressesIndex >= _socketAddresses.count) {
_exception = [exception retain];
[self didConnect];
- } else
- [self tryNextAddressWithRunLoopMode:
- [OFRunLoop currentRunLoop].currentMode];
+ } else {
+ /*
+ * We must not call it before returning, as otherwise
+ * the new socket would be removed from the queue upon
+ * return.
+ */
+ OFRunLoop *runLoop = [OFRunLoop currentRunLoop];
+ SEL selector =
+ @selector(tryNextAddressWithRunLoopMode:);
+ OFTimer *timer = [OFTimer
+ timerWithTimeInterval: 0
+ target: self
+ selector: selector
+ object: runLoop.currentMode
+ repeats: false];
+ [runLoop addTimer: timer
+ forMode: runLoop.currentMode];
+ }
return;
}
diff --git a/src/OFTLSSocket.h b/src/OFTLSSocket.h
index 6a35a4e1..98627962 100644
--- a/src/OFTLSSocket.h
+++ b/src/OFTLSSocket.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTarArchive.h b/src/OFTarArchive.h
index 017bd750..e0de0d66 100644
--- a/src/OFTarArchive.h
+++ b/src/OFTarArchive.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTarArchive.m b/src/OFTarArchive.m
index b779eb28..6530c8c9 100644
--- a/src/OFTarArchive.m
+++ b/src/OFTarArchive.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTarArchiveEntry+Private.h b/src/OFTarArchiveEntry+Private.h
index 4c71caac..84bdd7fd 100644
--- a/src/OFTarArchiveEntry+Private.h
+++ b/src/OFTarArchiveEntry+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTarArchiveEntry.h b/src/OFTarArchiveEntry.h
index 9d936d10..7df8a503 100644
--- a/src/OFTarArchiveEntry.h
+++ b/src/OFTarArchiveEntry.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTarArchiveEntry.m b/src/OFTarArchiveEntry.m
index ec2e3711..834559f7 100644
--- a/src/OFTarArchiveEntry.m
+++ b/src/OFTarArchiveEntry.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFThread+Private.h b/src/OFThread+Private.h
index 9b7ff083..df6abbec 100644
--- a/src/OFThread+Private.h
+++ b/src/OFThread+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFThread.h b/src/OFThread.h
index aac4c747..7f004f01 100644
--- a/src/OFThread.h
+++ b/src/OFThread.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFThread.m b/src/OFThread.m
index 5c2720ac..52324a29 100644
--- a/src/OFThread.m
+++ b/src/OFThread.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTimer+Private.h b/src/OFTimer+Private.h
index 210ed483..cf8efff0 100644
--- a/src/OFTimer+Private.h
+++ b/src/OFTimer+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTimer.h b/src/OFTimer.h
index 113be08d..ac3aa5aa 100644
--- a/src/OFTimer.h
+++ b/src/OFTimer.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTimer.m b/src/OFTimer.m
index 7eb11767..615ba50d 100644
--- a/src/OFTimer.m
+++ b/src/OFTimer.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTriple.h b/src/OFTriple.h
index b23f1648..230855a8 100644
--- a/src/OFTriple.h
+++ b/src/OFTriple.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFTriple.m b/src/OFTriple.m
index 62deda5a..be000a75 100644
--- a/src/OFTriple.m
+++ b/src/OFTriple.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFUDPSocket+Private.h b/src/OFUDPSocket+Private.h
index bd2490a1..eab92df6 100644
--- a/src/OFUDPSocket+Private.h
+++ b/src/OFUDPSocket+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFUDPSocket.h b/src/OFUDPSocket.h
index 1c460921..876dca43 100644
--- a/src/OFUDPSocket.h
+++ b/src/OFUDPSocket.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFUDPSocket.m b/src/OFUDPSocket.m
index e10ef746..0d692789 100644
--- a/src/OFUDPSocket.m
+++ b/src/OFUDPSocket.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFURL.h b/src/OFURL.h
index 422d0ecd..15a8b66d 100644
--- a/src/OFURL.h
+++ b/src/OFURL.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFURL.m b/src/OFURL.m
index be57c5a8..2a1dcdbe 100644
--- a/src/OFURL.m
+++ b/src/OFURL.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFURLHandler.h b/src/OFURLHandler.h
index af4d4749..76aedeb9 100644
--- a/src/OFURLHandler.h
+++ b/src/OFURLHandler.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFURLHandler.m b/src/OFURLHandler.m
index 5db12844..59bd525b 100644
--- a/src/OFURLHandler.m
+++ b/src/OFURLHandler.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFUTF8String+Private.h b/src/OFUTF8String+Private.h
index 701b2f60..d95a41ef 100644
--- a/src/OFUTF8String+Private.h
+++ b/src/OFUTF8String+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFUTF8String.h b/src/OFUTF8String.h
index ee84b3f5..e24a3dbb 100644
--- a/src/OFUTF8String.h
+++ b/src/OFUTF8String.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFUTF8String.m b/src/OFUTF8String.m
index 8f2b92da..1b874db2 100644
--- a/src/OFUTF8String.m
+++ b/src/OFUTF8String.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFValue.h b/src/OFValue.h
index 28b328a6..b6e76c26 100644
--- a/src/OFValue.h
+++ b/src/OFValue.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFValue.m b/src/OFValue.m
index ff45291f..b59a2b29 100644
--- a/src/OFValue.m
+++ b/src/OFValue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFWin32ConsoleStdIOStream.h b/src/OFWin32ConsoleStdIOStream.h
index 33714d0a..e38bf91f 100644
--- a/src/OFWin32ConsoleStdIOStream.h
+++ b/src/OFWin32ConsoleStdIOStream.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFWin32ConsoleStdIOStream.m b/src/OFWin32ConsoleStdIOStream.m
index 66511899..554a6d9a 100644
--- a/src/OFWin32ConsoleStdIOStream.m
+++ b/src/OFWin32ConsoleStdIOStream.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFWindowsRegistryKey.h b/src/OFWindowsRegistryKey.h
index c2015c76..8bd0e562 100644
--- a/src/OFWindowsRegistryKey.h
+++ b/src/OFWindowsRegistryKey.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFWindowsRegistryKey.m b/src/OFWindowsRegistryKey.m
index 07e71ed0..bcf5e866 100644
--- a/src/OFWindowsRegistryKey.m
+++ b/src/OFWindowsRegistryKey.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLAttribute.h b/src/OFXMLAttribute.h
index c659061a..80b19bc3 100644
--- a/src/OFXMLAttribute.h
+++ b/src/OFXMLAttribute.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLAttribute.m b/src/OFXMLAttribute.m
index be21a513..defe875c 100644
--- a/src/OFXMLAttribute.m
+++ b/src/OFXMLAttribute.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLCDATA.h b/src/OFXMLCDATA.h
index 29257bd2..cdd6799d 100644
--- a/src/OFXMLCDATA.h
+++ b/src/OFXMLCDATA.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLCDATA.m b/src/OFXMLCDATA.m
index e69b15e4..fa97ae20 100644
--- a/src/OFXMLCDATA.m
+++ b/src/OFXMLCDATA.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLCharacters.h b/src/OFXMLCharacters.h
index bfcc5d86..df41be4c 100644
--- a/src/OFXMLCharacters.h
+++ b/src/OFXMLCharacters.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLCharacters.m b/src/OFXMLCharacters.m
index 06c6dedf..bac6d62c 100644
--- a/src/OFXMLCharacters.m
+++ b/src/OFXMLCharacters.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLComment.h b/src/OFXMLComment.h
index 043eb533..3fddfa77 100644
--- a/src/OFXMLComment.h
+++ b/src/OFXMLComment.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLComment.m b/src/OFXMLComment.m
index 79d6efc7..3e8cd0b0 100644
--- a/src/OFXMLComment.m
+++ b/src/OFXMLComment.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLElement+Serialization.h b/src/OFXMLElement+Serialization.h
index 13879650..e179f3b1 100644
--- a/src/OFXMLElement+Serialization.h
+++ b/src/OFXMLElement+Serialization.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLElement+Serialization.m b/src/OFXMLElement+Serialization.m
index 5375b612..c0f5809a 100644
--- a/src/OFXMLElement+Serialization.m
+++ b/src/OFXMLElement+Serialization.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLElement.h b/src/OFXMLElement.h
index 94ae7f5f..5b508618 100644
--- a/src/OFXMLElement.h
+++ b/src/OFXMLElement.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLElement.m b/src/OFXMLElement.m
index eb500f71..491f47de 100644
--- a/src/OFXMLElement.m
+++ b/src/OFXMLElement.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLElementBuilder.h b/src/OFXMLElementBuilder.h
index ac0a3560..6258486d 100644
--- a/src/OFXMLElementBuilder.h
+++ b/src/OFXMLElementBuilder.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLElementBuilder.m b/src/OFXMLElementBuilder.m
index a081812c..4d027c59 100644
--- a/src/OFXMLElementBuilder.m
+++ b/src/OFXMLElementBuilder.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLNode+Private.h b/src/OFXMLNode+Private.h
index c69b35e6..62677189 100644
--- a/src/OFXMLNode+Private.h
+++ b/src/OFXMLNode+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLNode.h b/src/OFXMLNode.h
index 4141d0c1..48f9c46b 100644
--- a/src/OFXMLNode.h
+++ b/src/OFXMLNode.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLNode.m b/src/OFXMLNode.m
index bb7e2910..16501cda 100644
--- a/src/OFXMLNode.m
+++ b/src/OFXMLNode.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLParser.h b/src/OFXMLParser.h
index 5c5dc58b..b02021ee 100644
--- a/src/OFXMLParser.h
+++ b/src/OFXMLParser.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLParser.m b/src/OFXMLParser.m
index 6630b71c..3fcadd4b 100644
--- a/src/OFXMLParser.m
+++ b/src/OFXMLParser.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLProcessingInstructions.h b/src/OFXMLProcessingInstructions.h
index 77f19572..0ba16601 100644
--- a/src/OFXMLProcessingInstructions.h
+++ b/src/OFXMLProcessingInstructions.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFXMLProcessingInstructions.m b/src/OFXMLProcessingInstructions.m
index fb461620..56f5ee05 100644
--- a/src/OFXMLProcessingInstructions.m
+++ b/src/OFXMLProcessingInstructions.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFZIPArchive.h b/src/OFZIPArchive.h
index bbb85069..5023562d 100644
--- a/src/OFZIPArchive.h
+++ b/src/OFZIPArchive.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFZIPArchive.m b/src/OFZIPArchive.m
index 1dbb012b..b8ce196a 100644
--- a/src/OFZIPArchive.m
+++ b/src/OFZIPArchive.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -754,7 +754,7 @@ seekOrThrowInvalidFormat(OFSeekableStream *stream,
default:
@throw [OFNotImplementedException
exceptionWithSelector: _cmd
- object: self];
+ object: nil];
}
_entry = [entry copy];
diff --git a/src/OFZIPArchiveEntry+Private.h b/src/OFZIPArchiveEntry+Private.h
index dd55a839..23232528 100644
--- a/src/OFZIPArchiveEntry+Private.h
+++ b/src/OFZIPArchiveEntry+Private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFZIPArchiveEntry.h b/src/OFZIPArchiveEntry.h
index a53cbf72..cda0ce5c 100644
--- a/src/OFZIPArchiveEntry.h
+++ b/src/OFZIPArchiveEntry.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/OFZIPArchiveEntry.m b/src/OFZIPArchiveEntry.m
index 1e7fdda7..b91b21af 100644
--- a/src/OFZIPArchiveEntry.m
+++ b/src/OFZIPArchiveEntry.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/ObjFW.h b/src/ObjFW.h
index 7691f8c6..d6ab23d0 100644
--- a/src/ObjFW.h
+++ b/src/ObjFW.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -254,7 +254,6 @@
#import "crc16.h"
#import "crc32.h"
#import "huffman_tree.h"
-#import "instance.h"
#import "of_asprintf.h"
#import "of_strptime.h"
#import "pbkdf2.h"
diff --git a/src/atomic.h b/src/atomic.h
index 570a9087..328e8383 100644
--- a/src/atomic.h
+++ b/src/atomic.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/atomic_builtins.h b/src/atomic_builtins.h
index fa91976c..a4932877 100644
--- a/src/atomic_builtins.h
+++ b/src/atomic_builtins.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/atomic_no_threads.h b/src/atomic_no_threads.h
index 181c86c8..3311cbbd 100644
--- a/src/atomic_no_threads.h
+++ b/src/atomic_no_threads.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/atomic_osatomic.h b/src/atomic_osatomic.h
index 528d472c..0d24c4da 100644
--- a/src/atomic_osatomic.h
+++ b/src/atomic_osatomic.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/atomic_powerpc.h b/src/atomic_powerpc.h
index 2c9b922e..44e49134 100644
--- a/src/atomic_powerpc.h
+++ b/src/atomic_powerpc.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/atomic_sync_builtins.h b/src/atomic_sync_builtins.h
index 3f1f6bf3..0979af1d 100644
--- a/src/atomic_sync_builtins.h
+++ b/src/atomic_sync_builtins.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/atomic_x86.h b/src/atomic_x86.h
index 8afb8305..27230104 100644
--- a/src/atomic_x86.h
+++ b/src/atomic_x86.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/autorelease.h b/src/autorelease.h
deleted file mode 100644
index 7ad6540a..00000000
--- a/src/autorelease.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
- *
- * All rights reserved.
- *
- * This file is part of ObjFW. It may be distributed under the terms of the
- * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
- * the packaging of this file.
- *
- * Alternatively, it may be distributed under the terms of the GNU General
- * Public License, either version 2 or 3, which can be found in the file
- * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
- * file.
- */
-
-#import "macros.h"
-
-OF_ASSUME_NONNULL_BEGIN
-
-/*! @file */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*!
- * @brief Creates a new autorelease pool.
- *
- * @return An identifier for the created autorelease pool
- */
-extern void *objc_autoreleasePoolPush(void);
-
-/*!
- * @brief Drains an autorelease pool.
- *
- * @param pool An identifier for the pool to drain
- */
-extern void objc_autoreleasePoolPop(void *pool);
-
-/*!
- * @brief Autoreleases an object.
- *
- * @param object The object to autorelease
- * @return The autoreleased object
- */
-extern id _objc_rootAutorelease(id object);
-#ifdef __cplusplus
-}
-#endif
-
-OF_ASSUME_NONNULL_END
diff --git a/src/base64.h b/src/base64.h
index 0d7f6e71..3ccf79ff 100644
--- a/src/base64.h
+++ b/src/base64.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/base64.m b/src/base64.m
index 858df9c3..fcd5fa3b 100644
--- a/src/base64.m
+++ b/src/base64.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/block.h b/src/block.h
index 5b241c67..c5a06035 100644
--- a/src/block.h
+++ b/src/block.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSArray+OFObject.h b/src/bridge/NSArray+OFObject.h
index 3c4bc9cc..d7bf364d 100644
--- a/src/bridge/NSArray+OFObject.h
+++ b/src/bridge/NSArray+OFObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSArray+OFObject.m b/src/bridge/NSArray+OFObject.m
index abe721d6..0eb1c96c 100644
--- a/src/bridge/NSArray+OFObject.m
+++ b/src/bridge/NSArray+OFObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSBridging.h b/src/bridge/NSBridging.h
index dedec186..1591c9b0 100644
--- a/src/bridge/NSBridging.h
+++ b/src/bridge/NSBridging.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSDictionary+OFObject.h b/src/bridge/NSDictionary+OFObject.h
index 121eb4ac..9ac25308 100644
--- a/src/bridge/NSDictionary+OFObject.h
+++ b/src/bridge/NSDictionary+OFObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSDictionary+OFObject.m b/src/bridge/NSDictionary+OFObject.m
index 75f77b13..f8689ed3 100644
--- a/src/bridge/NSDictionary+OFObject.m
+++ b/src/bridge/NSDictionary+OFObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSEnumerator+OFObject.h b/src/bridge/NSEnumerator+OFObject.h
index 3822f95c..5699c41b 100644
--- a/src/bridge/NSEnumerator+OFObject.h
+++ b/src/bridge/NSEnumerator+OFObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSEnumerator+OFObject.m b/src/bridge/NSEnumerator+OFObject.m
index 623cd42d..55e0a8fa 100644
--- a/src/bridge/NSEnumerator+OFObject.m
+++ b/src/bridge/NSEnumerator+OFObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSNumber+OFObject.h b/src/bridge/NSNumber+OFObject.h
index 81f9be0f..d6697a6e 100644
--- a/src/bridge/NSNumber+OFObject.h
+++ b/src/bridge/NSNumber+OFObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSNumber+OFObject.m b/src/bridge/NSNumber+OFObject.m
index f0f1fcdf..74f13e40 100644
--- a/src/bridge/NSNumber+OFObject.m
+++ b/src/bridge/NSNumber+OFObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSOFArray.h b/src/bridge/NSOFArray.h
index 8595ea71..9a8fb34c 100644
--- a/src/bridge/NSOFArray.h
+++ b/src/bridge/NSOFArray.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSOFArray.m b/src/bridge/NSOFArray.m
index fcf11b7a..913ba9fc 100644
--- a/src/bridge/NSOFArray.m
+++ b/src/bridge/NSOFArray.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSOFDictionary.h b/src/bridge/NSOFDictionary.h
index 1b52c64c..93a2ff36 100644
--- a/src/bridge/NSOFDictionary.h
+++ b/src/bridge/NSOFDictionary.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSOFDictionary.m b/src/bridge/NSOFDictionary.m
index f61779f7..ee2f1b66 100644
--- a/src/bridge/NSOFDictionary.m
+++ b/src/bridge/NSOFDictionary.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSOFEnumerator.h b/src/bridge/NSOFEnumerator.h
index b0eef4e8..2fbb00a5 100644
--- a/src/bridge/NSOFEnumerator.h
+++ b/src/bridge/NSOFEnumerator.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSOFEnumerator.m b/src/bridge/NSOFEnumerator.m
index 0704e1dd..93549b20 100644
--- a/src/bridge/NSOFEnumerator.m
+++ b/src/bridge/NSOFEnumerator.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSOFSet.h b/src/bridge/NSOFSet.h
index 56ec72ee..aba94c28 100644
--- a/src/bridge/NSOFSet.h
+++ b/src/bridge/NSOFSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSOFSet.m b/src/bridge/NSOFSet.m
index 9df7033e..d3d1dfea 100644
--- a/src/bridge/NSOFSet.m
+++ b/src/bridge/NSOFSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSSet+OFObject.h b/src/bridge/NSSet+OFObject.h
index ec8ac964..f9290bc9 100644
--- a/src/bridge/NSSet+OFObject.h
+++ b/src/bridge/NSSet+OFObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSSet+OFObject.m b/src/bridge/NSSet+OFObject.m
index c64cba35..1ba1199f 100644
--- a/src/bridge/NSSet+OFObject.m
+++ b/src/bridge/NSSet+OFObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSString+OFObject.h b/src/bridge/NSString+OFObject.h
index 19642114..5b67f142 100644
--- a/src/bridge/NSString+OFObject.h
+++ b/src/bridge/NSString+OFObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/NSString+OFObject.m b/src/bridge/NSString+OFObject.m
index e7d856c8..91c9911a 100644
--- a/src/bridge/NSString+OFObject.m
+++ b/src/bridge/NSString+OFObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFArray+NSObject.h b/src/bridge/OFArray+NSObject.h
index e98e2a8d..7e7120cc 100644
--- a/src/bridge/OFArray+NSObject.h
+++ b/src/bridge/OFArray+NSObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFArray+NSObject.m b/src/bridge/OFArray+NSObject.m
index e29591b9..de186695 100644
--- a/src/bridge/OFArray+NSObject.m
+++ b/src/bridge/OFArray+NSObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFBridging.h b/src/bridge/OFBridging.h
index c2974232..174d8fa7 100644
--- a/src/bridge/OFBridging.h
+++ b/src/bridge/OFBridging.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFDictionary+NSObject.h b/src/bridge/OFDictionary+NSObject.h
index afc81ff8..ae82731c 100644
--- a/src/bridge/OFDictionary+NSObject.h
+++ b/src/bridge/OFDictionary+NSObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFDictionary+NSObject.m b/src/bridge/OFDictionary+NSObject.m
index 1b610c17..3b3c9bd6 100644
--- a/src/bridge/OFDictionary+NSObject.m
+++ b/src/bridge/OFDictionary+NSObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFEnumerator+NSObject.h b/src/bridge/OFEnumerator+NSObject.h
index 4a6912db..fc93fba1 100644
--- a/src/bridge/OFEnumerator+NSObject.h
+++ b/src/bridge/OFEnumerator+NSObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFEnumerator+NSObject.m b/src/bridge/OFEnumerator+NSObject.m
index b98c3eb7..f2e52619 100644
--- a/src/bridge/OFEnumerator+NSObject.m
+++ b/src/bridge/OFEnumerator+NSObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFException+Swift.h b/src/bridge/OFException+Swift.h
index 42b57c7d..faae8b90 100644
--- a/src/bridge/OFException+Swift.h
+++ b/src/bridge/OFException+Swift.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFException+Swift.m b/src/bridge/OFException+Swift.m
index 8cfc1a2c..675fc758 100644
--- a/src/bridge/OFException+Swift.m
+++ b/src/bridge/OFException+Swift.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNSArray.h b/src/bridge/OFNSArray.h
index 657da974..a68d9689 100644
--- a/src/bridge/OFNSArray.h
+++ b/src/bridge/OFNSArray.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNSArray.m b/src/bridge/OFNSArray.m
index 8883371e..d3aa0e6f 100644
--- a/src/bridge/OFNSArray.m
+++ b/src/bridge/OFNSArray.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNSDictionary.h b/src/bridge/OFNSDictionary.h
index 3ea8cbeb..9add0b2d 100644
--- a/src/bridge/OFNSDictionary.h
+++ b/src/bridge/OFNSDictionary.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNSDictionary.m b/src/bridge/OFNSDictionary.m
index ef45040e..d7b91d30 100644
--- a/src/bridge/OFNSDictionary.m
+++ b/src/bridge/OFNSDictionary.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNSEnumerator.h b/src/bridge/OFNSEnumerator.h
index d65a33a5..a03d31cc 100644
--- a/src/bridge/OFNSEnumerator.h
+++ b/src/bridge/OFNSEnumerator.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNSEnumerator.m b/src/bridge/OFNSEnumerator.m
index 79eda2e1..8668515f 100644
--- a/src/bridge/OFNSEnumerator.m
+++ b/src/bridge/OFNSEnumerator.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNSSet.h b/src/bridge/OFNSSet.h
index f476f7f5..6e17c8c2 100644
--- a/src/bridge/OFNSSet.h
+++ b/src/bridge/OFNSSet.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNSSet.m b/src/bridge/OFNSSet.m
index 8d4ff3ae..a473ae1e 100644
--- a/src/bridge/OFNSSet.m
+++ b/src/bridge/OFNSSet.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNumber+NSObject.h b/src/bridge/OFNumber+NSObject.h
index 1620e32b..d1fbd16b 100644
--- a/src/bridge/OFNumber+NSObject.h
+++ b/src/bridge/OFNumber+NSObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFNumber+NSObject.m b/src/bridge/OFNumber+NSObject.m
index 5d8fabbb..c11cf9b4 100644
--- a/src/bridge/OFNumber+NSObject.m
+++ b/src/bridge/OFNumber+NSObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFSet+NSObject.h b/src/bridge/OFSet+NSObject.h
index 4564c2f6..843b2d15 100644
--- a/src/bridge/OFSet+NSObject.h
+++ b/src/bridge/OFSet+NSObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFSet+NSObject.m b/src/bridge/OFSet+NSObject.m
index 13e8240b..8755810d 100644
--- a/src/bridge/OFSet+NSObject.m
+++ b/src/bridge/OFSet+NSObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFString+NSObject.h b/src/bridge/OFString+NSObject.h
index e81b16cf..dda52696 100644
--- a/src/bridge/OFString+NSObject.h
+++ b/src/bridge/OFString+NSObject.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/OFString+NSObject.m b/src/bridge/OFString+NSObject.m
index 39cae65d..914d9c96 100644
--- a/src/bridge/OFString+NSObject.m
+++ b/src/bridge/OFString+NSObject.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/bridge/ObjFWBridge.h b/src/bridge/ObjFWBridge.h
index 459200f6..d5c524e6 100644
--- a/src/bridge/ObjFWBridge.h
+++ b/src/bridge/ObjFWBridge.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/condition.h b/src/condition.h
index 3ca02c2d..94b94459 100644
--- a/src/condition.h
+++ b/src/condition.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/condition.m b/src/condition.m
index 54ccf040..c0c62a7e 100644
--- a/src/condition.m
+++ b/src/condition.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/condition_amiga.m b/src/condition_amiga.m
index bacb352a..2bcbdafa 100644
--- a/src/condition_amiga.m
+++ b/src/condition_amiga.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/condition_pthread.m b/src/condition_pthread.m
index 240d1c2c..5fe32a55 100644
--- a/src/condition_pthread.m
+++ b/src/condition_pthread.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/condition_winapi.m b/src/condition_winapi.m
index 2e195e28..1dee7688 100644
--- a/src/condition_winapi.m
+++ b/src/condition_winapi.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/crc16.h b/src/crc16.h
index 91191269..fe800227 100644
--- a/src/crc16.h
+++ b/src/crc16.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/crc16.m b/src/crc16.m
index 783af96e..60f87ca6 100644
--- a/src/crc16.m
+++ b/src/crc16.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/crc32.h b/src/crc32.h
index 8269c711..ea20f6b5 100644
--- a/src/crc32.h
+++ b/src/crc32.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/crc32.m b/src/crc32.m
index 4898dbce..be51ddc8 100644
--- a/src/crc32.m
+++ b/src/crc32.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/codepage_437.m b/src/encodings/codepage_437.m
index 8b751129..ce5283a0 100644
--- a/src/encodings/codepage_437.m
+++ b/src/encodings/codepage_437.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/codepage_850.m b/src/encodings/codepage_850.m
index 22b2adc2..209ba84d 100644
--- a/src/encodings/codepage_850.m
+++ b/src/encodings/codepage_850.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/codepage_858.m b/src/encodings/codepage_858.m
index 3e79632e..a3a9dfc9 100644
--- a/src/encodings/codepage_858.m
+++ b/src/encodings/codepage_858.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/common.h b/src/encodings/common.h
index 60712ca7..76ca8bb8 100644
--- a/src/encodings/common.h
+++ b/src/encodings/common.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/iso_8859-15.m b/src/encodings/iso_8859-15.m
index 5a6fbd1e..18bfe836 100644
--- a/src/encodings/iso_8859-15.m
+++ b/src/encodings/iso_8859-15.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/iso_8859-2.m b/src/encodings/iso_8859-2.m
index e9532f24..85124512 100644
--- a/src/encodings/iso_8859-2.m
+++ b/src/encodings/iso_8859-2.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/iso_8859-3.m b/src/encodings/iso_8859-3.m
index 98693849..48fe9af3 100644
--- a/src/encodings/iso_8859-3.m
+++ b/src/encodings/iso_8859-3.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/koi8-r.m b/src/encodings/koi8-r.m
index e0b0f2ca..00ceb742 100644
--- a/src/encodings/koi8-r.m
+++ b/src/encodings/koi8-r.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/koi8-u.m b/src/encodings/koi8-u.m
index 4124d3e6..b1e02fae 100644
--- a/src/encodings/koi8-u.m
+++ b/src/encodings/koi8-u.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/mac_roman.m b/src/encodings/mac_roman.m
index c1f2173e..5d3156eb 100644
--- a/src/encodings/mac_roman.m
+++ b/src/encodings/mac_roman.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/windows-1251.m b/src/encodings/windows-1251.m
index 3de4ea11..afdfcf85 100644
--- a/src/encodings/windows-1251.m
+++ b/src/encodings/windows-1251.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/encodings/windows-1252.m b/src/encodings/windows-1252.m
index a86d5fa1..5ddb17d9 100644
--- a/src/encodings/windows-1252.m
+++ b/src/encodings/windows-1252.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFAcceptFailedException.h b/src/exceptions/OFAcceptFailedException.h
index ab60e66b..708d6b72 100644
--- a/src/exceptions/OFAcceptFailedException.h
+++ b/src/exceptions/OFAcceptFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFAcceptFailedException.m b/src/exceptions/OFAcceptFailedException.m
index 4365ffe3..27f326d9 100644
--- a/src/exceptions/OFAcceptFailedException.m
+++ b/src/exceptions/OFAcceptFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFAllocFailedException.h b/src/exceptions/OFAllocFailedException.h
index 21bba389..16cd9834 100644
--- a/src/exceptions/OFAllocFailedException.h
+++ b/src/exceptions/OFAllocFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFAllocFailedException.m b/src/exceptions/OFAllocFailedException.m
index e11bef00..c25bc3b5 100644
--- a/src/exceptions/OFAllocFailedException.m
+++ b/src/exceptions/OFAllocFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFAlreadyConnectedException.h b/src/exceptions/OFAlreadyConnectedException.h
index 69ce1435..7922fe75 100644
--- a/src/exceptions/OFAlreadyConnectedException.h
+++ b/src/exceptions/OFAlreadyConnectedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFAlreadyConnectedException.m b/src/exceptions/OFAlreadyConnectedException.m
index a229f463..4ef449ba 100644
--- a/src/exceptions/OFAlreadyConnectedException.m
+++ b/src/exceptions/OFAlreadyConnectedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFBindFailedException.h b/src/exceptions/OFBindFailedException.h
index c0fd37f3..98a10f3c 100644
--- a/src/exceptions/OFBindFailedException.h
+++ b/src/exceptions/OFBindFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFBindFailedException.m b/src/exceptions/OFBindFailedException.m
index eb554fa1..86d6e18f 100644
--- a/src/exceptions/OFBindFailedException.m
+++ b/src/exceptions/OFBindFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFChangeCurrentDirectoryPathFailedException.h b/src/exceptions/OFChangeCurrentDirectoryPathFailedException.h
index d861c166..bec3c17a 100644
--- a/src/exceptions/OFChangeCurrentDirectoryPathFailedException.h
+++ b/src/exceptions/OFChangeCurrentDirectoryPathFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFChangeCurrentDirectoryPathFailedException.m b/src/exceptions/OFChangeCurrentDirectoryPathFailedException.m
index 7150d5f6..a5fee9e5 100644
--- a/src/exceptions/OFChangeCurrentDirectoryPathFailedException.m
+++ b/src/exceptions/OFChangeCurrentDirectoryPathFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFChecksumMismatchException.h b/src/exceptions/OFChecksumMismatchException.h
index 005e3626..a96a7f05 100644
--- a/src/exceptions/OFChecksumMismatchException.h
+++ b/src/exceptions/OFChecksumMismatchException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFChecksumMismatchException.m b/src/exceptions/OFChecksumMismatchException.m
index 28cbbd2f..cf5b0c92 100644
--- a/src/exceptions/OFChecksumMismatchException.m
+++ b/src/exceptions/OFChecksumMismatchException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConditionBroadcastFailedException.h b/src/exceptions/OFConditionBroadcastFailedException.h
index 5d5d755b..073bcdbe 100644
--- a/src/exceptions/OFConditionBroadcastFailedException.h
+++ b/src/exceptions/OFConditionBroadcastFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConditionBroadcastFailedException.m b/src/exceptions/OFConditionBroadcastFailedException.m
index 4ef07ae7..108863f3 100644
--- a/src/exceptions/OFConditionBroadcastFailedException.m
+++ b/src/exceptions/OFConditionBroadcastFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConditionSignalFailedException.h b/src/exceptions/OFConditionSignalFailedException.h
index 7b8782ef..ba070afb 100644
--- a/src/exceptions/OFConditionSignalFailedException.h
+++ b/src/exceptions/OFConditionSignalFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConditionSignalFailedException.m b/src/exceptions/OFConditionSignalFailedException.m
index 9d1f1cfc..d1636238 100644
--- a/src/exceptions/OFConditionSignalFailedException.m
+++ b/src/exceptions/OFConditionSignalFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConditionStillWaitingException.h b/src/exceptions/OFConditionStillWaitingException.h
index fd1b7d61..60b35e96 100644
--- a/src/exceptions/OFConditionStillWaitingException.h
+++ b/src/exceptions/OFConditionStillWaitingException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConditionStillWaitingException.m b/src/exceptions/OFConditionStillWaitingException.m
index c5b97b43..b4c69a59 100644
--- a/src/exceptions/OFConditionStillWaitingException.m
+++ b/src/exceptions/OFConditionStillWaitingException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConditionWaitFailedException.h b/src/exceptions/OFConditionWaitFailedException.h
index df788f61..41931a29 100644
--- a/src/exceptions/OFConditionWaitFailedException.h
+++ b/src/exceptions/OFConditionWaitFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConditionWaitFailedException.m b/src/exceptions/OFConditionWaitFailedException.m
index f73077af..a0947041 100644
--- a/src/exceptions/OFConditionWaitFailedException.m
+++ b/src/exceptions/OFConditionWaitFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConnectionFailedException.h b/src/exceptions/OFConnectionFailedException.h
index a744fea7..50a9e03f 100644
--- a/src/exceptions/OFConnectionFailedException.h
+++ b/src/exceptions/OFConnectionFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFConnectionFailedException.m b/src/exceptions/OFConnectionFailedException.m
index b0a5f5cb..06cea3ce 100644
--- a/src/exceptions/OFConnectionFailedException.m
+++ b/src/exceptions/OFConnectionFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFCopyItemFailedException.h b/src/exceptions/OFCopyItemFailedException.h
index 9fc87320..3bdc1082 100644
--- a/src/exceptions/OFCopyItemFailedException.h
+++ b/src/exceptions/OFCopyItemFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFCopyItemFailedException.m b/src/exceptions/OFCopyItemFailedException.m
index b4c99cd4..d9a8cfc5 100644
--- a/src/exceptions/OFCopyItemFailedException.m
+++ b/src/exceptions/OFCopyItemFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFCreateDirectoryFailedException.h b/src/exceptions/OFCreateDirectoryFailedException.h
index 94dbed44..86ae0da0 100644
--- a/src/exceptions/OFCreateDirectoryFailedException.h
+++ b/src/exceptions/OFCreateDirectoryFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFCreateDirectoryFailedException.m b/src/exceptions/OFCreateDirectoryFailedException.m
index bd6f9703..45ce7bb9 100644
--- a/src/exceptions/OFCreateDirectoryFailedException.m
+++ b/src/exceptions/OFCreateDirectoryFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFCreateSymbolicLinkFailedException.h b/src/exceptions/OFCreateSymbolicLinkFailedException.h
index 3e941c67..81dd436c 100644
--- a/src/exceptions/OFCreateSymbolicLinkFailedException.h
+++ b/src/exceptions/OFCreateSymbolicLinkFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFCreateSymbolicLinkFailedException.m b/src/exceptions/OFCreateSymbolicLinkFailedException.m
index 3acdb7d5..241247ee 100644
--- a/src/exceptions/OFCreateSymbolicLinkFailedException.m
+++ b/src/exceptions/OFCreateSymbolicLinkFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFCreateWindowsRegistryKeyFailedException.h b/src/exceptions/OFCreateWindowsRegistryKeyFailedException.h
index 664a203d..93e0bce1 100644
--- a/src/exceptions/OFCreateWindowsRegistryKeyFailedException.h
+++ b/src/exceptions/OFCreateWindowsRegistryKeyFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFCreateWindowsRegistryKeyFailedException.m b/src/exceptions/OFCreateWindowsRegistryKeyFailedException.m
index f9011962..7eb712af 100644
--- a/src/exceptions/OFCreateWindowsRegistryKeyFailedException.m
+++ b/src/exceptions/OFCreateWindowsRegistryKeyFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFDNSQueryFailedException.h b/src/exceptions/OFDNSQueryFailedException.h
index f111a398..0c602200 100644
--- a/src/exceptions/OFDNSQueryFailedException.h
+++ b/src/exceptions/OFDNSQueryFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFDNSQueryFailedException.m b/src/exceptions/OFDNSQueryFailedException.m
index c3eaaff3..4e783a49 100644
--- a/src/exceptions/OFDNSQueryFailedException.m
+++ b/src/exceptions/OFDNSQueryFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFDeleteWindowsRegistryKeyFailedException.h b/src/exceptions/OFDeleteWindowsRegistryKeyFailedException.h
index 27d28aee..69557ff4 100644
--- a/src/exceptions/OFDeleteWindowsRegistryKeyFailedException.h
+++ b/src/exceptions/OFDeleteWindowsRegistryKeyFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFDeleteWindowsRegistryKeyFailedException.m b/src/exceptions/OFDeleteWindowsRegistryKeyFailedException.m
index 54163fbb..ef5864e8 100644
--- a/src/exceptions/OFDeleteWindowsRegistryKeyFailedException.m
+++ b/src/exceptions/OFDeleteWindowsRegistryKeyFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFDeleteWindowsRegistryValueFailedException.h b/src/exceptions/OFDeleteWindowsRegistryValueFailedException.h
index 4e2ac345..f772724d 100644
--- a/src/exceptions/OFDeleteWindowsRegistryValueFailedException.h
+++ b/src/exceptions/OFDeleteWindowsRegistryValueFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFDeleteWindowsRegistryValueFailedException.m b/src/exceptions/OFDeleteWindowsRegistryValueFailedException.m
index aaf03afa..1ea26a2b 100644
--- a/src/exceptions/OFDeleteWindowsRegistryValueFailedException.m
+++ b/src/exceptions/OFDeleteWindowsRegistryValueFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFEnumerationMutationException.h b/src/exceptions/OFEnumerationMutationException.h
index 44fe9439..0a75f49a 100644
--- a/src/exceptions/OFEnumerationMutationException.h
+++ b/src/exceptions/OFEnumerationMutationException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFEnumerationMutationException.m b/src/exceptions/OFEnumerationMutationException.m
index 328f0efd..54c42051 100644
--- a/src/exceptions/OFEnumerationMutationException.m
+++ b/src/exceptions/OFEnumerationMutationException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFException.h b/src/exceptions/OFException.h
index 7af54892..6793c119 100644
--- a/src/exceptions/OFException.h
+++ b/src/exceptions/OFException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFException.m b/src/exceptions/OFException.m
index eeb7e151..5158ab90 100644
--- a/src/exceptions/OFException.m
+++ b/src/exceptions/OFException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFGetCurrentDirectoryPathFailedException.h b/src/exceptions/OFGetCurrentDirectoryPathFailedException.h
index 3ce0bc45..78e4eb8b 100644
--- a/src/exceptions/OFGetCurrentDirectoryPathFailedException.h
+++ b/src/exceptions/OFGetCurrentDirectoryPathFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFGetCurrentDirectoryPathFailedException.m b/src/exceptions/OFGetCurrentDirectoryPathFailedException.m
index e867b851..1f2b1717 100644
--- a/src/exceptions/OFGetCurrentDirectoryPathFailedException.m
+++ b/src/exceptions/OFGetCurrentDirectoryPathFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFGetOptionFailedException.h b/src/exceptions/OFGetOptionFailedException.h
index 8dd9acf3..00ffd84d 100644
--- a/src/exceptions/OFGetOptionFailedException.h
+++ b/src/exceptions/OFGetOptionFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFGetOptionFailedException.m b/src/exceptions/OFGetOptionFailedException.m
index 730b395a..07e23441 100644
--- a/src/exceptions/OFGetOptionFailedException.m
+++ b/src/exceptions/OFGetOptionFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFGetWindowsRegistryValueFailedException.h b/src/exceptions/OFGetWindowsRegistryValueFailedException.h
index 74d5d844..8728d30a 100644
--- a/src/exceptions/OFGetWindowsRegistryValueFailedException.h
+++ b/src/exceptions/OFGetWindowsRegistryValueFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFGetWindowsRegistryValueFailedException.m b/src/exceptions/OFGetWindowsRegistryValueFailedException.m
index 538afdcc..9409fb1d 100644
--- a/src/exceptions/OFGetWindowsRegistryValueFailedException.m
+++ b/src/exceptions/OFGetWindowsRegistryValueFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFHTTPRequestFailedException.h b/src/exceptions/OFHTTPRequestFailedException.h
index 0bb5ca24..50f4ca72 100644
--- a/src/exceptions/OFHTTPRequestFailedException.h
+++ b/src/exceptions/OFHTTPRequestFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFHTTPRequestFailedException.m b/src/exceptions/OFHTTPRequestFailedException.m
index a4254538..a43a6b6d 100644
--- a/src/exceptions/OFHTTPRequestFailedException.m
+++ b/src/exceptions/OFHTTPRequestFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFHashAlreadyCalculatedException.h b/src/exceptions/OFHashAlreadyCalculatedException.h
index 8fe009fd..b1264de8 100644
--- a/src/exceptions/OFHashAlreadyCalculatedException.h
+++ b/src/exceptions/OFHashAlreadyCalculatedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFHashAlreadyCalculatedException.m b/src/exceptions/OFHashAlreadyCalculatedException.m
index e00e3e0f..6b5bcfc5 100644
--- a/src/exceptions/OFHashAlreadyCalculatedException.m
+++ b/src/exceptions/OFHashAlreadyCalculatedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInitializationFailedException.h b/src/exceptions/OFInitializationFailedException.h
index 4e4f860b..135ead0a 100644
--- a/src/exceptions/OFInitializationFailedException.h
+++ b/src/exceptions/OFInitializationFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInitializationFailedException.m b/src/exceptions/OFInitializationFailedException.m
index 262490c5..31166cff 100644
--- a/src/exceptions/OFInitializationFailedException.m
+++ b/src/exceptions/OFInitializationFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidArgumentException.h b/src/exceptions/OFInvalidArgumentException.h
index 8bdcf40d..fe5e6a46 100644
--- a/src/exceptions/OFInvalidArgumentException.h
+++ b/src/exceptions/OFInvalidArgumentException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidArgumentException.m b/src/exceptions/OFInvalidArgumentException.m
index f2d79da5..c64e37fe 100644
--- a/src/exceptions/OFInvalidArgumentException.m
+++ b/src/exceptions/OFInvalidArgumentException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidEncodingException.h b/src/exceptions/OFInvalidEncodingException.h
index cc6b3383..17714648 100644
--- a/src/exceptions/OFInvalidEncodingException.h
+++ b/src/exceptions/OFInvalidEncodingException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidEncodingException.m b/src/exceptions/OFInvalidEncodingException.m
index 8f676db8..7e133d76 100644
--- a/src/exceptions/OFInvalidEncodingException.m
+++ b/src/exceptions/OFInvalidEncodingException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidFormatException.h b/src/exceptions/OFInvalidFormatException.h
index e791bb62..7246636e 100644
--- a/src/exceptions/OFInvalidFormatException.h
+++ b/src/exceptions/OFInvalidFormatException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidFormatException.m b/src/exceptions/OFInvalidFormatException.m
index 7f28cc4e..07178585 100644
--- a/src/exceptions/OFInvalidFormatException.m
+++ b/src/exceptions/OFInvalidFormatException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidJSONException.h b/src/exceptions/OFInvalidJSONException.h
index 060848e5..9d380762 100644
--- a/src/exceptions/OFInvalidJSONException.h
+++ b/src/exceptions/OFInvalidJSONException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidJSONException.m b/src/exceptions/OFInvalidJSONException.m
index ee7d10b2..0faade48 100644
--- a/src/exceptions/OFInvalidJSONException.m
+++ b/src/exceptions/OFInvalidJSONException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidServerReplyException.h b/src/exceptions/OFInvalidServerReplyException.h
index c7c83629..cf839103 100644
--- a/src/exceptions/OFInvalidServerReplyException.h
+++ b/src/exceptions/OFInvalidServerReplyException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFInvalidServerReplyException.m b/src/exceptions/OFInvalidServerReplyException.m
index 5c1f2808..525e7184 100644
--- a/src/exceptions/OFInvalidServerReplyException.m
+++ b/src/exceptions/OFInvalidServerReplyException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFLinkFailedException.h b/src/exceptions/OFLinkFailedException.h
index 8650a09f..1fe7da80 100644
--- a/src/exceptions/OFLinkFailedException.h
+++ b/src/exceptions/OFLinkFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFLinkFailedException.m b/src/exceptions/OFLinkFailedException.m
index 9acb9155..0b8fc595 100644
--- a/src/exceptions/OFLinkFailedException.m
+++ b/src/exceptions/OFLinkFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFListenFailedException.h b/src/exceptions/OFListenFailedException.h
index cf142529..62520e92 100644
--- a/src/exceptions/OFListenFailedException.h
+++ b/src/exceptions/OFListenFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFListenFailedException.m b/src/exceptions/OFListenFailedException.m
index c228ecc8..e3329be1 100644
--- a/src/exceptions/OFListenFailedException.m
+++ b/src/exceptions/OFListenFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFLoadPluginFailedException.h b/src/exceptions/OFLoadPluginFailedException.h
index 78efeb8f..df31aafa 100644
--- a/src/exceptions/OFLoadPluginFailedException.h
+++ b/src/exceptions/OFLoadPluginFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFLoadPluginFailedException.m b/src/exceptions/OFLoadPluginFailedException.m
index 071d5998..9986e40a 100644
--- a/src/exceptions/OFLoadPluginFailedException.m
+++ b/src/exceptions/OFLoadPluginFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFLockFailedException.h b/src/exceptions/OFLockFailedException.h
index 528f45c9..02892014 100644
--- a/src/exceptions/OFLockFailedException.h
+++ b/src/exceptions/OFLockFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFLockFailedException.m b/src/exceptions/OFLockFailedException.m
index 66abd5f5..b6559861 100644
--- a/src/exceptions/OFLockFailedException.m
+++ b/src/exceptions/OFLockFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFMalformedXMLException.h b/src/exceptions/OFMalformedXMLException.h
index 78967b06..09c35a37 100644
--- a/src/exceptions/OFMalformedXMLException.h
+++ b/src/exceptions/OFMalformedXMLException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFMalformedXMLException.m b/src/exceptions/OFMalformedXMLException.m
index b76ee85f..388af5ad 100644
--- a/src/exceptions/OFMalformedXMLException.m
+++ b/src/exceptions/OFMalformedXMLException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFMemoryNotPartOfObjectException.h b/src/exceptions/OFMemoryNotPartOfObjectException.h
index 2c2ac783..dedab584 100644
--- a/src/exceptions/OFMemoryNotPartOfObjectException.h
+++ b/src/exceptions/OFMemoryNotPartOfObjectException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFMemoryNotPartOfObjectException.m b/src/exceptions/OFMemoryNotPartOfObjectException.m
index 9d15d300..87c9b36c 100644
--- a/src/exceptions/OFMemoryNotPartOfObjectException.m
+++ b/src/exceptions/OFMemoryNotPartOfObjectException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFMoveItemFailedException.h b/src/exceptions/OFMoveItemFailedException.h
index 969daf03..bd3da72c 100644
--- a/src/exceptions/OFMoveItemFailedException.h
+++ b/src/exceptions/OFMoveItemFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFMoveItemFailedException.m b/src/exceptions/OFMoveItemFailedException.m
index 2ae8f5c4..f5ba4a54 100644
--- a/src/exceptions/OFMoveItemFailedException.m
+++ b/src/exceptions/OFMoveItemFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFNotImplementedException.h b/src/exceptions/OFNotImplementedException.h
index 6b5bcf95..f251bbfa 100644
--- a/src/exceptions/OFNotImplementedException.h
+++ b/src/exceptions/OFNotImplementedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -29,7 +29,7 @@ OF_ASSUME_NONNULL_BEGIN
@interface OFNotImplementedException: OFException
{
SEL _selector;
- id _object;
+ id _Nullable _object;
}
/*!
@@ -52,7 +52,7 @@ OF_ASSUME_NONNULL_BEGIN
* @return A new, autoreleased not implemented exception
*/
+ (instancetype)exceptionWithSelector: (SEL)selector
- object: (id)object;
+ object: (nullable id)object;
- (instancetype)init OF_UNAVAILABLE;
@@ -64,7 +64,7 @@ OF_ASSUME_NONNULL_BEGIN
* @return An initialized not implemented exception
*/
- (instancetype)initWithSelector: (SEL)selector
- object: (id)object OF_DESIGNATED_INITIALIZER;
+ object: (nullable id)object OF_DESIGNATED_INITIALIZER;
@end
OF_ASSUME_NONNULL_END
diff --git a/src/exceptions/OFNotImplementedException.m b/src/exceptions/OFNotImplementedException.m
index 0c4a8fd7..d5064f35 100644
--- a/src/exceptions/OFNotImplementedException.m
+++ b/src/exceptions/OFNotImplementedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -60,8 +60,15 @@
- (OFString *)description
{
- return [OFString stringWithFormat:
- @"The selector %s is not understood by an object of type %@ or not "
- @"(fully) implemented!", sel_getName(_selector), [_object class]];
+ if (_object != nil)
+ return [OFString stringWithFormat:
+ @"The selector %s is not understood by an object of type "
+ @"%@ or not (fully) implemented!",
+ sel_getName(_selector), [_object class]];
+ else
+ return [OFString stringWithFormat:
+ @"The selector %s is not understood by an unknown object "
+ @"or not (fully) implemented!",
+ sel_getName(_selector)];
}
@end
diff --git a/src/exceptions/OFNotOpenException.h b/src/exceptions/OFNotOpenException.h
index bc790ccf..efbe6bf3 100644
--- a/src/exceptions/OFNotOpenException.h
+++ b/src/exceptions/OFNotOpenException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFNotOpenException.m b/src/exceptions/OFNotOpenException.m
index 6311723a..0a40120c 100644
--- a/src/exceptions/OFNotOpenException.m
+++ b/src/exceptions/OFNotOpenException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFObserveFailedException.h b/src/exceptions/OFObserveFailedException.h
index 4b6c3562..51cd86a6 100644
--- a/src/exceptions/OFObserveFailedException.h
+++ b/src/exceptions/OFObserveFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFObserveFailedException.m b/src/exceptions/OFObserveFailedException.m
index 38814afa..757f990b 100644
--- a/src/exceptions/OFObserveFailedException.m
+++ b/src/exceptions/OFObserveFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFOpenItemFailedException.h b/src/exceptions/OFOpenItemFailedException.h
index 8692b405..e54189ad 100644
--- a/src/exceptions/OFOpenItemFailedException.h
+++ b/src/exceptions/OFOpenItemFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFOpenItemFailedException.m b/src/exceptions/OFOpenItemFailedException.m
index ad6d511a..805fdcb7 100644
--- a/src/exceptions/OFOpenItemFailedException.m
+++ b/src/exceptions/OFOpenItemFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFOpenWindowsRegistryKeyFailedException.h b/src/exceptions/OFOpenWindowsRegistryKeyFailedException.h
index 1a4a66de..8305c69f 100644
--- a/src/exceptions/OFOpenWindowsRegistryKeyFailedException.h
+++ b/src/exceptions/OFOpenWindowsRegistryKeyFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFOpenWindowsRegistryKeyFailedException.m b/src/exceptions/OFOpenWindowsRegistryKeyFailedException.m
index de70146f..29009fc1 100644
--- a/src/exceptions/OFOpenWindowsRegistryKeyFailedException.m
+++ b/src/exceptions/OFOpenWindowsRegistryKeyFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFOutOfMemoryException.h b/src/exceptions/OFOutOfMemoryException.h
index 073096ba..fc482188 100644
--- a/src/exceptions/OFOutOfMemoryException.h
+++ b/src/exceptions/OFOutOfMemoryException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFOutOfMemoryException.m b/src/exceptions/OFOutOfMemoryException.m
index b1854f8d..15f4c137 100644
--- a/src/exceptions/OFOutOfMemoryException.m
+++ b/src/exceptions/OFOutOfMemoryException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFOutOfRangeException.h b/src/exceptions/OFOutOfRangeException.h
index 8eb10b8b..b4b28fad 100644
--- a/src/exceptions/OFOutOfRangeException.h
+++ b/src/exceptions/OFOutOfRangeException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFOutOfRangeException.m b/src/exceptions/OFOutOfRangeException.m
index 3be7cdab..9e2cfb1d 100644
--- a/src/exceptions/OFOutOfRangeException.m
+++ b/src/exceptions/OFOutOfRangeException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFReadFailedException.h b/src/exceptions/OFReadFailedException.h
index 88793cce..73b4aad8 100644
--- a/src/exceptions/OFReadFailedException.h
+++ b/src/exceptions/OFReadFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFReadFailedException.m b/src/exceptions/OFReadFailedException.m
index 125b0f87..6c2213bf 100644
--- a/src/exceptions/OFReadFailedException.m
+++ b/src/exceptions/OFReadFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFReadOrWriteFailedException.h b/src/exceptions/OFReadOrWriteFailedException.h
index 7d72fa5f..05bb5fae 100644
--- a/src/exceptions/OFReadOrWriteFailedException.h
+++ b/src/exceptions/OFReadOrWriteFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFReadOrWriteFailedException.m b/src/exceptions/OFReadOrWriteFailedException.m
index eb2f70db..c67342e6 100644
--- a/src/exceptions/OFReadOrWriteFailedException.m
+++ b/src/exceptions/OFReadOrWriteFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFRemoveItemFailedException.h b/src/exceptions/OFRemoveItemFailedException.h
index 6b3cbc26..e00902f7 100644
--- a/src/exceptions/OFRemoveItemFailedException.h
+++ b/src/exceptions/OFRemoveItemFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFRemoveItemFailedException.m b/src/exceptions/OFRemoveItemFailedException.m
index 4450f4f6..77930e49 100644
--- a/src/exceptions/OFRemoveItemFailedException.m
+++ b/src/exceptions/OFRemoveItemFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFResolveHostFailedException.h b/src/exceptions/OFResolveHostFailedException.h
index 8b361509..fc12d39c 100644
--- a/src/exceptions/OFResolveHostFailedException.h
+++ b/src/exceptions/OFResolveHostFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFResolveHostFailedException.m b/src/exceptions/OFResolveHostFailedException.m
index 92702467..4d80809e 100644
--- a/src/exceptions/OFResolveHostFailedException.m
+++ b/src/exceptions/OFResolveHostFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFRetrieveItemAttributesFailedException.h b/src/exceptions/OFRetrieveItemAttributesFailedException.h
index 3e90abc4..43a4974e 100644
--- a/src/exceptions/OFRetrieveItemAttributesFailedException.h
+++ b/src/exceptions/OFRetrieveItemAttributesFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFRetrieveItemAttributesFailedException.m b/src/exceptions/OFRetrieveItemAttributesFailedException.m
index e68ce961..f32a48b4 100644
--- a/src/exceptions/OFRetrieveItemAttributesFailedException.m
+++ b/src/exceptions/OFRetrieveItemAttributesFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSandboxActivationFailedException.h b/src/exceptions/OFSandboxActivationFailedException.h
index d708c89a..253a492b 100644
--- a/src/exceptions/OFSandboxActivationFailedException.h
+++ b/src/exceptions/OFSandboxActivationFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSandboxActivationFailedException.m b/src/exceptions/OFSandboxActivationFailedException.m
index dc745419..8e5690c6 100644
--- a/src/exceptions/OFSandboxActivationFailedException.m
+++ b/src/exceptions/OFSandboxActivationFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSeekFailedException.h b/src/exceptions/OFSeekFailedException.h
index 29761783..7d6a5314 100644
--- a/src/exceptions/OFSeekFailedException.h
+++ b/src/exceptions/OFSeekFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSeekFailedException.m b/src/exceptions/OFSeekFailedException.m
index 29907e64..f56162b9 100644
--- a/src/exceptions/OFSeekFailedException.m
+++ b/src/exceptions/OFSeekFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSetItemAttributesFailedException.h b/src/exceptions/OFSetItemAttributesFailedException.h
index 5f875d06..8925be86 100644
--- a/src/exceptions/OFSetItemAttributesFailedException.h
+++ b/src/exceptions/OFSetItemAttributesFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSetItemAttributesFailedException.m b/src/exceptions/OFSetItemAttributesFailedException.m
index e1ca2ca7..f9ff5a58 100644
--- a/src/exceptions/OFSetItemAttributesFailedException.m
+++ b/src/exceptions/OFSetItemAttributesFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSetOptionFailedException.h b/src/exceptions/OFSetOptionFailedException.h
index acebb5fd..786570d8 100644
--- a/src/exceptions/OFSetOptionFailedException.h
+++ b/src/exceptions/OFSetOptionFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSetOptionFailedException.m b/src/exceptions/OFSetOptionFailedException.m
index 45d7af58..2acdbb8d 100644
--- a/src/exceptions/OFSetOptionFailedException.m
+++ b/src/exceptions/OFSetOptionFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSetWindowsRegistryValueFailedException.h b/src/exceptions/OFSetWindowsRegistryValueFailedException.h
index 5b56e290..dc695bcc 100644
--- a/src/exceptions/OFSetWindowsRegistryValueFailedException.h
+++ b/src/exceptions/OFSetWindowsRegistryValueFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFSetWindowsRegistryValueFailedException.m b/src/exceptions/OFSetWindowsRegistryValueFailedException.m
index bba514e3..de3a301a 100644
--- a/src/exceptions/OFSetWindowsRegistryValueFailedException.m
+++ b/src/exceptions/OFSetWindowsRegistryValueFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFStillLockedException.h b/src/exceptions/OFStillLockedException.h
index f332dc4d..0ffd63c0 100644
--- a/src/exceptions/OFStillLockedException.h
+++ b/src/exceptions/OFStillLockedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFStillLockedException.m b/src/exceptions/OFStillLockedException.m
index 169708c9..1ec6ea8e 100644
--- a/src/exceptions/OFStillLockedException.m
+++ b/src/exceptions/OFStillLockedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFThreadJoinFailedException.h b/src/exceptions/OFThreadJoinFailedException.h
index 4bae005f..ac39ba12 100644
--- a/src/exceptions/OFThreadJoinFailedException.h
+++ b/src/exceptions/OFThreadJoinFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFThreadJoinFailedException.m b/src/exceptions/OFThreadJoinFailedException.m
index 080e5d83..f3981b2a 100644
--- a/src/exceptions/OFThreadJoinFailedException.m
+++ b/src/exceptions/OFThreadJoinFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFThreadStartFailedException.h b/src/exceptions/OFThreadStartFailedException.h
index 696889c9..ed6a0e7a 100644
--- a/src/exceptions/OFThreadStartFailedException.h
+++ b/src/exceptions/OFThreadStartFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFThreadStartFailedException.m b/src/exceptions/OFThreadStartFailedException.m
index 5a9b6a5e..4f55f7dc 100644
--- a/src/exceptions/OFThreadStartFailedException.m
+++ b/src/exceptions/OFThreadStartFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFThreadStillRunningException.h b/src/exceptions/OFThreadStillRunningException.h
index f7c0af89..84c63dc7 100644
--- a/src/exceptions/OFThreadStillRunningException.h
+++ b/src/exceptions/OFThreadStillRunningException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFThreadStillRunningException.m b/src/exceptions/OFThreadStillRunningException.m
index eb9af5eb..0f0d5198 100644
--- a/src/exceptions/OFThreadStillRunningException.m
+++ b/src/exceptions/OFThreadStillRunningException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFTruncatedDataException.h b/src/exceptions/OFTruncatedDataException.h
index 149ba850..8dceb8c1 100644
--- a/src/exceptions/OFTruncatedDataException.h
+++ b/src/exceptions/OFTruncatedDataException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFTruncatedDataException.m b/src/exceptions/OFTruncatedDataException.m
index 0c356dd5..32efbd9b 100644
--- a/src/exceptions/OFTruncatedDataException.m
+++ b/src/exceptions/OFTruncatedDataException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnboundNamespaceException.h b/src/exceptions/OFUnboundNamespaceException.h
index 1280b30d..da16d9b1 100644
--- a/src/exceptions/OFUnboundNamespaceException.h
+++ b/src/exceptions/OFUnboundNamespaceException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnboundNamespaceException.m b/src/exceptions/OFUnboundNamespaceException.m
index 1eb48233..23d0f226 100644
--- a/src/exceptions/OFUnboundNamespaceException.m
+++ b/src/exceptions/OFUnboundNamespaceException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnboundPrefixException.h b/src/exceptions/OFUnboundPrefixException.h
index ec11f8cf..772a4c96 100644
--- a/src/exceptions/OFUnboundPrefixException.h
+++ b/src/exceptions/OFUnboundPrefixException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnboundPrefixException.m b/src/exceptions/OFUnboundPrefixException.m
index 065f5f8c..c4c34bc4 100644
--- a/src/exceptions/OFUnboundPrefixException.m
+++ b/src/exceptions/OFUnboundPrefixException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUndefinedKeyException.h b/src/exceptions/OFUndefinedKeyException.h
index e80acfe6..19a42477 100644
--- a/src/exceptions/OFUndefinedKeyException.h
+++ b/src/exceptions/OFUndefinedKeyException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUndefinedKeyException.m b/src/exceptions/OFUndefinedKeyException.m
index 95783c35..bd7de913 100644
--- a/src/exceptions/OFUndefinedKeyException.m
+++ b/src/exceptions/OFUndefinedKeyException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnknownXMLEntityException.h b/src/exceptions/OFUnknownXMLEntityException.h
index 26a0e6bc..4ed52bce 100644
--- a/src/exceptions/OFUnknownXMLEntityException.h
+++ b/src/exceptions/OFUnknownXMLEntityException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnknownXMLEntityException.m b/src/exceptions/OFUnknownXMLEntityException.m
index 06479639..e145c2fc 100644
--- a/src/exceptions/OFUnknownXMLEntityException.m
+++ b/src/exceptions/OFUnknownXMLEntityException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnlockFailedException.h b/src/exceptions/OFUnlockFailedException.h
index cb37c489..38a8dfe9 100644
--- a/src/exceptions/OFUnlockFailedException.h
+++ b/src/exceptions/OFUnlockFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnlockFailedException.m b/src/exceptions/OFUnlockFailedException.m
index bed49492..d1112c1c 100644
--- a/src/exceptions/OFUnlockFailedException.m
+++ b/src/exceptions/OFUnlockFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnsupportedProtocolException.h b/src/exceptions/OFUnsupportedProtocolException.h
index d4c81e0e..ba4cbc06 100644
--- a/src/exceptions/OFUnsupportedProtocolException.h
+++ b/src/exceptions/OFUnsupportedProtocolException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnsupportedProtocolException.m b/src/exceptions/OFUnsupportedProtocolException.m
index 3abf69de..47e4555a 100644
--- a/src/exceptions/OFUnsupportedProtocolException.m
+++ b/src/exceptions/OFUnsupportedProtocolException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnsupportedVersionException.h b/src/exceptions/OFUnsupportedVersionException.h
index 380c6f43..d92da304 100644
--- a/src/exceptions/OFUnsupportedVersionException.h
+++ b/src/exceptions/OFUnsupportedVersionException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFUnsupportedVersionException.m b/src/exceptions/OFUnsupportedVersionException.m
index 8be1f33d..e609e444 100644
--- a/src/exceptions/OFUnsupportedVersionException.m
+++ b/src/exceptions/OFUnsupportedVersionException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFWriteFailedException.h b/src/exceptions/OFWriteFailedException.h
index 687bdd4b..d84a3429 100644
--- a/src/exceptions/OFWriteFailedException.h
+++ b/src/exceptions/OFWriteFailedException.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/exceptions/OFWriteFailedException.m b/src/exceptions/OFWriteFailedException.m
index 1014b26e..6a495c83 100644
--- a/src/exceptions/OFWriteFailedException.m
+++ b/src/exceptions/OFWriteFailedException.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/apple-forwarding-arm.S b/src/forwarding/apple-forwarding-arm.S
index 36c1c19e..9ed82322 100644
--- a/src/forwarding/apple-forwarding-arm.S
+++ b/src/forwarding/apple-forwarding-arm.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/apple-forwarding-arm64.S b/src/forwarding/apple-forwarding-arm64.S
index e82391cd..28193d54 100644
--- a/src/forwarding/apple-forwarding-arm64.S
+++ b/src/forwarding/apple-forwarding-arm64.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/apple-forwarding-i386.S b/src/forwarding/apple-forwarding-i386.S
index 548ba6b0..49aca2c6 100644
--- a/src/forwarding/apple-forwarding-i386.S
+++ b/src/forwarding/apple-forwarding-i386.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/apple-forwarding-powerpc.S b/src/forwarding/apple-forwarding-powerpc.S
index b42c4217..902ae0d1 100644
--- a/src/forwarding/apple-forwarding-powerpc.S
+++ b/src/forwarding/apple-forwarding-powerpc.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/apple-forwarding-x86_64.S b/src/forwarding/apple-forwarding-x86_64.S
index dde390dc..b6876c38 100644
--- a/src/forwarding/apple-forwarding-x86_64.S
+++ b/src/forwarding/apple-forwarding-x86_64.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-arm-elf.S b/src/forwarding/forwarding-arm-elf.S
index dae49b66..91a4fedf 100644
--- a/src/forwarding/forwarding-arm-elf.S
+++ b/src/forwarding/forwarding-arm-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-arm64-elf.S b/src/forwarding/forwarding-arm64-elf.S
index fed73793..42f0e199 100644
--- a/src/forwarding/forwarding-arm64-elf.S
+++ b/src/forwarding/forwarding-arm64-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-mips-elf.S b/src/forwarding/forwarding-mips-elf.S
index b6747b7b..032a377f 100644
--- a/src/forwarding/forwarding-mips-elf.S
+++ b/src/forwarding/forwarding-mips-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-powerpc-elf.S b/src/forwarding/forwarding-powerpc-elf.S
index a1c342de..1df751cd 100644
--- a/src/forwarding/forwarding-powerpc-elf.S
+++ b/src/forwarding/forwarding-powerpc-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-sparc64-elf.S b/src/forwarding/forwarding-sparc64-elf.S
index c65a5095..09766186 100644
--- a/src/forwarding/forwarding-sparc64-elf.S
+++ b/src/forwarding/forwarding-sparc64-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-x86-elf.S b/src/forwarding/forwarding-x86-elf.S
index 60a512f9..861a06e1 100644
--- a/src/forwarding/forwarding-x86-elf.S
+++ b/src/forwarding/forwarding-x86-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-x86-win32.S b/src/forwarding/forwarding-x86-win32.S
index 978c0ce1..391403f5 100644
--- a/src/forwarding/forwarding-x86-win32.S
+++ b/src/forwarding/forwarding-x86-win32.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-x86_64-elf.S b/src/forwarding/forwarding-x86_64-elf.S
index c8866201..ee0752b3 100644
--- a/src/forwarding/forwarding-x86_64-elf.S
+++ b/src/forwarding/forwarding-x86_64-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-x86_64-macho.S b/src/forwarding/forwarding-x86_64-macho.S
index 8cc4c757..bdc1a797 100644
--- a/src/forwarding/forwarding-x86_64-macho.S
+++ b/src/forwarding/forwarding-x86_64-macho.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding-x86_64-win64.S b/src/forwarding/forwarding-x86_64-win64.S
index 6efb16f8..6fbfddef 100644
--- a/src/forwarding/forwarding-x86_64-win64.S
+++ b/src/forwarding/forwarding-x86_64-win64.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/forwarding/forwarding.S b/src/forwarding/forwarding.S
index 6dfc0efb..7bf815a3 100644
--- a/src/forwarding/forwarding.S
+++ b/src/forwarding/forwarding.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/huffman_tree.h b/src/huffman_tree.h
index 3621fffb..68c2bd0f 100644
--- a/src/huffman_tree.h
+++ b/src/huffman_tree.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/huffman_tree.m b/src/huffman_tree.m
index b88614d9..cc7f637d 100644
--- a/src/huffman_tree.m
+++ b/src/huffman_tree.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/instance.h b/src/instance.h
deleted file mode 100644
index c7e9cec5..00000000
--- a/src/instance.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
- *
- * All rights reserved.
- *
- * This file is part of ObjFW. It may be distributed under the terms of the
- * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
- * the packaging of this file.
- *
- * Alternatively, it may be distributed under the terms of the GNU General
- * Public License, either version 2 or 3, which can be found in the file
- * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
- * file.
- */
-
-#import "macros.h"
-
-OF_ASSUME_NONNULL_BEGIN
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern id objc_constructInstance(Class _Nullable, void *_Nullable);
-extern void *objc_destructInstance(id _Nullable);
-#ifdef __cplusplus
-}
-#endif
-
-OF_ASSUME_NONNULL_END
diff --git a/src/libbases.m b/src/libbases.m
index c7182ae3..c4c39ff8 100644
--- a/src/libbases.m
+++ b/src/libbases.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/macros.h b/src/macros.h
index 041716cc..11090290 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/mutex.h b/src/mutex.h
index fe151378..e1a99123 100644
--- a/src/mutex.h
+++ b/src/mutex.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/mutex.m b/src/mutex.m
index b5b5e2d1..fab161f2 100644
--- a/src/mutex.m
+++ b/src/mutex.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/mutex_amiga.m b/src/mutex_amiga.m
index 1a2e8186..ca868a76 100644
--- a/src/mutex_amiga.m
+++ b/src/mutex_amiga.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/mutex_pthread.m b/src/mutex_pthread.m
index b23d79f4..6a46c637 100644
--- a/src/mutex_pthread.m
+++ b/src/mutex_pthread.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/mutex_winapi.m b/src/mutex_winapi.m
index 40d015eb..83469d78 100644
--- a/src/mutex_winapi.m
+++ b/src/mutex_winapi.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/of_asprintf.h b/src/of_asprintf.h
index 36e6d1d6..f60e35ec 100644
--- a/src/of_asprintf.h
+++ b/src/of_asprintf.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/of_asprintf.m b/src/of_asprintf.m
index e5759d65..22be6314 100644
--- a/src/of_asprintf.m
+++ b/src/of_asprintf.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/of_strptime.h b/src/of_strptime.h
index 3e4ee3af..053a7c6e 100644
--- a/src/of_strptime.h
+++ b/src/of_strptime.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/of_strptime.m b/src/of_strptime.m
index b602174f..4d986595 100644
--- a/src/of_strptime.m
+++ b/src/of_strptime.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/once.h b/src/once.h
index 137241bf..55aee931 100644
--- a/src/once.h
+++ b/src/once.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/once.m b/src/once.m
index 8d5a57fb..87ac7b89 100644
--- a/src/once.m
+++ b/src/once.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/pbkdf2.h b/src/pbkdf2.h
index 8d420a46..c106b2d0 100644
--- a/src/pbkdf2.h
+++ b/src/pbkdf2.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -50,11 +50,12 @@ extern "C" {
* @param key The buffer to write the key to
* @param keyLength The desired length for the derived key (key needs to have
* enough storage)
+ * @param allowsSwappableMemory Whether data may be stored in swappable memory
*/
extern void of_pbkdf2(OFHMAC *HMAC, size_t iterations,
const unsigned char *salt, size_t saltLength,
const char *password, size_t passwordLength,
- unsigned char *key, size_t keyLength);
+ unsigned char *key, size_t keyLength, bool allowsSwappableMemory);
#ifdef __cplusplus
}
#endif
diff --git a/src/pbkdf2.m b/src/pbkdf2.m
index c95a7e42..56de4757 100644
--- a/src/pbkdf2.m
+++ b/src/pbkdf2.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -31,12 +31,16 @@
void of_pbkdf2(OFHMAC *HMAC, size_t iterations,
const unsigned char *salt, size_t saltLength,
const char *password, size_t passwordLength,
- unsigned char *key, size_t keyLength)
+ unsigned char *key, size_t keyLength, bool allowsSwappableMemory)
{
void *pool = objc_autoreleasePoolPush();
size_t blocks, digestSize = HMAC.digestSize;
- OFSecureData *buffer = [OFSecureData dataWithCount: digestSize];
- OFSecureData *digest = [OFSecureData dataWithCount: digestSize];
+ OFSecureData *buffer = [OFSecureData
+ dataWithCount: digestSize
+ allowsSwappableMemory: allowsSwappableMemory];
+ OFSecureData *digest = [OFSecureData
+ dataWithCount: digestSize
+ allowsSwappableMemory: allowsSwappableMemory];
unsigned char *bufferItems = buffer.mutableItems;
unsigned char *digestItems = digest.mutableItems;
OFSecureData *extendedSalt;
@@ -53,7 +57,8 @@ void of_pbkdf2(OFHMAC *HMAC, size_t iterations,
if (saltLength > SIZE_MAX - 4 || blocks > UINT32_MAX)
@throw [OFOutOfRangeException exception];
- extendedSalt = [OFSecureData dataWithCount: saltLength + 4];
+ extendedSalt = [OFSecureData dataWithCount: saltLength + 4
+ allowsSwappableMemory: allowsSwappableMemory];
extendedSaltItems = extendedSalt.mutableItems;
@try {
diff --git a/src/platform.h b/src/platform.h
index 027e6501..59bd8679 100644
--- a/src/platform.h
+++ b/src/platform.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/Makefile b/src/runtime/Makefile
index 85c16b49..94602a7b 100644
--- a/src/runtime/Makefile
+++ b/src/runtime/Makefile
@@ -12,12 +12,14 @@ LIB_MAJOR = ${OBJFWRT_LIB_MAJOR}
LIB_MINOR = ${OBJFWRT_LIB_MINOR}
SRCS = arc.m \
+ autorelease.m \
category.m \
class.m \
dtable.m \
exception.m \
hashtable.m \
init.m \
+ instance.m \
ivar.m \
lookup.m \
method.m \
diff --git a/src/runtime/ObjFWRT.h b/src/runtime/ObjFWRT.h
index bc62322f..fbb2a405 100644
--- a/src/runtime/ObjFWRT.h
+++ b/src/runtime/ObjFWRT.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -148,7 +148,12 @@ extern void objc_setForwardHandler(IMP _Nullable forward,
IMP _Nullable stretForward);
extern void objc_setEnumerationMutationHandler(
objc_enumeration_mutation_handler_t _Nullable handler);
-extern void objc_zero_weak_references(id _Nonnull value);
+extern id _Nullable objc_constructInstance(Class _Nullable class_,
+ void *_Nullable bytes);
+extern void *_Nullable objc_destructInstance(id _Nullable object);
+extern void *_Null_unspecified objc_autoreleasePoolPush(void);
+extern void objc_autoreleasePoolPop(void *_Null_unspecified pool);
+extern id _Nullable _objc_rootAutorelease(id _Nullable object);
/*
* Used by the compiler, but can also be called manually.
diff --git a/src/runtime/amiga-end.m b/src/runtime/amiga-end.m
index 8d16a4b0..ae7a75a6 100644
--- a/src/runtime/amiga-end.m
+++ b/src/runtime/amiga-end.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/amiga-glue.m b/src/runtime/amiga-glue.m
index bf268ee9..880229bd 100644
--- a/src/runtime/amiga-glue.m
+++ b/src/runtime/amiga-glue.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -620,12 +620,13 @@ glue_objc_setEnumerationMutationHandler PPC_PARAMS(
objc_setEnumerationMutationHandler(handler);
}
-void __saveds
-glue_objc_zero_weak_references PPC_PARAMS(id value)
+id __saveds
+glue_objc_constructInstance PPC_PARAMS(Class class, void *bytes)
{
- M68K_ARG(id, value, a0)
+ M68K_ARG(Class, class, a0)
+ M68K_ARG(void *, bytes, a1)
- objc_zero_weak_references(value);
+ return objc_constructInstance(class, bytes);
}
void __saveds
@@ -718,3 +719,33 @@ glue_property_copyAttributeValue PPC_PARAMS(objc_property_t property,
return property_copyAttributeValue(property, name);
}
+
+void *__saveds
+glue_objc_destructInstance PPC_PARAMS(id object)
+{
+ M68K_ARG(id, object, a0)
+
+ return objc_destructInstance(object);
+}
+
+void *__saveds
+glue_objc_autoreleasePoolPush(void)
+{
+ return objc_autoreleasePoolPush();
+}
+
+void __saveds
+glue_objc_autoreleasePoolPop PPC_PARAMS(void *pool)
+{
+ M68K_ARG(void *, pool, a0)
+
+ objc_autoreleasePoolPop(pool);
+}
+
+id __saveds
+glue__objc_rootAutorelease PPC_PARAMS(id object)
+{
+ M68K_ARG(id, object, a0)
+
+ return _objc_rootAutorelease(object);
+}
diff --git a/src/runtime/amiga-library.m b/src/runtime/amiga-library.m
index c934a9e9..c56345e2 100644
--- a/src/runtime/amiga-library.m
+++ b/src/runtime/amiga-library.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -126,7 +126,7 @@ extern objc_uncaught_exception_handler_t
glue_objc_setUncaughtExceptionHandler(void);
extern void glue_objc_setForwardHandler(void);
extern void glue_objc_setEnumerationMutationHandler(void);
-extern void glue_objc_zero_weak_references(void);
+extern id glue_objc_constructInstance(void);
extern void glue_objc_exit(void);
extern Ivar *glue_class_copyIvarList(void);
extern const char *glue_ivar_getName(void);
@@ -138,6 +138,10 @@ extern const char *glue_method_getTypeEncoding(void);
extern objc_property_t *glue_class_copyPropertyList(void);
extern const char *glue_property_getName(void);
extern char *glue_property_copyAttributeValue(void);
+extern void *glue_objc_destructInstance(void);
+extern void *glue_objc_autoreleasePoolPush(void);
+extern void glue_objc_autoreleasePoolPop(void);
+extern id glue__objc_rootAutorelease(void);
#ifdef OF_MORPHOS
const ULONG __abox__ = 1;
@@ -643,7 +647,7 @@ static CONST_APTR functionTable[] = {
(CONST_APTR)glue_objc_setUncaughtExceptionHandler,
(CONST_APTR)glue_objc_setForwardHandler,
(CONST_APTR)glue_objc_setEnumerationMutationHandler,
- (CONST_APTR)glue_objc_zero_weak_references,
+ (CONST_APTR)glue_objc_constructInstance,
(CONST_APTR)glue_objc_exit,
(CONST_APTR)glue_class_copyIvarList,
(CONST_APTR)glue_ivar_getName,
@@ -655,6 +659,10 @@ static CONST_APTR functionTable[] = {
(CONST_APTR)glue_class_copyPropertyList,
(CONST_APTR)glue_property_getName,
(CONST_APTR)glue_property_copyAttributeValue,
+ (CONST_APTR)glue_objc_destructInstance,
+ (CONST_APTR)glue_objc_autoreleasePoolPush,
+ (CONST_APTR)glue_objc_autoreleasePoolPop,
+ (CONST_APTR)glue__objc_rootAutorelease,
(CONST_APTR)-1,
#ifdef OF_MORPHOS
(CONST_APTR)FUNCARRAY_END
diff --git a/src/runtime/amigaos3.sfd b/src/runtime/amigaos3.sfd
index f02e147b..5e15752b 100644
--- a/src/runtime/amigaos3.sfd
+++ b/src/runtime/amigaos3.sfd
@@ -69,7 +69,7 @@ bool glue_protocol_conformsToProtocol(Protocol *_Nonnull protocol1, Protocol *_N
_Nullable objc_uncaught_exception_handler_t glue_objc_setUncaughtExceptionHandler(objc_uncaught_exception_handler_t _Nullable handler)(a0)
void glue_objc_setForwardHandler(IMP _Nullable forward, IMP _Nullable stretForward)(a0,a1)
void glue_objc_setEnumerationMutationHandler(objc_enumeration_mutation_handler_t _Nullable handler)(a0)
-void glue_objc_zero_weak_references(id _Nonnull value)(a0)
+id _Nullable glue_objc_constructInstance(Class _Nullable class_, void *_Nullable bytes)(a0,a1)
void glue_objc_exit(void)()
Ivar _Nullable *_Nullable glue_class_copyIvarList(Class _Nullable class_, unsigned int *_Nullable outCount)(a0,a1)
const char *_Nonnull glue_ivar_getName(Ivar _Nonnull ivar)(a0)
@@ -81,4 +81,8 @@ const char *_Nullable glue_method_getTypeEncoding(Method _Nonnull method)(a0)
objc_property_t _Nullable *_Nullable glue_class_copyPropertyList(Class _Nullable class_, unsigned int *_Nullable outCount)(a0,a1)
const char *_Nonnull glue_property_getName(objc_property_t _Nonnull property)(a0)
char *_Nullable glue_property_copyAttributeValue(objc_property_t _Nonnull property, const char *_Nonnull name)(a0,a1)
+void *_Nullable glue_objc_destructInstance(id _Nullable object)(a0)
+void *_Null_unspecified glue_objc_autoreleasePoolPush(void)()
+void glue_objc_autoreleasePoolPop(void *_Null_unspecified pool)(a0)
+id _Nullable glue__objc_rootAutorelease(id _Nullable object)(a0)
==end
diff --git a/src/runtime/arc.m b/src/runtime/arc.m
index 2d90bdc1..95380904 100644
--- a/src/runtime/arc.m
+++ b/src/runtime/arc.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -20,9 +20,6 @@
#import "ObjFWRT.h"
#import "private.h"
-#import "OFObject.h"
-#import "OFBlock.h"
-
#ifdef OF_HAVE_THREADS
# import "mutex.h"
#endif
diff --git a/src/autorelease.m b/src/runtime/autorelease.m
index 0eaa45c4..9eebde03 100644
--- a/src/autorelease.m
+++ b/src/runtime/autorelease.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -20,8 +20,8 @@
#include <stdio.h>
#include <stdlib.h>
-#import "OFObject.h"
-#import "OFSystemInfo.h"
+#import "ObjFWRT.h"
+#import "private.h"
#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
# import "tlskey.h"
@@ -98,7 +98,7 @@ _objc_rootAutorelease(id object)
#endif
if (objects == NULL) {
- size = [OFSystemInfo pageSize];
+ size = 16 * sizeof(id);
OF_ENSURE((objects = malloc(size)) != NULL);
@@ -113,7 +113,7 @@ _objc_rootAutorelease(id object)
if ((uintptr_t)top >= (uintptr_t)objects + size) {
ptrdiff_t diff = top - objects;
- size += [OFSystemInfo pageSize];
+ size *= 2;
OF_ENSURE((objects = realloc(objects, size)) != NULL);
#if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS)
diff --git a/src/runtime/category.m b/src/runtime/category.m
index 06de9dcc..e4f04873 100644
--- a/src/runtime/category.m
+++ b/src/runtime/category.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/class.m b/src/runtime/class.m
index befdaba3..d43d9955 100644
--- a/src/runtime/class.m
+++ b/src/runtime/class.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/dtable.m b/src/runtime/dtable.m
index 76b6277a..eebada53 100644
--- a/src/runtime/dtable.m
+++ b/src/runtime/dtable.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/exception.m b/src/runtime/exception.m
index 2f2617a6..52a64db4 100644
--- a/src/runtime/exception.m
+++ b/src/runtime/exception.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/hashtable.m b/src/runtime/hashtable.m
index ecbbf993..2f808d97 100644
--- a/src/runtime/hashtable.m
+++ b/src/runtime/hashtable.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/init.m b/src/runtime/init.m
index 79d41479..1ee1195f 100644
--- a/src/runtime/init.m
+++ b/src/runtime/init.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/instance.m b/src/runtime/instance.m
index 6d73f1bb..74e816c3 100644
--- a/src/instance.m
+++ b/src/runtime/instance.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -17,7 +17,8 @@
#include "config.h"
-#import "OFObject.h"
+#import "ObjFWRT.h"
+#import "private.h"
static SEL constructSelector = NULL;
static SEL destructSelector = NULL;
diff --git a/src/runtime/ivar.m b/src/runtime/ivar.m
index 3544c7bf..d12dd5cb 100644
--- a/src/runtime/ivar.m
+++ b/src/runtime/ivar.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/linklib/linklib.m b/src/runtime/linklib/linklib.m
index 273dcb3c..56b82963 100644
--- a/src/runtime/linklib/linklib.m
+++ b/src/runtime/linklib/linklib.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -580,10 +580,10 @@ objc_setEnumerationMutationHandler(objc_enumeration_mutation_handler_t handler)
glue_objc_setEnumerationMutationHandler(handler);
}
-void
-objc_zero_weak_references(id value)
+id
+objc_constructInstance(Class class, void *_Nullable bytes)
{
- glue_objc_zero_weak_references(value);
+ return glue_objc_constructInstance(class, bytes);
}
void
@@ -651,3 +651,27 @@ property_copyAttributeValue(objc_property_t property, const char *name)
{
return glue_property_copyAttributeValue(property, name);
}
+
+void *
+objc_destructInstance(id object)
+{
+ return glue_objc_destructInstance(object);
+}
+
+void *
+objc_autoreleasePoolPush(void)
+{
+ return glue_objc_autoreleasePoolPush();
+}
+
+void
+objc_autoreleasePoolPop(void *pool)
+{
+ glue_objc_autoreleasePoolPop(pool);
+}
+
+id
+_objc_rootAutorelease(id object)
+{
+ return glue__objc_rootAutorelease(object);
+}
diff --git a/src/runtime/lookup-asm/lookup-asm-arm-elf.S b/src/runtime/lookup-asm/lookup-asm-arm-elf.S
index a2fca0da..b3fdaab8 100644
--- a/src/runtime/lookup-asm/lookup-asm-arm-elf.S
+++ b/src/runtime/lookup-asm/lookup-asm-arm-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-arm64-elf.S b/src/runtime/lookup-asm/lookup-asm-arm64-elf.S
index b38b6b3f..a8256880 100644
--- a/src/runtime/lookup-asm/lookup-asm-arm64-elf.S
+++ b/src/runtime/lookup-asm/lookup-asm-arm64-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-mips-elf.S b/src/runtime/lookup-asm/lookup-asm-mips-elf.S
index 09183b64..cdcd1442 100644
--- a/src/runtime/lookup-asm/lookup-asm-mips-elf.S
+++ b/src/runtime/lookup-asm/lookup-asm-mips-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-mips64-n64-elf.S b/src/runtime/lookup-asm/lookup-asm-mips64-n64-elf.S
index 0f9bd95d..a25fa638 100644
--- a/src/runtime/lookup-asm/lookup-asm-mips64-n64-elf.S
+++ b/src/runtime/lookup-asm/lookup-asm-mips64-n64-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-powerpc-elf.S b/src/runtime/lookup-asm/lookup-asm-powerpc-elf.S
index d670e640..bababe48 100644
--- a/src/runtime/lookup-asm/lookup-asm-powerpc-elf.S
+++ b/src/runtime/lookup-asm/lookup-asm-powerpc-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-powerpc-macho.S b/src/runtime/lookup-asm/lookup-asm-powerpc-macho.S
index 22e9635d..ee95b4ac 100644
--- a/src/runtime/lookup-asm/lookup-asm-powerpc-macho.S
+++ b/src/runtime/lookup-asm/lookup-asm-powerpc-macho.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-sparc-elf.S b/src/runtime/lookup-asm/lookup-asm-sparc-elf.S
index 5f9fa4be..9ce1ccb6 100644
--- a/src/runtime/lookup-asm/lookup-asm-sparc-elf.S
+++ b/src/runtime/lookup-asm/lookup-asm-sparc-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-sparc64-elf.S b/src/runtime/lookup-asm/lookup-asm-sparc64-elf.S
index c7cfa43a..3c39c65c 100644
--- a/src/runtime/lookup-asm/lookup-asm-sparc64-elf.S
+++ b/src/runtime/lookup-asm/lookup-asm-sparc64-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-x86-elf.S b/src/runtime/lookup-asm/lookup-asm-x86-elf.S
index 9482b8ce..4042803f 100644
--- a/src/runtime/lookup-asm/lookup-asm-x86-elf.S
+++ b/src/runtime/lookup-asm/lookup-asm-x86-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-x86-win32.S b/src/runtime/lookup-asm/lookup-asm-x86-win32.S
index 49f76044..2e7d9295 100644
--- a/src/runtime/lookup-asm/lookup-asm-x86-win32.S
+++ b/src/runtime/lookup-asm/lookup-asm-x86-win32.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-x86_64-elf.S b/src/runtime/lookup-asm/lookup-asm-x86_64-elf.S
index 878653b8..46731786 100644
--- a/src/runtime/lookup-asm/lookup-asm-x86_64-elf.S
+++ b/src/runtime/lookup-asm/lookup-asm-x86_64-elf.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-x86_64-macho.S b/src/runtime/lookup-asm/lookup-asm-x86_64-macho.S
index 69bbe8b8..8ae5f210 100644
--- a/src/runtime/lookup-asm/lookup-asm-x86_64-macho.S
+++ b/src/runtime/lookup-asm/lookup-asm-x86_64-macho.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm-x86_64-win64.S b/src/runtime/lookup-asm/lookup-asm-x86_64-win64.S
index 8725054f..779497c5 100644
--- a/src/runtime/lookup-asm/lookup-asm-x86_64-win64.S
+++ b/src/runtime/lookup-asm/lookup-asm-x86_64-win64.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup-asm/lookup-asm.S b/src/runtime/lookup-asm/lookup-asm.S
index 96032b6c..d625d2a2 100644
--- a/src/runtime/lookup-asm/lookup-asm.S
+++ b/src/runtime/lookup-asm/lookup-asm.S
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/lookup.m b/src/runtime/lookup.m
index 3ed32541..f8a66b73 100644
--- a/src/runtime/lookup.m
+++ b/src/runtime/lookup.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/method.m b/src/runtime/method.m
index fecc3b64..cefd8ca3 100644
--- a/src/runtime/method.m
+++ b/src/runtime/method.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/misc.m b/src/runtime/misc.m
index 78bb7def..b048b78d 100644
--- a/src/runtime/misc.m
+++ b/src/runtime/misc.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/morphos-clib.h b/src/runtime/morphos-clib.h
index bec54a82..3e695441 100644
--- a/src/runtime/morphos-clib.h
+++ b/src/runtime/morphos-clib.h
@@ -63,7 +63,7 @@ bool glue_protocol_conformsToProtocol(Protocol *, Protocol *);
objc_uncaught_exception_handler_t glue_objc_setUncaughtExceptionHandler(objc_uncaught_exception_handler_t);
void glue_objc_setForwardHandler(IMP, IMP);
void glue_objc_setEnumerationMutationHandler(objc_enumeration_mutation_handler_t);
-void glue_objc_zero_weak_references(id);
+id _Nullable glue_objc_constructInstance(Class class_, void *bytes);
void glue_objc_exit(void);
Ivar *glue_class_copyIvarList(Class class_, unsigned int *outCount);
const char *glue_ivar_getName(Ivar ivar);
@@ -75,3 +75,7 @@ const char *glue_method_getTypeEncoding(Method method);
objc_property_t *glue_class_copyPropertyList(Class class_, unsigned int *outCount);
const char *glue_property_getName(objc_property_t property);
char *glue_property_copyAttributeValue(objc_property_t property, const char *name);
+void *glue_objc_destructInstance(id object);
+void *glue_objc_autoreleasePoolPush(void);
+void glue_objc_autoreleasePoolPop(void *pool);
+id glue__objc_rootAutorelease(id object);
diff --git a/src/runtime/morphos.fd b/src/runtime/morphos.fd
index aba8e139..99e9d4c5 100644
--- a/src/runtime/morphos.fd
+++ b/src/runtime/morphos.fd
@@ -65,7 +65,7 @@ glue_protocol_conformsToProtocol(protocol1,protocol2)(sysv,r12base)
glue_objc_setUncaughtExceptionHandler(handler)(sysv,r12base)
glue_objc_setForwardHandler(forward,stretForward)(sysv,r12base)
glue_objc_setEnumerationMutationHandler(handler)(sysv,r12base)
-glue_objc_zero_weak_references(value)(sysv,r12base)
+glue_objc_constructInstance(class_,bytes)(sysv,r12base)
glue_objc_exit()(sysv,r12base)
glue_class_copyIvarList(class_,outCount)(sysv,r12base)
glue_ivar_getName(ivar)(sysv,r12base)
@@ -77,4 +77,8 @@ glue_method_getTypeEncoding(method)(sysv,r12base)
glue_class_copyPropertyList(class_,outCount)(sysv,r12base)
glue_property_getName(property)(sysv,r12base)
glue_property_copyAttributeValue(property,name)(sysv,r12base)
+glue_objc_destructInstance(object)(sysv,r12base)
+objc_autoreleasePoolPush()(sysv,r12base)
+objc_autoreleasePoolPop(pool)(sysv,r12base)
+_objc_rootAutorelease(object)(sysv,r12base)
##end
diff --git a/src/runtime/private.h b/src/runtime/private.h
index 3104a04d..eb42b067 100644
--- a/src/runtime/private.h
+++ b/src/runtime/private.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -306,6 +306,7 @@ extern void objc_dtable_free(struct objc_dtable *_Nonnull);
extern void objc_dtable_cleanup(void);
extern void objc_init_static_instances(struct objc_symtab *_Nonnull);
extern void objc_forget_pending_static_instances(void);
+extern void objc_zero_weak_references(id _Nonnull);
#ifdef OF_HAVE_THREADS
extern void objc_global_mutex_lock(void);
extern void objc_global_mutex_unlock(void);
@@ -365,7 +366,15 @@ objc_dtable_get(const struct objc_dtable *_Nonnull dtable, uint32_t idx)
Class _Nonnull isa;
}
+@property (readonly, nonatomic) bool allowsWeakReference;
+
+ (void)initialize;
+ (bool)resolveClassMethod: (nonnull SEL)selector;
+ (bool)resolveInstanceMethod: (nonnull SEL)selector;
+- (nonnull id)retain;
+- (void)release;
+- (nonnull id)autorelease;
+- (nonnull id)copy;
+- (nonnull id)mutableCopy;
+- (bool)retainWeakReference;
@end
diff --git a/src/runtime/property.m b/src/runtime/property.m
index 1ad8249f..2045907f 100644
--- a/src/runtime/property.m
+++ b/src/runtime/property.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -22,8 +22,6 @@
#import "ObjFWRT.h"
#import "private.h"
-#import "OFObject.h"
-
#ifdef OF_HAVE_THREADS
# import "mutex.h"
# define NUM_SPINLOCKS 8 /* needs to be a power of 2 */
diff --git a/src/runtime/protocol.m b/src/runtime/protocol.m
index 4e639195..2280ace2 100644
--- a/src/runtime/protocol.m
+++ b/src/runtime/protocol.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/selector.m b/src/runtime/selector.m
index 530aa308..47593100 100644
--- a/src/runtime/selector.m
+++ b/src/runtime/selector.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/sparsearray.m b/src/runtime/sparsearray.m
index ddeed790..23a5f2dd 100644
--- a/src/runtime/sparsearray.m
+++ b/src/runtime/sparsearray.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/static-instances.m b/src/runtime/static-instances.m
index e8adf422..007dc712 100644
--- a/src/runtime/static-instances.m
+++ b/src/runtime/static-instances.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/synchronized.m b/src/runtime/synchronized.m
index 32190c6f..1a926ab4 100644
--- a/src/runtime/synchronized.m
+++ b/src/runtime/synchronized.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/runtime/threading.m b/src/runtime/threading.m
index d8f5df77..300f174e 100644
--- a/src/runtime/threading.m
+++ b/src/runtime/threading.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/scrypt.h b/src/scrypt.h
index 9c830435..74e18fcd 100644
--- a/src/scrypt.h
+++ b/src/scrypt.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -41,7 +41,7 @@ extern void of_scrypt_romix(uint32_t *buffer, size_t blockSize,
extern void of_scrypt(size_t blockSize, size_t costFactor,
size_t parallelization, const unsigned char *salt, size_t saltLength,
const char *password, size_t passwordLength,
- unsigned char *key, size_t keyLength);
+ unsigned char *key, size_t keyLength, bool allowsSwappableMemory);
#ifdef __cplusplus
}
#endif
diff --git a/src/scrypt.m b/src/scrypt.m
index d87761e1..8e80ac5e 100644
--- a/src/scrypt.m
+++ b/src/scrypt.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -19,6 +19,7 @@
#import "OFHMAC.h"
#import "OFSHA256Hash.h"
+#import "OFSecureData.h"
#import "OFInvalidArgumentException.h"
#import "OFOutOfMemoryException.h"
@@ -141,9 +142,9 @@ of_scrypt_romix(uint32_t *buffer, size_t blockSize, size_t costFactor,
void of_scrypt(size_t blockSize, size_t costFactor,
size_t parallelization, const unsigned char *salt, size_t saltLength,
const char *password, size_t passwordLength,
- unsigned char *key, size_t keyLength)
+ unsigned char *key, size_t keyLength, bool allowsSwappableMemory)
{
- uint32_t *tmp = NULL, *buffer = NULL;
+ OFSecureData *tmp = nil, *buffer = nil;
OFHMAC *HMAC = nil;
if (blockSize == 0 || costFactor <= 1 ||
@@ -159,45 +160,45 @@ void of_scrypt(size_t blockSize, size_t costFactor,
OVERFLOW_CHECK_2
@try {
+ uint32_t *tmpItems, *bufferItems;
+
if (costFactor > SIZE_MAX - 1 ||
- (costFactor + 1) > SIZE_MAX / 128 ||
- (costFactor + 1) * 128 > SIZE_MAX / blockSize)
+ (costFactor + 1) > SIZE_MAX / 128)
@throw [OFOutOfRangeException exception];
- if ((tmp = malloc((costFactor + 1) * 128 * blockSize)) == NULL)
- @throw [OFOutOfMemoryException
- exceptionWithRequestedSize: (blockSize +
- costFactor) * 128];
+ tmp = [[OFSecureData alloc]
+ initWithItemSize: blockSize
+ count: (costFactor + 1) * 128
+ allowsSwappableMemory: allowsSwappableMemory];
+ tmpItems = tmp.mutableItems;
- if (parallelization > SIZE_MAX / 128 ||
- parallelization * 128 > SIZE_MAX / blockSize)
+ if (parallelization > SIZE_MAX / 128)
@throw [OFOutOfRangeException exception];
- if ((buffer = malloc(parallelization * 128 *
- blockSize)) == NULL)
- @throw [OFOutOfMemoryException
- exceptionWithRequestedSize: parallelization * 128 *
- blockSize];
+ buffer = [[OFSecureData alloc]
+ initWithItemSize: blockSize
+ count: parallelization * 128
+ allowsSwappableMemory: allowsSwappableMemory];
+ bufferItems = buffer.mutableItems;
- HMAC = [[OFHMAC alloc] initWithHashClass: [OFSHA256Hash class]];
+ HMAC = [[OFHMAC alloc]
+ initWithHashClass: [OFSHA256Hash class]
+ allowsSwappableMemory: allowsSwappableMemory];
of_pbkdf2(HMAC, 1, salt, saltLength, password, passwordLength,
- (unsigned char *)buffer, parallelization * 128 * blockSize);
+ (unsigned char *)bufferItems,
+ parallelization * 128 * blockSize, allowsSwappableMemory);
for (size_t i = 0; i < parallelization; i++)
- of_scrypt_romix(buffer + i * 32 * blockSize, blockSize,
- costFactor, tmp);
+ of_scrypt_romix(bufferItems + i * 32 * blockSize,
+ blockSize, costFactor, tmpItems);
- of_pbkdf2(HMAC, 1, (unsigned char *)buffer, parallelization *
- 128 * blockSize, password, passwordLength, key, keyLength);
+ of_pbkdf2(HMAC, 1, (unsigned char *)bufferItems,
+ parallelization * 128 * blockSize, password, passwordLength,
+ key, keyLength, allowsSwappableMemory);
} @finally {
- of_explicit_memset(tmp, 0, (costFactor + 1) * blockSize * 128);
- free(tmp);
-
- of_explicit_memset(buffer, 0,
- parallelization * 128 * blockSize);
- free(buffer);
-
+ [tmp release];
+ [buffer release];
[HMAC release];
}
}
diff --git a/src/socket.h b/src/socket.h
index e46f15ed..21f6852b 100644
--- a/src/socket.h
+++ b/src/socket.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/socket.m b/src/socket.m
index 2d9754c6..bfe243f9 100644
--- a/src/socket.m
+++ b/src/socket.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/socket_helpers.h b/src/socket_helpers.h
index 5e4d2b49..8e0674fd 100644
--- a/src/socket_helpers.h
+++ b/src/socket_helpers.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/thread.h b/src/thread.h
index c9de585d..774b2386 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/thread.m b/src/thread.m
index a288733b..5001f319 100644
--- a/src/thread.m
+++ b/src/thread.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/thread_amiga.m b/src/thread_amiga.m
index 1608c275..78af249e 100644
--- a/src/thread_amiga.m
+++ b/src/thread_amiga.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/thread_pthread.m b/src/thread_pthread.m
index 94d6e392..a6ebbf3e 100644
--- a/src/thread_pthread.m
+++ b/src/thread_pthread.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/thread_winapi.m b/src/thread_winapi.m
index 05d5ff25..dd845a91 100644
--- a/src/thread_winapi.m
+++ b/src/thread_winapi.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/tlskey.h b/src/tlskey.h
index 7e0f3519..1e480503 100644
--- a/src/tlskey.h
+++ b/src/tlskey.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/tlskey.m b/src/tlskey.m
index e3a2c04a..21c020f8 100644
--- a/src/tlskey.m
+++ b/src/tlskey.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/unicode.h b/src/unicode.h
index 045dc04d..c1b03e46 100644
--- a/src/unicode.h
+++ b/src/unicode.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/unicode.m b/src/unicode.m
index 05df1e0c..f94e7b85 100644
--- a/src/unicode.m
+++ b/src/unicode.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/src/unistd_wrapper.h b/src/unistd_wrapper.h
index a40a9148..b3532ed6 100644
--- a/src/unistd_wrapper.h
+++ b/src/unistd_wrapper.h
@@ -1,7 +1,8 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone> *
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
+ *
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
diff --git a/tests/ForwardingTests.m b/tests/ForwardingTests.m
index 68d4a311..44ac9221 100644
--- a/tests/ForwardingTests.m
+++ b/tests/ForwardingTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/ImportTest.m b/tests/ImportTest.m
index 33e9e453..4af830c9 100644
--- a/tests/ImportTest.m
+++ b/tests/ImportTest.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFArrayTests.m b/tests/OFArrayTests.m
index 189d5abe..336f58f9 100644
--- a/tests/OFArrayTests.m
+++ b/tests/OFArrayTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFBlockTests.m b/tests/OFBlockTests.m
index 78f603b3..b844caf3 100644
--- a/tests/OFBlockTests.m
+++ b/tests/OFBlockTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFCharacterSetTests.m b/tests/OFCharacterSetTests.m
index e5339f14..03a70e0a 100644
--- a/tests/OFCharacterSetTests.m
+++ b/tests/OFCharacterSetTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFDNSResolverTests.m b/tests/OFDNSResolverTests.m
index c28abacd..79ef78dd 100644
--- a/tests/OFDNSResolverTests.m
+++ b/tests/OFDNSResolverTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFDataTests.m b/tests/OFDataTests.m
index f6b58b29..5f4bfc02 100644
--- a/tests/OFDataTests.m
+++ b/tests/OFDataTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFDateTests.m b/tests/OFDateTests.m
index 18ff0497..daadbc1b 100644
--- a/tests/OFDateTests.m
+++ b/tests/OFDateTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFDictionaryTests.m b/tests/OFDictionaryTests.m
index 6389b754..4fc626ad 100644
--- a/tests/OFDictionaryTests.m
+++ b/tests/OFDictionaryTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFHMACTests.m b/tests/OFHMACTests.m
index 55ac2ca4..89db14af 100644
--- a/tests/OFHMACTests.m
+++ b/tests/OFHMACTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -59,17 +59,23 @@ static const uint8_t digest_sha512[] =
OFHMAC *HMAC_SHA256, *HMAC_SHA384, *HMAC_SHA512;
TEST(@"+[HMACWithHashClass:] with MD5",
- (HMAC_MD5 = [OFHMAC HMACWithHashClass: [OFMD5Hash class]]))
+ (HMAC_MD5 = [OFHMAC HMACWithHashClass: [OFMD5Hash class]
+ allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with SHA-1",
- (HMAC_SHA1 = [OFHMAC HMACWithHashClass: [OFSHA1Hash class]]))
+ (HMAC_SHA1 = [OFHMAC HMACWithHashClass: [OFSHA1Hash class]
+ allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with RIPEMD-160",
- (HMAC_RMD160 = [OFHMAC HMACWithHashClass: [OFRIPEMD160Hash class]]))
+ (HMAC_RMD160 = [OFHMAC HMACWithHashClass: [OFRIPEMD160Hash class]
+ allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with SHA-256",
- (HMAC_SHA256 = [OFHMAC HMACWithHashClass: [OFSHA256Hash class]]))
+ (HMAC_SHA256 = [OFHMAC HMACWithHashClass: [OFSHA256Hash class]
+ allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with SHA-384",
- (HMAC_SHA384 = [OFHMAC HMACWithHashClass: [OFSHA384Hash class]]))
+ (HMAC_SHA384 = [OFHMAC HMACWithHashClass: [OFSHA384Hash class]
+ allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with SHA-512",
- (HMAC_SHA512 = [OFHMAC HMACWithHashClass: [OFSHA512Hash class]]))
+ (HMAC_SHA512 = [OFHMAC HMACWithHashClass: [OFSHA512Hash class]
+ allowsSwappableMemory: true]))
EXPECT_EXCEPTION(@"Detection of missing key",
OFInvalidArgumentException, [HMAC_MD5 updateWithBuffer: ""
diff --git a/tests/OFHTTPClientTests.m b/tests/OFHTTPClientTests.m
index 8bc90289..a2243cd4 100644
--- a/tests/OFHTTPClientTests.m
+++ b/tests/OFHTTPClientTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFHTTPCookieManagerTests.m b/tests/OFHTTPCookieManagerTests.m
index 738ffa1c..41fe0949 100644
--- a/tests/OFHTTPCookieManagerTests.m
+++ b/tests/OFHTTPCookieManagerTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -29,14 +29,14 @@ static OFString *module = @"OFHTTPCookieManager";
OFURL *URL[4];
OFHTTPCookie *cookie[5];
- URL[0] = [OFURL URLWithString: @"http://heap.zone/foo"];
- URL[1] = [OFURL URLWithString: @"https://heap.zone/foo/bar"];
- URL[2] = [OFURL URLWithString: @"https://test.heap.zone/foo/bar"];
+ URL[0] = [OFURL URLWithString: @"http://nil.im/foo"];
+ URL[1] = [OFURL URLWithString: @"https://nil.im/foo/bar"];
+ URL[2] = [OFURL URLWithString: @"https://test.nil.im/foo/bar"];
URL[3] = [OFURL URLWithString: @"http://webkeks.org/foo/bar"];
cookie[0] = [OFHTTPCookie cookieWithName: @"test"
value: @"1"
- domain: @"heap.zone"];
+ domain: @"nil.im"];
TEST(@"-[addCookie:forURL:] #1", R([manager addCookie: cookie[0]
forURL: URL[0]]))
@@ -57,7 +57,7 @@ static OFString *module = @"OFHTTPCookieManager";
cookie[2] = [OFHTTPCookie cookieWithName: @"test"
value: @"3"
- domain: @"heap.zone"];
+ domain: @"nil.im"];
cookie[2].secure = true;
TEST(@"-[addCookie:forURL:] #3", R([manager addCookie: cookie[2]
forURL: URL[1]]))
@@ -70,8 +70,8 @@ static OFString *module = @"OFHTTPCookieManager";
cookie[2].expires = [OFDate dateWithTimeIntervalSinceNow: -1];
cookie[3] = [OFHTTPCookie cookieWithName: @"test"
value: @"4"
- domain: @"heap.zone"];
- cookie[3].domain = @".heap.zone";
+ domain: @"nil.im"];
+ cookie[3].domain = @".nil.im";
TEST(@"-[addCookie:forURL:] #4", R([manager addCookie: cookie[3]
forURL: URL[1]]))
@@ -83,7 +83,7 @@ static OFString *module = @"OFHTTPCookieManager";
cookie[4] = [OFHTTPCookie cookieWithName: @"bar"
value: @"5"
- domain: @"test.heap.zone"];
+ domain: @"test.nil.im"];
TEST(@"-[addCookie:forURL:] #5", R([manager addCookie: cookie[4]
forURL: URL[0]]))
diff --git a/tests/OFHTTPCookieTests.m b/tests/OFHTTPCookieTests.m
index f78b5ddf..664ba2ab 100644
--- a/tests/OFHTTPCookieTests.m
+++ b/tests/OFHTTPCookieTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -25,13 +25,13 @@ static OFString *module = @"OFHTTPCookie";
- (void)HTTPCookieTests
{
void *pool = objc_autoreleasePoolPush();
- OFURL *URL = [OFURL URLWithString: @"http://heap.zone"];
+ OFURL *URL = [OFURL URLWithString: @"http://nil.im"];
OFHTTPCookie *cookie[2];
OFArray OF_GENERIC(OFHTTPCookie *) *cookies;
cookie[0] = [OFHTTPCookie cookieWithName: @"foo"
value: @"bar"
- domain: @"heap.zone"];
+ domain: @"nil.im"];
TEST(@"+[cookiesWithResponseHeaderFields:forURL:] #1",
[[OFHTTPCookie cookiesWithResponseHeaderFields: [OFDictionary
dictionaryWithObject: @"foo=bar"
@@ -40,7 +40,7 @@ static OFString *module = @"OFHTTPCookie";
cookie[1] = [OFHTTPCookie cookieWithName: @"qux"
value: @"cookie"
- domain: @"heap.zone"];
+ domain: @"nil.im"];
TEST(@"+[cookiesWithResponseHeaderFields:forURL:] #2",
[[OFHTTPCookie cookiesWithResponseHeaderFields: [OFDictionary
dictionaryWithObject: @"foo=bar,qux=cookie"
diff --git a/tests/OFINIFileTests.m b/tests/OFINIFileTests.m
index 4a68a4be..c24c851a 100644
--- a/tests/OFINIFileTests.m
+++ b/tests/OFINIFileTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFInvocationTests.m b/tests/OFInvocationTests.m
index 9eec97a4..56555cd5 100644
--- a/tests/OFInvocationTests.m
+++ b/tests/OFInvocationTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFJSONTests.m b/tests/OFJSONTests.m
index cb364794..9ee278b4 100644
--- a/tests/OFJSONTests.m
+++ b/tests/OFJSONTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFKernelEventObserverTests.m b/tests/OFKernelEventObserverTests.m
index 43e3b74c..4e506cc9 100644
--- a/tests/OFKernelEventObserverTests.m
+++ b/tests/OFKernelEventObserverTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFListTests.m b/tests/OFListTests.m
index da795f1b..4ffa77dd 100644
--- a/tests/OFListTests.m
+++ b/tests/OFListTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFLocaleTests.m b/tests/OFLocaleTests.m
index 89d0e027..21d6ca45 100644
--- a/tests/OFLocaleTests.m
+++ b/tests/OFLocaleTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFMD5HashTests.m b/tests/OFMD5HashTests.m
index eb91910f..2f75919e 100644
--- a/tests/OFMD5HashTests.m
+++ b/tests/OFMD5HashTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -34,7 +34,8 @@ const uint8_t testfile_md5[16] =
OFFile *f = [OFFile fileWithPath: @"testfile.bin"
mode: @"r"];
- TEST(@"+[cryptoHash]", (md5 = [OFMD5Hash cryptoHash]))
+ TEST(@"+[cryptoHashWithAllowsSwappableMemory:]",
+ (md5 = [OFMD5Hash cryptoHashWithAllowsSwappableMemory: true]))
while (!f.atEndOfStream) {
char buf[64];
diff --git a/tests/OFMethodSignatureTests.m b/tests/OFMethodSignatureTests.m
index c42d104d..a3170665 100644
--- a/tests/OFMethodSignatureTests.m
+++ b/tests/OFMethodSignatureTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFNumberTests.m b/tests/OFNumberTests.m
index 202e6064..22bfe8b3 100644
--- a/tests/OFNumberTests.m
+++ b/tests/OFNumberTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFObjectTests.m b/tests/OFObjectTests.m
index f9bbb141..dbabfed0 100644
--- a/tests/OFObjectTests.m
+++ b/tests/OFObjectTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFPluginTests.m b/tests/OFPluginTests.m
index 2e73b34c..ad387f14 100644
--- a/tests/OFPluginTests.m
+++ b/tests/OFPluginTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFPropertyListTests.m b/tests/OFPropertyListTests.m
index a98c1536..30063715 100644
--- a/tests/OFPropertyListTests.m
+++ b/tests/OFPropertyListTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFRIPEMD160HashTests.m b/tests/OFRIPEMD160HashTests.m
index eac7abfb..1f251ed1 100644
--- a/tests/OFRIPEMD160HashTests.m
+++ b/tests/OFRIPEMD160HashTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -35,7 +35,9 @@ const uint8_t testfile_rmd160[20] =
OFFile *f = [OFFile fileWithPath: @"testfile.bin"
mode: @"r"];
- TEST(@"+[cryptoHash]", (rmd160 = [OFRIPEMD160Hash cryptoHash]))
+ TEST(@"+[cryptoHashWithAllowsSwappableMemory:]",
+ (rmd160 = [OFRIPEMD160Hash
+ cryptoHashWithAllowsSwappableMemory: true]))
while (!f.atEndOfStream) {
char buf[64];
diff --git a/tests/OFSHA1HashTests.m b/tests/OFSHA1HashTests.m
index c0747030..941fcf8c 100644
--- a/tests/OFSHA1HashTests.m
+++ b/tests/OFSHA1HashTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -35,7 +35,8 @@ const uint8_t testfile_sha1[20] =
OFFile *f = [OFFile fileWithPath: @"testfile.bin"
mode: @"r"];
- TEST(@"+[cryptoHash]", (sha1 = [OFSHA1Hash cryptoHash]))
+ TEST(@"+[cryptoHashWithAllowsSwappableMemory:]",
+ (sha1 = [OFSHA1Hash cryptoHashWithAllowsSwappableMemory: true]))
while (!f.atEndOfStream) {
char buf[64];
diff --git a/tests/OFSHA224HashTests.m b/tests/OFSHA224HashTests.m
index 8e15c1a3..4fa34034 100644
--- a/tests/OFSHA224HashTests.m
+++ b/tests/OFSHA224HashTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -35,7 +35,8 @@ const uint8_t testfile_sha224[28] =
OFFile *f = [OFFile fileWithPath: @"testfile.bin"
mode: @"r"];
- TEST(@"+[cryptoHash]", (sha224 = [OFSHA224Hash cryptoHash]))
+ TEST(@"+[cryptoHashWithAllowsSwappableMemory:]",
+ (sha224 = [OFSHA224Hash cryptoHashWithAllowsSwappableMemory: true]))
while (!f.atEndOfStream) {
char buf[64];
diff --git a/tests/OFSHA256HashTests.m b/tests/OFSHA256HashTests.m
index 3fec17ab..199c7ccf 100644
--- a/tests/OFSHA256HashTests.m
+++ b/tests/OFSHA256HashTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -35,7 +35,8 @@ const uint8_t testfile_sha256[32] =
OFFile *f = [OFFile fileWithPath: @"testfile.bin"
mode: @"r"];
- TEST(@"+[cryptoHash]", (sha256 = [OFSHA256Hash cryptoHash]))
+ TEST(@"+[cryptoHashWithAllowsSwappableMemory:]",
+ (sha256 = [OFSHA256Hash cryptoHashWithAllowsSwappableMemory: true]))
while (!f.atEndOfStream) {
char buf[64];
diff --git a/tests/OFSHA384HashTests.m b/tests/OFSHA384HashTests.m
index 5558ac51..4426ff23 100644
--- a/tests/OFSHA384HashTests.m
+++ b/tests/OFSHA384HashTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -36,7 +36,8 @@ const uint8_t testfile_sha384[48] =
OFFile *f = [OFFile fileWithPath: @"testfile.bin"
mode: @"r"];
- TEST(@"+[cryptoHash]", (sha384 = [OFSHA384Hash cryptoHash]))
+ TEST(@"+[cryptoHashWithAllowsSwappableMemory:]",
+ (sha384 = [OFSHA384Hash cryptoHashWithAllowsSwappableMemory: true]))
while (!f.atEndOfStream) {
char buf[128];
diff --git a/tests/OFSHA512HashTests.m b/tests/OFSHA512HashTests.m
index 9ca35282..8cfbf915 100644
--- a/tests/OFSHA512HashTests.m
+++ b/tests/OFSHA512HashTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -37,7 +37,8 @@ const uint8_t testfile_sha512[64] =
OFFile *f = [OFFile fileWithPath: @"testfile.bin"
mode: @"r"];
- TEST(@"+[cryptoHash]", (sha512 = [OFSHA512Hash cryptoHash]))
+ TEST(@"+[cryptoHashWithAllowsSwappableMemory:]",
+ (sha512 = [OFSHA512Hash cryptoHashWithAllowsSwappableMemory: true]))
while (!f.atEndOfStream) {
char buf[128];
diff --git a/tests/OFSerializationTests.m b/tests/OFSerializationTests.m
index 7cd526ed..19cbeb8c 100644
--- a/tests/OFSerializationTests.m
+++ b/tests/OFSerializationTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
@@ -44,7 +44,7 @@ static OFString *module = @"OFSerialization";
[l appendObject: @"Hello"];
[l appendObject: @"Wo\rld!\nHow are you?"];
- [l appendObject: [OFURL URLWithString: @"https://webkeks.org/"]];
+ [l appendObject: [OFURL URLWithString: @"https://objfw.nil.im/"]];
[l appendObject:
[OFXMLElement elementWithXMLString: @"<x><y/><![CDATA[<]]></x>"]];
[l appendObject: [OFSet setWithObjects: @"foo", @"foo", @"bar", nil]];
diff --git a/tests/OFSetTests.m b/tests/OFSetTests.m
index 0ed0b0a8..41c9a10c 100644
--- a/tests/OFSetTests.m
+++ b/tests/OFSetTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFStreamTests.m b/tests/OFStreamTests.m
index b5531a92..fcc993b7 100644
--- a/tests/OFStreamTests.m
+++ b/tests/OFStreamTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFStringTests.m b/tests/OFStringTests.m
index 88475d0a..4844dd1f 100644
--- a/tests/OFStringTests.m
+++ b/tests/OFStringTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFSystemInfoTests.m b/tests/OFSystemInfoTests.m
index d9596304..ecd55954 100644
--- a/tests/OFSystemInfoTests.m
+++ b/tests/OFSystemInfoTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFTCPSocketTests.m b/tests/OFTCPSocketTests.m
index 5746516f..2ab81c7c 100644
--- a/tests/OFTCPSocketTests.m
+++ b/tests/OFTCPSocketTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFThreadTests.m b/tests/OFThreadTests.m
index 436b28cc..2b07d24a 100644
--- a/tests/OFThreadTests.m
+++ b/tests/OFThreadTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFUDPSocketTests.m b/tests/OFUDPSocketTests.m
index f8c23d7b..5d802ad7 100644
--- a/tests/OFUDPSocketTests.m
+++ b/tests/OFUDPSocketTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFURLTests.m b/tests/OFURLTests.m
index c2dcbfa9..6c76c098 100644
--- a/tests/OFURLTests.m
+++ b/tests/OFURLTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFValueTests.m b/tests/OFValueTests.m
index 46416a39..d83e1dde 100644
--- a/tests/OFValueTests.m
+++ b/tests/OFValueTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFWindowsRegistryKeyTests.m b/tests/OFWindowsRegistryKeyTests.m
index edc5f9ef..40e853dd 100644
--- a/tests/OFWindowsRegistryKeyTests.m
+++ b/tests/OFWindowsRegistryKeyTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFXMLElementBuilderTests.m b/tests/OFXMLElementBuilderTests.m
index 9e890ccb..75816cf4 100644
--- a/tests/OFXMLElementBuilderTests.m
+++ b/tests/OFXMLElementBuilderTests.m
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- * 2018, 2019
- * Jonathan Schleifer <js@heap.zone>
+ * 2018, 2019, 2020
+ * Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
diff --git a/tests/OFXMLNodeTests.m b/tests/OFXMLNodeTests.m
index cc39d9ba..8d6d5b9b 100644
--- a/tests/OFXMLNodeTests.m
+++ b/