diff --git a/Headers/Foundation/NSString.h b/Headers/Foundation/NSString.h index c2876fb47..57613a888 100644 --- a/Headers/Foundation/NSString.h +++ b/Headers/Foundation/NSString.h @@ -193,7 +193,7 @@ enum { - (id) initWithBytes: (const void*)bytes length: (unsigned int)length encoding: (NSStringEncoding)encoding; -- (id) initWithBytesNoCopy: (const void*)bytes +- (id) initWithBytesNoCopy: (void*)bytes length: (unsigned int)length encoding: (NSStringEncoding)encoding freeWhenDone: (BOOL)flag; diff --git a/Source/GSString.m b/Source/GSString.m index db1932f32..5aed6d310 100644 --- a/Source/GSString.m +++ b/Source/GSString.m @@ -463,7 +463,7 @@ fixBOM(unsigned char **bytes, unsigned *length, BOOL *shouldFree, freeWhenDone: YES]; } -- (id) initWithBytesNoCopy: (const void*)bytes +- (id) initWithBytesNoCopy: (void*)bytes length: (unsigned int)length encoding: (NSStringEncoding)encoding freeWhenDone: (BOOL)flag @@ -478,7 +478,7 @@ fixBOM(unsigned char **bytes, unsigned *length, BOOL *shouldFree, { if (flag == YES && bytes != 0) { - NSZoneFree(NSZoneFromPointer((void*)bytes), (void*)bytes); + NSZoneFree(NSZoneFromPointer(bytes), bytes); } return nil; // Invalid encoding } @@ -606,7 +606,7 @@ fixBOM(unsigned char **bytes, unsigned *length, BOOL *shouldFree, length: (unsigned)length freeWhenDone: (BOOL)flag { - return [self initWithBytesNoCopy: (const void*)chars + return [self initWithBytesNoCopy: (void*)chars length: length * sizeof(unichar) encoding: NSUnicodeStringEncoding freeWhenDone: flag]; @@ -624,7 +624,7 @@ fixBOM(unsigned char **bytes, unsigned *length, BOOL *shouldFree, length: (unsigned)length freeWhenDone: (BOOL)flag { - return [self initWithBytesNoCopy: (const void*)chars + return [self initWithBytesNoCopy: (void*)chars length: length encoding: externalEncoding freeWhenDone: flag]; @@ -2601,13 +2601,13 @@ transmute(GSStr self, NSString *aString) memcpy(tmp, chars, length); chars = tmp; } - return [self initWithBytesNoCopy: chars + return [self initWithBytesNoCopy: (void*)chars length: length encoding: encoding freeWhenDone: YES]; } -- (id) initWithBytesNoCopy: (const void*)chars +- (id) initWithBytesNoCopy: (void*)chars length: (unsigned int)length encoding: (NSStringEncoding)encoding freeWhenDone: (BOOL)flag @@ -2621,7 +2621,7 @@ transmute(GSStr self, NSString *aString) return nil; } -- (id) initWithCharacters: (unichar*)chars +- (id) initWithCharacters: (const unichar*)chars length: (unsigned int)length { return [self initWithBytes: chars @@ -2639,14 +2639,14 @@ transmute(GSStr self, NSString *aString) freeWhenDone: flag]; } -- (id) initWithCString: (char*)chars +- (id) initWithCString: (const char*)chars { return [self initWithBytes: chars length: strlen(chars) encoding: externalEncoding]; } -- (id) initWithCString: (char*)chars +- (id) initWithCString: (const char*)chars encoding: (NSStringEncoding)encoding { return [self initWithBytes: chars @@ -2654,7 +2654,7 @@ transmute(GSStr self, NSString *aString) encoding: encoding]; } -- (id) initWithCString: (char*)chars +- (id) initWithCString: (const char*)chars length: (unsigned int)length { return [self initWithBytes: chars @@ -3731,21 +3731,17 @@ agree, create a new GSUnicodeInlineString otherwise. } } -- (id) initWithBytesNoCopy: (const void*)bytes +- (id) initWithBytesNoCopy: (void*)bytes length: (unsigned int)length encoding: (NSStringEncoding)encoding freeWhenDone: (BOOL)flag { - /* - * We can't use a 'const void*' as our buffer because we are going to - * modify it ... so we do a copy anyway and free the original if needed. - */ self = [self initWithBytes: bytes length: length encoding: encoding]; if (flag == YES && bytes != 0) { - NSZoneFree(NSZoneFromPointer((void*)bytes), (void*)bytes); + NSZoneFree(NSZoneFromPointer(bytes), bytes); } return self; } @@ -4636,7 +4632,7 @@ agree, create a new GSUnicodeInlineString otherwise. */ #define _self ((GSStr)self) -- (id) initWithBytes: (void*)bytes +- (id) initWithBytes: (const void*)bytes length: (unsigned int)length encoding: (NSStringEncoding)encoding { diff --git a/Source/NSString.m b/Source/NSString.m index f1aca8fad..057cce323 100644 --- a/Source/NSString.m +++ b/Source/NSString.m @@ -864,7 +864,7 @@ handle_printf_atsign (FILE *stream, { if (length == 0) { - return [self initWithBytesNoCopy: (const void *)0 + return [self initWithBytesNoCopy: (void *)0 length: 0 encoding: encoding freeWhenDone: NO]; @@ -896,7 +896,7 @@ handle_printf_atsign (FILE *stream, * In the GNUstep implementation, your subclasses may override * this initialiser in order to have all others function.

*/ -- (id) initWithBytesNoCopy: (const void*)bytes +- (id) initWithBytesNoCopy: (void*)bytes length: (unsigned int)length encoding: (NSStringEncoding)encoding freeWhenDone: (BOOL)flag