Fix thread-safety assert when sending video attachments.

// FREEBIE
pull/1/head
Matthew Chen 8 years ago
parent e7639bbdbe
commit 19aac08bec

@ -56,6 +56,7 @@
#import <SignalServiceKit/OWSFingerprintBuilder.h> #import <SignalServiceKit/OWSFingerprintBuilder.h>
#import <SignalServiceKit/OWSMessageSender.h> #import <SignalServiceKit/OWSMessageSender.h>
#import <SignalServiceKit/SignalRecipient.h> #import <SignalServiceKit/SignalRecipient.h>
#import <SignalServiceKit/Threading.h>
#import <SignalServiceKit/TSAccountManager.h> #import <SignalServiceKit/TSAccountManager.h>
#import <SignalServiceKit/TSInvalidIdentityKeySendingErrorMessage.h> #import <SignalServiceKit/TSInvalidIdentityKeySendingErrorMessage.h>
#import <SignalServiceKit/TSMessagesManager.h> #import <SignalServiceKit/TSMessagesManager.h>
@ -1965,6 +1966,7 @@ typedef enum : NSUInteger {
[self dismissViewControllerAnimated:YES [self dismissViewControllerAnimated:YES
completion:^{ completion:^{
OWSAssert([NSThread isMainThread]); OWSAssert([NSThread isMainThread]);
[self sendMessageAttachment:attachment]; [self sendMessageAttachment:attachment];
}]; }];
} }
@ -1974,12 +1976,12 @@ typedef enum : NSUInteger {
- (void)sendMessageAttachment:(SignalAttachment *)attachment - (void)sendMessageAttachment:(SignalAttachment *)attachment
{ {
OWSAssert([NSThread isMainThread]);
// TODO: Should we assume non-nil or should we check for non-nil? // TODO: Should we assume non-nil or should we check for non-nil?
OWSAssert(attachment != nil); OWSAssert(attachment != nil);
OWSAssert(![attachment hasError]); OWSAssert(![attachment hasError]);
OWSAssert([attachment mimeType].length > 0); OWSAssert([attachment mimeType].length > 0);
DispatchMainThreadSafe(^{
TSOutgoingMessage *message; TSOutgoingMessage *message;
OWSDisappearingMessagesConfiguration *configuration = OWSDisappearingMessagesConfiguration *configuration =
[OWSDisappearingMessagesConfiguration fetchObjectWithUniqueID:self.thread.uniqueId]; [OWSDisappearingMessagesConfiguration fetchObjectWithUniqueID:self.thread.uniqueId];
@ -2009,6 +2011,7 @@ typedef enum : NSUInteger {
DDLogError( DDLogError(
@"%@ Failed to send message attachment with error: %@", self.tag, error); @"%@ Failed to send message attachment with error: %@", self.tag, error);
}]; }];
});
} }
- (NSURL *)videoTempFolder { - (NSURL *)videoTempFolder {

Loading…
Cancel
Save