mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 13:10:59 +00:00
Clean up -[NSImage initWithCoder:], reduce amount of releases of self.
Some context available in PR #12 and PR #13.
This commit is contained in:
parent
7270f8efc7
commit
280c3e0095
2 changed files with 14 additions and 9 deletions
|
@ -1,3 +1,8 @@
|
|||
2017-12-07 Ivan Vucica <ivan@vucica.net>
|
||||
|
||||
* Source/NSImage.m (-initWithCoder:): Clean up and reduce amount
|
||||
of releases of self.
|
||||
|
||||
2017-12-03 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Headers/AppKit/NSScreen.h
|
||||
|
|
|
@ -1967,25 +1967,25 @@ static NSSize GSResolutionOfImageRep(NSImageRep *rep)
|
|||
- (id) initWithCoder: (NSCoder*)coder
|
||||
{
|
||||
BOOL flag;
|
||||
NSImage *replacementImage;
|
||||
NSString *imageName;
|
||||
|
||||
_reps = [[NSMutableArray alloc] initWithCapacity: 2];
|
||||
if ([coder allowsKeyedCoding])
|
||||
{
|
||||
if ([coder containsValueForKey: @"NSName"])
|
||||
{
|
||||
RELEASE(self);
|
||||
NSImage *replacementImage;
|
||||
NSString *imageName;
|
||||
|
||||
imageName = [coder decodeObjectForKey: @"NSName"];
|
||||
replacementImage = [NSImage imageNamed: imageName];
|
||||
if (replacementImage)
|
||||
{
|
||||
RELEASE(self);
|
||||
return RETAIN(replacementImage);
|
||||
}
|
||||
replacementImage = [[NSImage alloc] init];
|
||||
[replacementImage setName: imageName];
|
||||
replacementImage->_flags.archiveByName = YES;
|
||||
self = replacementImage;
|
||||
|
||||
[self setName: imageName];
|
||||
self->_flags.archiveByName = YES;
|
||||
}
|
||||
if ([coder containsValueForKey: @"NSColor"])
|
||||
{
|
||||
|
@ -2062,17 +2062,17 @@ static NSSize GSResolutionOfImageRep(NSImageRep *rep)
|
|||
[coder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
if (flag == YES)
|
||||
{
|
||||
NSImage *replacementImage;
|
||||
NSString *theName = [coder decodeObject];
|
||||
|
||||
RELEASE(self);
|
||||
replacementImage = [NSImage imageNamed: theName];
|
||||
if (replacementImage)
|
||||
{
|
||||
RELEASE(self);
|
||||
self = RETAIN(replacementImage);
|
||||
}
|
||||
else
|
||||
{
|
||||
self = [[NSImage alloc] init];
|
||||
[self setName: theName];
|
||||
self->_flags.archiveByName = YES;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue