mtproto memory leak bug fix [skip ci]

This commit is contained in:
overtake 2020-01-14 16:25:56 +04:00
parent 14f9d04a36
commit d56ec6c1f2
2 changed files with 6 additions and 3 deletions

View File

@ -1394,7 +1394,7 @@ static int32_t fixedTimeDifferenceValue = 0;
NSArray *currentListeners = [[NSArray alloc] initWithArray:strongSelf->_changeListeners];
for (id<MTContextChangeListener> listener in currentListeners) {
if ([listener respondsToSelector:@selector(contextLoggedOut:)])
[listener contextLoggedOut:self];
[listener contextLoggedOut:strongSelf];
}
}
}];

View File

@ -235,7 +235,7 @@ static const NSUInteger MTMaxUnacknowledgedMessageCount = 64;
if ((_mtState & MTProtoStateStopped) == 0)
{
[self setMtState:_mtState | MTProtoStateStopped];
[_context removeChangeListener:self];
if (_transport != nil)
{
_transport.delegate = nil;
@ -2098,6 +2098,9 @@ static NSString *dumpHexString(NSData *data, int maxLength) {
int64_t dataMessageId = 0;
bool parseError = false;
NSArray *parsedMessages = [self _parseIncomingMessages:decryptedData dataMessageId:&dataMessageId parseError:&parseError];
for (MTIncomingMessage *message in parsedMessages) {
if ([message.body isKindOfClass:[MTRpcResultMessage class]]) {
MTRpcResultMessage *rpcResultMessage = message.body;
@ -2111,7 +2114,7 @@ static NSString *dumpHexString(NSData *data, int maxLength) {
MTShortLog(@"[MTProto#%p@%p received AUTH_KEY_PERM_EMPTY]", self, _context);
[self handleMissingKey:scheme.address];
[self requestSecureTransportReset];
return;
}
}