diff --git a/Source/NSGCString.m b/Source/NSGCString.m index 7f746ad08..2c004f07c 100644 --- a/Source/NSGCString.m +++ b/Source/NSGCString.m @@ -696,8 +696,11 @@ static IMP msInitImp; /* designated initialiser for mutable */ options: (unsigned int)mask range: (NSRange)aRange { - Class c = fastClass(aString); + Class c; + if (aString == nil) + [NSException raise: NSInvalidArgumentException format: @"compare with nil"]; + c = fastClass(aString); if (c == _fastCls._NSGString || c == _fastCls._NSGMutableString) return strCompCsUs(self, aString, mask, aRange); else if (c == _fastCls._NSGCString || c == _fastCls._NSGMutableCString @@ -711,8 +714,11 @@ static IMP msInitImp; /* designated initialiser for mutable */ options: (unsigned int) mask range: (NSRange) aRange { - Class c = fastClass(aString); + Class c; + if (aString == nil) + [NSException raise: NSInvalidArgumentException format: @"range of nil"]; + c = fastClass(aString); if (c == _fastCls._NSGString || c == _fastCls._NSGMutableString) return strRangeCsUs(self, aString, mask, aRange); else if (c == _fastCls._NSGCString || c == _fastCls._NSGMutableCString diff --git a/Source/NSGString.m b/Source/NSGString.m index f61486510..d5fcd17a0 100644 --- a/Source/NSGString.m +++ b/Source/NSGString.m @@ -430,8 +430,11 @@ options: (unsigned int)mask range: (NSRange)aRange { - Class c = fastClass(aString); + Class c; + if (aString == nil) + [NSException raise: NSInvalidArgumentException format: @"compare with nil"]; + c = fastClass(aString); if (c == _fastCls._NSGString || c == _fastCls._NSGMutableString) return strCompUsUs(self, aString, mask, aRange); else if (c == _fastCls._NSGCString || c == _fastCls._NSGMutableCString @@ -445,8 +448,11 @@ options: (unsigned int) mask range: (NSRange) aRange { - Class c = fastClass(aString); + Class c; + if (aString == nil) + [NSException raise: NSInvalidArgumentException format: @"range of nil"]; + c = fastClass(aString); if (c == _fastCls._NSGString || c == _fastCls._NSGMutableString) return strRangeUsUs(self, aString, mask, aRange); else if (c == _fastCls._NSGCString || c == _fastCls._NSGMutableCString diff --git a/Source/NSString.m b/Source/NSString.m index e09fd81a0..01aff78a4 100644 --- a/Source/NSString.m +++ b/Source/NSString.m @@ -842,6 +842,8 @@ handle_printf_atsign (FILE *stream, options: (unsigned int) mask range: (NSRange) aRange { + if (aString == nil) + [NSException raise: NSInvalidArgumentException format: @"range of nil"]; return strRangeNsNs(self, aString, mask, aRange); } @@ -884,6 +886,8 @@ handle_printf_atsign (FILE *stream, options: (unsigned int)mask range: (NSRange)aRange { + if (aString == nil) + [NSException raise: NSInvalidArgumentException format: @"compare with nil"]; return strCompNsNs(self, aString, mask, aRange); }