Fix equality methods in HTML token classes for the nil-cases

This commit is contained in:
iska
2014-10-26 22:27:58 +01:00
parent 6cfb6cd65f
commit d5a00713ad
5 changed files with 15 additions and 15 deletions
+1 -1
View File
@@ -36,7 +36,7 @@
{
if ([other isKindOfClass:[self class]]) {
HTMLCharacterToken *token = (HTMLCharacterToken *)other;
return [self.characters isEqualToString:token.characters];
return nilOrEqual(self.characters, token.characters);
}
return NO;
}
+1 -1
View File
@@ -38,7 +38,7 @@
{
if ([other isKindOfClass:[self class]]) {
HTMLCommentToken *token = (HTMLCommentToken *)other;
return [self.data isEqualToString:token.data];
return nilOrEqual(self.data, token.data);
}
return NO;
}
+5 -6
View File
@@ -39,11 +39,10 @@
{
if ([other isKindOfClass:[self class]]) {
HTMLDOCTYPEToken *token = (HTMLDOCTYPEToken *)other;
return (
[self.name isEqualToString:token.name] &&
[self.publicIdentifier isEqualToString:token.publicIdentifier] &&
[self.systemIdentifier isEqualToString:token.systemIdentifier]
);
return (nilOrEqual(self.name, token.name) &&
nilOrEqual(self.publicIdentifier, token.publicIdentifier) &&
nilOrEqual(self.systemIdentifier, token.systemIdentifier) &&
self.forceQuirks == token.forceQuirks);
}
return NO;
}
@@ -55,7 +54,7 @@
- (NSString *)description
{
return [NSString stringWithFormat:@"<%@: %p Name='%@' Public='%@' System='%@'>", self.class, self, _name, _publicIdentifier, _systemIdentifier];
return [NSString stringWithFormat:@"<%@: %p Name='%@' Public='%@' System='%@' ForceQuirks='%@'>", self.class, self, _name, _publicIdentifier, _systemIdentifier, @(_forceQuirks)];
}
@end
+4 -7
View File
@@ -54,10 +54,9 @@
{
if ([other isKindOfClass:[self class]]) {
HTMLStartTagToken *token = (HTMLStartTagToken *)other;
return (
[self.tagName isEqualToString:token.tagName] &&
[self.attributes isEqualToDictionary:token.attributes]
);
return (nilOrEqual(self.tagName, token.tagName) &&
nilOrEqual(self.attributes, token.attributes));
}
return NO;
}
@@ -91,9 +90,7 @@
{
if ([other isKindOfClass:[self class]]) {
HTMLStartTagToken *token = (HTMLStartTagToken *)other;
return (
[self.tagName isEqualToString:token.tagName]
);
return nilOrEqual(self.tagName, token.tagName);
}
return NO;
}
+4
View File
@@ -8,6 +8,10 @@
#import <Foundation/Foundation.h>
NS_INLINE BOOL nilOrEqual(id first, id second) {
return (first == nil && second == nil) || ([first isEqual:second]);
}
typedef NS_ENUM(NSUInteger, HTMLTokenType)
{
HTMLTokenTypeCharacter,