fix: memory leak
fix memory leaks related to
- image creation
- metal view
Change-Id: I2e5af4f06a7b22f671aa7dfecc4b4d68487d8599
diff --git a/src/SmartViewVC.mm b/src/SmartViewVC.mm
index 1d4caf1..aaf5a9b 100755
--- a/src/SmartViewVC.mm
+++ b/src/SmartViewVC.mm
@@ -496,24 +496,26 @@
[displayRingID setStringValue:displayIDString];
[displayRingID setHidden:NO];
}
- auto& imageManip = reinterpret_cast<Interfaces::ImageManipulationDelegate&>(GlobalInstances::pixmapManipulator());
- NSImage* image = QtMac::toNSImage(qvariant_cast<QPixmap>(imageManip.conversationPhoto(conversation, convModel_->owner)));
- if(image) {
- [NSLayoutConstraint deactivateConstraints:[photoView constraints]];
- NSArray* constraints = [NSLayoutConstraint
- constraintsWithVisualFormat:@"H:[photoView(54)]"
- options:0
- metrics:nil views:NSDictionaryOfVariableBindings(photoView)];
- [NSLayoutConstraint activateConstraints:constraints];
- } else {
- [NSLayoutConstraint deactivateConstraints:[photoView constraints]];
- NSArray* constraints = [NSLayoutConstraint
- constraintsWithVisualFormat:@"H:[photoView(0)]"
- options:0
- metrics:nil views:NSDictionaryOfVariableBindings(photoView)];
- [NSLayoutConstraint activateConstraints:constraints];
+ @autoreleasepool {
+ auto& imageManip = reinterpret_cast<Interfaces::ImageManipulationDelegate&>(GlobalInstances::pixmapManipulator());
+ NSImage* image = QtMac::toNSImage(qvariant_cast<QPixmap>(imageManip.conversationPhoto(conversation, convModel_->owner)));
+ if(image) {
+ [NSLayoutConstraint deactivateConstraints:[photoView constraints]];
+ NSArray* constraints = [NSLayoutConstraint
+ constraintsWithVisualFormat:@"H:[photoView(54)]"
+ options:0
+ metrics:nil views:NSDictionaryOfVariableBindings(photoView)];
+ [NSLayoutConstraint activateConstraints:constraints];
+ } else {
+ [NSLayoutConstraint deactivateConstraints:[photoView constraints]];
+ NSArray* constraints = [NSLayoutConstraint
+ constraintsWithVisualFormat:@"H:[photoView(0)]"
+ options:0
+ metrics:nil views:NSDictionaryOfVariableBindings(photoView)];
+ [NSLayoutConstraint activateConstraints:constraints];
+ }
+ [photoView setImage: image];
}
- [photoView setImage: image];
NSView* presenceView = [result viewWithTag:PRESENCE_TAG];
[presenceView setHidden:YES];