diff --git a/Classes/LinphoneUI/UICallCell.h b/Classes/LinphoneUI/UICallCell.h index e48b2de57..f183a81b6 100644 --- a/Classes/LinphoneUI/UICallCell.h +++ b/Classes/LinphoneUI/UICallCell.h @@ -54,7 +54,7 @@ UICallCellData *data; } -@property (retain) UICallCellData *data; +@property (nonatomic, retain) UICallCellData *data; @property (nonatomic, retain) IBOutlet UIImageView* headerBackgroundImage; @property (nonatomic, retain) IBOutlet UIImageView* headerBackgroundHighlightImage; diff --git a/Classes/LinphoneUI/UICallCell.m b/Classes/LinphoneUI/UICallCell.m index cd4fbe250..fe0d5445d 100644 --- a/Classes/LinphoneUI/UICallCell.m +++ b/Classes/LinphoneUI/UICallCell.m @@ -84,6 +84,7 @@ [stateImage release]; [avatarImage release]; [headerView release]; + [data release]; [super dealloc]; } @@ -92,10 +93,23 @@ [super prepareForReuse]; self->currentCall = FALSE; [headerBackgroundHighlightImage setAlpha:0.0f]; + [data release]; + data = nil; } #pragma mark - Properties Functions +- (void)setData:(UICallCellData *)adata { + if(data !=nil) { + [data release]; + data = nil; + } + if(adata !=nil) { + data = [adata retain]; + } + [self update]; +} + - (void)setCurrentCall:(BOOL) val { BOOL oldVal = currentCall; currentCall = val; @@ -108,6 +122,7 @@ } } + #pragma mark - Static Functions + (int)getMaximizedHeight { @@ -141,13 +156,8 @@ #pragma mark - -- (void)update:(UICallCellData*) adata { - self->data = adata; - [self update]; -} - - (void)update { - if(data == nil || data->call) { + if(data == nil || data->call == NULL) { [LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot update call cell: null call or data"]; return; }