-
-
Save snej/f6c0e1ba9230b3591a9f to your computer and use it in GitHub Desktop.
Mysteriously crashing Swift init method
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Observer : NSObject { | |
init(source: NSObject, keyPath: String, options: NSKeyValueObservingOptions = nil, onChange: ()->()) { | |
self.source = source | |
self.keyPath = keyPath | |
self.onChange = onChange | |
super.init() | |
source.addObserver(self, forKeyPath: self.keyPath, options: options, context: nil) | |
} // -> LLDB highlights this line at the point of the crash | |
deinit { | |
source?.removeObserver(self, forKeyPath: keyPath) | |
} | |
/** Stops observing. */ | |
public func stop() { | |
source?.removeObserver(self, forKeyPath: keyPath) | |
source = nil | |
} | |
override public func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) { | |
onChange() | |
} | |
private var source: NSObject? | |
private let keyPath: String | |
private let onChange: ()->() | |
} | |
// Disassembly of the 'init' method. Crash is inside the objc_release call just above the line prefixed with "->" ... | |
PeerSyncMac`PeerSyncMac.Observer.init (PeerSyncMac.Observer.Type)(source : ObjectiveC.NSObject, keyPath : Swift.String, options : C.NSKeyValueObservingOptions, onChange : () -> ()) -> PeerSyncMac.Observer: | |
0x10000b290 <+0>: pushq %rbp | |
0x10000b291 <+1>: movq %rsp, %rbp | |
0x10000b294 <+4>: pushq %rbx | |
0x10000b295 <+5>: subq $0xf8, %rsp | |
0x10000b29c <+12>: movq 0x18(%rbp), %rax | |
0x10000b2a0 <+16>: movq 0x10(%rbp), %r10 | |
0x10000b2a4 <+20>: movq %rdi, -0x18(%rbp) | |
0x10000b2a8 <+24>: movq %rsi, -0x30(%rbp) | |
0x10000b2ac <+28>: movq %rdx, -0x28(%rbp) | |
0x10000b2b0 <+32>: movq %rcx, -0x20(%rbp) | |
0x10000b2b4 <+36>: movq %r8, -0x38(%rbp) | |
0x10000b2b8 <+40>: movq %r9, -0x48(%rbp) | |
0x10000b2bc <+44>: movq %r10, -0x40(%rbp) | |
0x10000b2c0 <+48>: movq %rax, -0x10(%rbp) | |
0x10000b2c4 <+52>: movq $0x0, -0x50(%rbp) | |
0x10000b2cc <+60>: movq -0x50(%rbp), %r11 | |
0x10000b2d0 <+64>: movq 0x29b69(%rip), %rbx ; direct field offset for PeerSyncMac.Observer.(source in _41EA7B606512F5AB7625E3C46326EE23) | |
0x10000b2d7 <+71>: movq %r11, (%rax,%rbx) | |
0x10000b2db <+75>: movq %rdi, -0x70(%rbp) | |
0x10000b2df <+79>: movq %r10, -0x78(%rbp) | |
0x10000b2e3 <+83>: movq %r9, -0x80(%rbp) | |
0x10000b2e7 <+87>: movq %r8, -0x88(%rbp) | |
0x10000b2ee <+94>: movq %rcx, -0x90(%rbp) | |
0x10000b2f5 <+101>: movq %rdx, -0x98(%rbp) | |
0x10000b2fc <+108>: movq %rsi, -0xa0(%rbp) | |
0x10000b303 <+115>: movq %rax, -0xa8(%rbp) | |
0x10000b30a <+122>: callq 0x10002955c ; symbol stub for: objc_retain | |
0x10000b30f <+127>: movq -0x70(%rbp), %rcx | |
0x10000b313 <+131>: movq %rcx, -0x58(%rbp) | |
0x10000b317 <+135>: movq -0x58(%rbp), %rdx | |
0x10000b31b <+139>: movq 0x29b1e(%rip), %rsi ; direct field offset for PeerSyncMac.Observer.(source in _41EA7B606512F5AB7625E3C46326EE23) | |
0x10000b322 <+146>: movq -0xa8(%rbp), %rdi | |
0x10000b329 <+153>: movq (%rdi,%rsi), %rdi | |
0x10000b32d <+157>: movq -0xa8(%rbp), %r8 | |
0x10000b334 <+164>: movq %rdx, (%r8,%rsi) | |
0x10000b338 <+168>: movq %rax, -0xb0(%rbp) | |
0x10000b33f <+175>: callq 0x100029778 ; symbol stub for: swift_unknownRelease | |
0x10000b344 <+180>: movq -0x90(%rbp), %rdi | |
0x10000b34b <+187>: callq 0x10002977e ; symbol stub for: swift_unknownRetain | |
0x10000b350 <+192>: movq 0x29af1(%rip), %rax ; direct field offset for PeerSyncMac.Observer.(keyPath in _41EA7B606512F5AB7625E3C46326EE23) | |
0x10000b357 <+199>: movq -0xa8(%rbp), %rcx | |
0x10000b35e <+206>: movq -0xa0(%rbp), %rdx | |
0x10000b365 <+213>: movq %rdx, (%rcx,%rax) | |
0x10000b369 <+217>: movq -0x98(%rbp), %rsi | |
0x10000b370 <+224>: movq %rsi, 0x8(%rcx,%rax) | |
0x10000b375 <+229>: movq -0x90(%rbp), %rdi | |
0x10000b37c <+236>: movq %rdi, 0x10(%rcx,%rax) | |
0x10000b381 <+241>: movq -0x78(%rbp), %rdi | |
0x10000b385 <+245>: callq 0x100029766 ; symbol stub for: swift_retain_noresult | |
0x10000b38a <+250>: movq 0x29abf(%rip), %rax ; direct field offset for PeerSyncMac.Observer.(onChange in _41EA7B606512F5AB7625E3C46326EE23) | |
0x10000b391 <+257>: movq -0xa8(%rbp), %rcx | |
0x10000b398 <+264>: movq -0x80(%rbp), %rdx | |
0x10000b39c <+268>: movq %rdx, (%rcx,%rax) | |
0x10000b3a0 <+272>: movq -0x78(%rbp), %rsi | |
0x10000b3a4 <+276>: movq %rsi, 0x8(%rcx,%rax) | |
0x10000b3a9 <+281>: movq %rcx, -0xb8(%rbp) | |
0x10000b3b0 <+288>: callq 0x10000b500 ; type metadata accessor for PeerSyncMac.Observer | |
0x10000b3b5 <+293>: leaq -0x68(%rbp), %rdi | |
0x10000b3b9 <+297>: movq -0xb8(%rbp), %rcx | |
0x10000b3c0 <+304>: movq %rcx, -0x68(%rbp) | |
0x10000b3c4 <+308>: movq %rax, -0x60(%rbp) | |
0x10000b3c8 <+312>: movq 0x26ca9(%rip), %rsi ; "init" | |
0x10000b3cf <+319>: callq 0x100029550 ; symbol stub for: objc_msgSendSuper2 | |
0x10000b3d4 <+324>: movq %rax, -0x10(%rbp) | |
0x10000b3d8 <+328>: cmpq $0x0, %rax | |
0x10000b3de <+334>: movq %rax, -0xc0(%rbp) | |
0x10000b3e5 <+341>: jne 0x10000b3ec ; <+348> at Observer.swift:20 | |
0x10000b3e7 <+343>: jmp 0x10000b4cd ; <+573> at Observer.swift | |
0x10000b3ec <+348>: movq -0x70(%rbp), %rdi | |
0x10000b3f0 <+352>: callq 0x10002955c ; symbol stub for: objc_retain | |
0x10000b3f5 <+357>: movq -0xc0(%rbp), %rdi | |
0x10000b3fc <+364>: movq %rax, -0xc8(%rbp) | |
0x10000b403 <+371>: callq 0x10002955c ; symbol stub for: objc_retain | |
0x10000b408 <+376>: movq -0xc0(%rbp), %rdi | |
0x10000b40f <+383>: movq 0x29a32(%rip), %rcx ; direct field offset for PeerSyncMac.Observer.(keyPath in _41EA7B606512F5AB7625E3C46326EE23) | |
0x10000b416 <+390>: movq -0xc0(%rbp), %rdx | |
0x10000b41d <+397>: movq (%rdx,%rcx), %rsi | |
0x10000b421 <+401>: movq 0x8(%rdx,%rcx), %r8 | |
0x10000b426 <+406>: movq 0x10(%rdx,%rcx), %rcx | |
0x10000b42b <+411>: movq %rdi, -0xd0(%rbp) | |
0x10000b432 <+418>: movq %rcx, %rdi | |
0x10000b435 <+421>: movq %rax, -0xd8(%rbp) | |
0x10000b43c <+428>: movq %rcx, -0xe0(%rbp) | |
0x10000b443 <+435>: movq %r8, -0xe8(%rbp) | |
0x10000b44a <+442>: movq %rsi, -0xf0(%rbp) | |
0x10000b451 <+449>: callq 0x10002977e ; symbol stub for: swift_unknownRetain | |
0x10000b456 <+454>: movq -0xf0(%rbp), %rdi | |
0x10000b45d <+461>: movq -0xe8(%rbp), %rsi | |
0x10000b464 <+468>: movq -0xe0(%rbp), %rdx | |
0x10000b46b <+475>: callq 0x1000296e2 ; symbol stub for: swift_convertStringToNSString | |
0x10000b470 <+480>: xorl %r9d, %r9d | |
0x10000b473 <+483>: movq 0x26c3e(%rip), %rsi ; "addObserver:forKeyPath:options:context:" | |
0x10000b47a <+490>: movq -0xd0(%rbp), %rcx | |
0x10000b481 <+497>: movq %rax, %rdx | |
0x10000b484 <+500>: movq -0x70(%rbp), %rdi | |
0x10000b488 <+504>: movq %rdx, -0xf8(%rbp) | |
0x10000b48f <+511>: movq %rcx, %rdx | |
0x10000b492 <+514>: movq -0xf8(%rbp), %rcx | |
0x10000b499 <+521>: movq -0x88(%rbp), %r8 | |
0x10000b4a0 <+528>: movq %rax, -0x100(%rbp) | |
0x10000b4a7 <+535>: callq 0x10002954a ; symbol stub for: objc_msgSend | |
0x10000b4ac <+540>: movq -0x100(%rbp), %rdi | |
0x10000b4b3 <+547>: callq 0x100029556 ; symbol stub for: objc_release | |
-> 0x10000b4b8 <+552>: movq -0xc0(%rbp), %rdi | |
0x10000b4bf <+559>: callq 0x100029556 ; symbol stub for: objc_release | |
0x10000b4c4 <+564>: movq -0x70(%rbp), %rdi | |
0x10000b4c8 <+568>: callq 0x100029556 ; symbol stub for: objc_release | |
0x10000b4cd <+573>: movq -0x78(%rbp), %rdi | |
0x10000b4d1 <+577>: callq 0x10002975a ; symbol stub for: swift_release | |
0x10000b4d6 <+582>: movq -0x90(%rbp), %rdi | |
0x10000b4dd <+589>: callq 0x100029778 ; symbol stub for: swift_unknownRelease | |
0x10000b4e2 <+594>: movq -0x70(%rbp), %rdi | |
0x10000b4e6 <+598>: callq 0x100029556 ; symbol stub for: objc_release | |
0x10000b4eb <+603>: movq -0xc0(%rbp), %rax | |
0x10000b4f2 <+610>: addq $0xf8, %rsp | |
0x10000b4f9 <+617>: popq %rbx | |
0x10000b4fa <+618>: popq %rbp | |
0x10000b4fb <+619>: retq | |
// And here's the method that gets called, during which the ephemeral NSString is (over)released: | |
PeerSyncMac`PeerSyncMac.Peer.addObserver (PeerSyncMac.Peer)(ObjectiveC.NSObject, forKeyPath : Swift.String, options : C.NSKeyValueObservingOptions, context : Swift.UnsafeMutablePointer<()>) -> (): | |
0x100020b90 <+0>: pushq %rbp | |
0x100020b91 <+1>: movq %rsp, %rbp | |
0x100020b94 <+4>: subq $0x150, %rsp | |
0x100020b9b <+11>: movq 0x10(%rbp), %rax | |
0x100020b9f <+15>: movq %rdi, -0x8(%rbp) | |
0x100020ba3 <+19>: movq %rsi, -0x20(%rbp) | |
0x100020ba7 <+23>: movq %rdx, -0x18(%rbp) | |
0x100020bab <+27>: movq %rcx, -0x10(%rbp) | |
0x100020baf <+31>: movq %r8, -0x28(%rbp) | |
0x100020bb3 <+35>: movq %r9, -0x30(%rbp) | |
0x100020bb7 <+39>: movq %rax, -0x38(%rbp) | |
0x100020bbb <+43>: movq %rdi, -0xa0(%rbp) | |
0x100020bc2 <+50>: movq %rcx, %rdi | |
0x100020bc5 <+53>: movq %rax, -0xa8(%rbp) | |
0x100020bcc <+60>: movq %r9, -0xb0(%rbp) | |
0x100020bd3 <+67>: movq %r8, -0xb8(%rbp) | |
0x100020bda <+74>: movq %rcx, -0xc0(%rbp) | |
0x100020be1 <+81>: movq %rdx, -0xc8(%rbp) | |
0x100020be8 <+88>: movq %rsi, -0xd0(%rbp) | |
0x100020bef <+95>: callq 0x10002878e ; symbol stub for: swift_unknownRetain | |
0x100020bf4 <+100>: leaq 0xa016(%rip), %rdi ; "hostName" | |
0x100020bfb <+107>: movl $0x8, %r10d | |
0x100020c01 <+113>: movl %r10d, %esi | |
0x100020c04 <+116>: movl $0x1, %edx | |
0x100020c09 <+121>: callq 0x1000285de ; symbol stub for: Swift.String.init (Swift.String.Type)(_builtinStringLiteral : Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String | |
0x100020c0e <+126>: movq -0xd0(%rbp), %rdi | |
0x100020c15 <+133>: movq -0xc8(%rbp), %rsi | |
0x100020c1c <+140>: movq -0xc0(%rbp), %r8 | |
0x100020c23 <+147>: movq %rdx, -0xd8(%rbp) | |
0x100020c2a <+154>: movq %r8, %rdx | |
0x100020c2d <+157>: movq %rcx, -0xe0(%rbp) | |
0x100020c34 <+164>: movq %rax, %rcx | |
0x100020c37 <+167>: movq -0xd8(%rbp), %r8 | |
0x100020c3e <+174>: movq -0xe0(%rbp), %r9 | |
0x100020c45 <+181>: callq 0x1000286b6 ; symbol stub for: static Swift.== infix (Swift.String, Swift.String) -> Swift.Bool | |
0x100020c4a <+186>: testb $0x1, %al | |
0x100020c4c <+188>: jne 0x100020c53 ; <+195> at Peer.swift:72 | |
0x100020c4e <+190>: jmp 0x100020d3c ; <+428> at Peer.swift:73 | |
0x100020c53 <+195>: movq 0x105be(%rip), %rsi ; "hostName" | |
0x100020c5a <+202>: movq -0xa8(%rbp), %rax | |
0x100020c61 <+209>: movq %rax, %rdi | |
0x100020c64 <+212>: callq 0x10002855a ; symbol stub for: objc_msgSend | |
0x100020c69 <+217>: movq %rax, %rdi | |
0x100020c6c <+220>: callq 0x100028572 ; symbol stub for: objc_retainAutoreleasedReturnValue | |
0x100020c71 <+225>: movq %rax, -0x98(%rbp) | |
0x100020c78 <+232>: cmpq $0x0, -0x98(%rbp) | |
0x100020c83 <+243>: sete %cl | |
0x100020c86 <+246>: xorb $0x1, %cl | |
0x100020c89 <+249>: testb $0x1, %cl | |
0x100020c8c <+252>: jne 0x100020c90 ; <+256> at Peer.swift:72 | |
0x100020c8e <+254>: jmp 0x100020cb4 ; <+292> at Peer.swift:72 | |
0x100020c90 <+256>: movq -0x98(%rbp), %rdi | |
0x100020c97 <+263>: callq 0x10002858a ; symbol stub for: Foundation._convertNSStringToString (ObjectiveC.NSString) -> Swift.String | |
0x100020c9c <+268>: movq %rax, -0x90(%rbp) | |
0x100020ca3 <+275>: movq %rdx, -0x88(%rbp) | |
0x100020caa <+282>: movq %rcx, -0x80(%rbp) | |
0x100020cae <+286>: movb $0x0, -0x78(%rbp) | |
0x100020cb2 <+290>: jmp 0x100020cd6 ; <+326> at Peer.swift:72 | |
0x100020cb4 <+292>: movq $0x0, -0x88(%rbp) | |
0x100020cbf <+303>: movq $0x0, -0x90(%rbp) | |
0x100020cca <+314>: movq $0x0, -0x80(%rbp) | |
0x100020cd2 <+322>: movb $0x1, -0x78(%rbp) | |
0x100020cd6 <+326>: movq -0x80(%rbp), %rax | |
0x100020cda <+330>: movq -0x90(%rbp), %rcx | |
0x100020ce1 <+337>: movq -0x88(%rbp), %rdx | |
0x100020ce8 <+344>: movb -0x78(%rbp), %sil | |
0x100020cec <+348>: movq -0x60(%rbp), %rdi | |
0x100020cf0 <+352>: movq -0x70(%rbp), %r8 | |
0x100020cf4 <+356>: movq -0x68(%rbp), %r9 | |
0x100020cf8 <+360>: movb -0x58(%rbp), %r10b | |
0x100020cfc <+364>: movq %rdx, -0x68(%rbp) | |
0x100020d00 <+368>: movq %rcx, -0x70(%rbp) | |
0x100020d04 <+372>: movq %rax, -0x60(%rbp) | |
0x100020d08 <+376>: movb %sil, -0x58(%rbp) | |
0x100020d0c <+380>: testb %r10b, %r10b | |
0x100020d0f <+383>: movq %r8, -0xe8(%rbp) | |
0x100020d16 <+390>: movq %r9, -0xf0(%rbp) | |
0x100020d1d <+397>: movq %rdi, -0xf8(%rbp) | |
0x100020d24 <+404>: jne 0x100020d37 ; <+423> at Peer.swift:73 | |
0x100020d26 <+406>: jmp 0x100020d28 ; <+408> at Peer.swift:72 | |
0x100020d28 <+408>: movq -0xf8(%rbp), %rax | |
0x100020d2f <+415>: movq %rax, %rdi | |
0x100020d32 <+418>: callq 0x100028788 ; symbol stub for: swift_unknownRelease | |
0x100020d37 <+423>: jmp 0x100020e4b ; <+699> at Peer.swift:76 | |
0x100020d3c <+428>: movq -0xc0(%rbp), %rdi | |
0x100020d43 <+435>: callq 0x10002878e ; symbol stub for: swift_unknownRetain | |
0x100020d48 <+440>: leaq 0x9ecb(%rip), %rdi ; "txtRecord" | |
0x100020d4f <+447>: movl $0x9, %eax | |
0x100020d54 <+452>: movl %eax, %esi | |
0x100020d56 <+454>: movl $0x1, %edx | |
0x100020d5b <+459>: callq 0x1000285de ; symbol stub for: Swift.String.init (Swift.String.Type)(_builtinStringLiteral : Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String | |
0x100020d60 <+464>: movq -0xd0(%rbp), %rdi | |
0x100020d67 <+471>: movq -0xc8(%rbp), %rsi | |
0x100020d6e <+478>: movq -0xc0(%rbp), %r8 | |
0x100020d75 <+485>: movq %rdx, -0x100(%rbp) | |
0x100020d7c <+492>: movq %r8, %rdx | |
0x100020d7f <+495>: movq %rcx, -0x108(%rbp) | |
0x100020d86 <+502>: movq %rax, %rcx | |
0x100020d89 <+505>: movq -0x100(%rbp), %r8 | |
0x100020d90 <+512>: movq -0x108(%rbp), %r9 | |
0x100020d97 <+519>: callq 0x1000286b6 ; symbol stub for: static Swift.== infix (Swift.String, Swift.String) -> Swift.Bool | |
0x100020d9c <+524>: testb $0x1, %al | |
0x100020d9e <+526>: jne 0x100020da5 ; <+533> at Peer.swift:74 | |
0x100020da0 <+528>: jmp 0x100020e49 ; <+697> at Peer.swift:75 | |
0x100020da5 <+533>: movq 0x102dc(%rip), %rsi ; "txtRecord" | |
0x100020dac <+540>: movq -0xa8(%rbp), %rdi | |
0x100020db3 <+547>: callq 0x10002855a ; symbol stub for: objc_msgSend | |
0x100020db8 <+552>: movq %rax, %rdi | |
0x100020dbb <+555>: callq 0x100028572 ; symbol stub for: objc_retainAutoreleasedReturnValue | |
0x100020dc0 <+560>: movq 0xc361(%rip), %rsi ; (void *)0x0000000100689190: direct type metadata for Swift.String | |
0x100020dc7 <+567>: addq $0x8, %rsi | |
0x100020dcb <+571>: movq 0xc3a6(%rip), %rdx ; (void *)0x000000010067ebf8: protocol witness table for Swift.String : Swift.Hashable in Swift | |
0x100020dd2 <+578>: movq %rax, %rdi | |
0x100020dd5 <+581>: movq %rsi, -0x110(%rbp) | |
0x100020ddc <+588>: movq -0x110(%rbp), %rcx | |
0x100020de3 <+595>: callq 0x100028596 ; symbol stub for: Foundation._convertNSDictionaryToDictionary <A : Swift.Hashable, B>(ObjectiveC.NSDictionary) -> Swift.Dictionary<A, B> | |
0x100020de8 <+600>: movq -0x50(%rbp), %rcx | |
0x100020dec <+604>: movq %rax, -0x50(%rbp) | |
0x100020df0 <+608>: movq %rcx, %rax | |
0x100020df3 <+611>: shrq $0x3f, %rax | |
0x100020df7 <+615>: movb %al, %r8b | |
0x100020dfa <+618>: testq %rax, %rax | |
0x100020dfd <+621>: movq %rcx, -0x118(%rbp) | |
0x100020e04 <+628>: movb %r8b, -0x119(%rbp) | |
0x100020e0b <+635>: jne 0x100020e2b ; <+667> at Peer.swift:74 | |
0x100020e0d <+637>: jmp 0x100020e0f ; <+639> at Peer.swift:74 | |
0x100020e0f <+639>: movb -0x119(%rbp), %al | |
0x100020e15 <+645>: notb %al | |
0x100020e17 <+647>: testb $0x1, %al | |
0x100020e19 <+649>: je 0x100020e47 ; <+695> at Peer.swift:75 | |
0x100020e1b <+651>: jmp 0x100020e1d ; <+653> at Peer.swift:74 | |
0x100020e1d <+653>: movq -0x118(%rbp), %rdi | |
0x100020e24 <+660>: callq 0x10002876a ; symbol stub for: swift_release | |
-> 0x100020e29 <+665>: jmp 0x100020e47 ; <+695> at Peer.swift:75 | |
0x100020e2b <+667>: movabsq $0x7fffffffffffffff, %rax | |
0x100020e35 <+677>: movq -0x118(%rbp), %rcx | |
0x100020e3c <+684>: andq %rax, %rcx | |
0x100020e3f <+687>: movq %rcx, %rdi | |
0x100020e42 <+690>: callq 0x100028788 ; symbol stub for: swift_unknownRelease | |
0x100020e47 <+695>: jmp 0x100020e49 ; <+697> at Peer.swift:75 | |
0x100020e49 <+697>: jmp 0x100020e4b ; <+699> at Peer.swift:76 | |
0x100020e4b <+699>: movq -0xa8(%rbp), %rdi | |
0x100020e52 <+706>: callq 0x10002856c ; symbol stub for: objc_retain | |
0x100020e57 <+711>: movq -0xa8(%rbp), %rdi | |
0x100020e5e <+718>: movq -0xc0(%rbp), %rcx | |
0x100020e65 <+725>: movq %rdi, -0x128(%rbp) | |
0x100020e6c <+732>: movq %rcx, %rdi | |
0x100020e6f <+735>: movq %rax, -0x130(%rbp) | |
0x100020e76 <+742>: callq 0x10002878e ; symbol stub for: swift_unknownRetain | |
0x100020e7b <+747>: movq -0xd0(%rbp), %rdi | |
0x100020e82 <+754>: movq -0xc8(%rbp), %rsi | |
0x100020e89 <+761>: movq -0xc0(%rbp), %rdx | |
0x100020e90 <+768>: callq 0x1000286f2 ; symbol stub for: swift_convertStringToNSString | |
0x100020e95 <+773>: movq -0x128(%rbp), %rcx | |
0x100020e9c <+780>: movq %rax, -0x138(%rbp) | |
0x100020ea3 <+787>: movq %rcx, -0x140(%rbp) | |
0x100020eaa <+794>: callq 0x100022db0 ; type metadata accessor for PeerSyncMac.Peer | |
0x100020eaf <+799>: leaq -0x48(%rbp), %rdi | |
0x100020eb3 <+803>: movq -0x140(%rbp), %rcx | |
0x100020eba <+810>: movq %rcx, -0x48(%rbp) | |
0x100020ebe <+814>: movq %rax, -0x40(%rbp) | |
0x100020ec2 <+818>: movq 0x101cf(%rip), %rsi ; "addObserver:forKeyPath:options:context:" | |
0x100020ec9 <+825>: movq -0xa0(%rbp), %rax | |
0x100020ed0 <+832>: movq -0x138(%rbp), %rdx | |
0x100020ed7 <+839>: movq %rdx, -0x148(%rbp) | |
0x100020ede <+846>: movq %rax, %rdx | |
0x100020ee1 <+849>: movq -0x148(%rbp), %rcx | |
0x100020ee8 <+856>: movq -0xb8(%rbp), %r8 | |
0x100020eef <+863>: movq -0xb0(%rbp), %r9 | |
0x100020ef6 <+870>: callq 0x100028560 ; symbol stub for: objc_msgSendSuper2 | |
0x100020efb <+875>: movq -0x138(%rbp), %rdi | |
0x100020f02 <+882>: callq 0x100028566 ; symbol stub for: objc_release | |
0x100020f07 <+887>: movq -0xa8(%rbp), %rdi | |
0x100020f0e <+894>: callq 0x100028566 ; symbol stub for: objc_release | |
0x100020f13 <+899>: movq -0xa8(%rbp), %rdi | |
0x100020f1a <+906>: callq 0x100028566 ; symbol stub for: objc_release | |
0x100020f1f <+911>: movq -0xc0(%rbp), %rdi | |
0x100020f26 <+918>: callq 0x100028788 ; symbol stub for: swift_unknownRelease | |
0x100020f2b <+923>: movq -0xa0(%rbp), %rdi | |
0x100020f32 <+930>: callq 0x100028566 ; symbol stub for: objc_release | |
0x100020f37 <+935>: addq $0x150, %rsp | |
0x100020f3e <+942>: popq %rbp | |
0x100020f3f <+943>: retq |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment