I filed a bug on this today: 33502122. > On 2017 Jun 30, at 14:53, Jerome Krinock <je...@ieee.org> wrote: > > It looks to me that, in the edge case where user clicks File : Duplicate and > then enters a file path/name that already exists in the filesystem, so that > Cocoa prompts to "Replace" or "Cancel", the new NSDocument object gets four > (4) unbalanced retains, and therefore leaks. This is reproducible in macOS > 10.12 or 10.13, Swift or Objective-C, ARC or not. > > I say this because a document which has has been created in this way does not > dealloc as documents normally do when closed (or a few seconds thereafter), > but it does dealloc if I send it four unbalanced -release messages. And if I > send it five unbalanced -release messages, a zombie squeals as expected. > > The `leaks` command-line tool indicates 0 leaks before the File : Duplicate, > and 12 leaks after closing the duplicated (and I think leaky) document, > including some leaked code blocks, although none of the leaks are a > document/NSDocument object per se. > > If no one can find a mistake in my analysis I’ll file a bug. > > Jerry Krinock > > In case you want to see for yourself: > > https://youtu.be/zSQ1hY7JVZs (03:49) > https://github.com/jerrykrinock/LeakyDocumentDemo > > ACA80004:~ jk$ leaks 4800 > Process: LeakyDocSwiftDemo [4800] > Path: > /Users/jk/Library/Developer/Xcode/DerivedData/LeakyDocumentDemo-ctlrylejnnaaxqddgjsbbjsrcnzy/Build/Products/Debug/LeakyDocSwiftDemo.app/Contents/MacOS/LeakyDocSwiftDemo > Load Address: 0x100000000 > Identifier: com.sheepsystems.LeakyDocumentSwiftDemo > Version: 1.0 (1) > Code Type: X86-64 > Parent Process: debugserver [4801] > > Date/Time: 2017-06-30 14:27:22.798 -0700 > Launch Time: 2017-06-30 14:24:29.663 -0700 > OS Version: Mac OS X 10.12.6 (16G23a) > Report Version: 7 > Analysis Tool: /Applications/Xcode.app/Contents/Developer/usr/bin/leaks > Analysis Tool Version: Xcode 8.3.3 (8E3004b) > ---- > > leaks Report Version: 2.0 > Process 4800: 45412 nodes malloced for 6440 KB > Process 4800: 12 leaks for 608 total leaked bytes. > Leak: 0x608000221f40 size=32 zone: DefaultMallocZone_0x100ea5000 CFString > (Storage) C CoreFoundation length: 4 has-length-byte: "doc1" > Leak: 0x608000222c40 size=32 zone: DefaultMallocZone_0x100ea5000 > __NSExactBlockVariable__ __block variable CoreFoundation > 0x00000000 0x00000000 0x00222c40 0x00006080 ........@,"..`.. > 0x21000004 0x00000020 0x0045d200 0x00006000 ...! .....E..`.. > Leak: 0x608000222c60 size=32 zone: DefaultMallocZone_0x100ea5000 > __NSExactBlockVariable__ __block variable CoreFoundation > 0x00000000 0x00000000 0x00222c60 0x00006080 ........`,"..`.. > 0x21000004 0x00000020 0x00104f01 0x00006000 ...! ....O...`.. > Leak: 0x608000256620 size=48 zone: DefaultMallocZone_0x100ea5000 > __NSMallocBlock__ ObjC CoreFoundation AppKit __75-[NSWindow > _titlebarEditingDidEndNormally:title:editingRange:grantHandler:]_block_invoke_3 > 0x7fff8cb68ce9 > Leak: 0x60800025a280 size=48 zone: DefaultMallocZone_0x100ea5000 > __NSMallocBlock__ ObjC CoreFoundation AppKit __77-[NSDocument > duplicateDocumentWithDelegate:didDuplicateSelector:contextInfo:]_block_invoke.2577 > 0x7fff8c7f24a5 > Leak: 0x60800025d220 size=48 zone: DefaultMallocZone_0x100ea5000 > __NSMallocBlock__ ObjC CoreFoundation AppKit > __81-[NSDocument(NSDocumentSerializationAPIs) > _activityCompletionHandlerForActivity:]_block_invoke 0x7fff8c89437b > Leak: 0x60800025d2e0 size=48 zone: DefaultMallocZone_0x100ea5000 > NSMutableArray ObjC CoreFoundation item count: 5 > Leak: 0x608000279e80 size=64 zone: DefaultMallocZone_0x100ea5000 CFString > ObjC CoreFoundation length: 4 mutable non-inline: "doc1" > Leak: 0x608000462880 size=64 zone: DefaultMallocZone_0x100ea5000 > _NSDocumentActivity ObjC AppKit > 0xa9241079 0x001dffff 0x00000001 0x00000000 y.$............. > 0x00000000 0x00000000 0x00464400 0x00006080 .........DF..`.. > 0x00000101 0x00000000 0x0025d2e0 0x00006080 ..........%..`.. > 0x00465c00 0x00006080 0x00000000 0x00000000 .\F..`.......... > Leak: 0x608000464400 size=64 zone: DefaultMallocZone_0x100ea5000 > __NSMallocBlock__ ObjC CoreFoundation AppKit __77-[NSDocument > duplicateDocumentWithDelegate:didDuplicateSelector:contextInfo:]_block_invoke_4 > 0x7fff8c7f1dd9 > Leak: 0x608000465c00 size=64 zone: DefaultMallocZone_0x100ea5000 > __NSMallocBlock__ ObjC CoreFoundation AppKit __77-[NSDocument > duplicateDocumentWithDelegate:didDuplicateSelector:contextInfo:]_block_invoke.2594 > 0x7fff8c7f27e2 > Leak: 0x608000466440 size=64 zone: DefaultMallocZone_0x100ea5000 > __NSMallocBlock__ ObjC CoreFoundation AppKit __75-[NSWindow > _titlebarEditingDidEndNormally:title:editingRange:grantHandler:]_block_invoke.4316 > 0x7fff8cb68a73 > ACA80004:~ jk$ > > P.S. Despite all of the Objective-C in that report, I assure you this is my > Swift target running :)) > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/jerry%40ieee.org > > This email sent to je...@ieee.org
_______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com