Skip to content

Commit

Permalink
Recommit tested changes.
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32075 72102866-910b-0410-8b05-ffd578937521
  • Loading branch information
rfm committed Feb 11, 2011
1 parent 51cf9b9 commit 6088595
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 27 deletions.
9 changes: 9 additions & 0 deletions ChangeLog
@@ -1,3 +1,12 @@
2011-02-11 Richard Frith-Macdonald <rfm@gnu.org>

* Source/NSArray.m: Recommit fixed version
* Source/GSICUString.h: Formatting fixups
* Source/GSICUString.m: Recommit
* Source/NSAttributedString.m: Recommit
* Source/NSData.m: Recommit
* Source/NSMethodSignature.m: Recommit

2011-02-11 Richard Frith-Macdonald <rfm@gnu.org>

* Source/NSPropertyList.m: Recommit with modification fixed and tested.
Expand Down
38 changes: 20 additions & 18 deletions Source/GSICUString.h
Expand Up @@ -11,6 +11,7 @@
* contents directly.
*/
UText* UTextInitWithNSString(UText *txt, NSString *str);

/**
* Initialises a UText structure with an NSMutableString. If txt is NULL, then
* this allocates a new structure on the heap, otherwise it fills in the
Expand All @@ -23,16 +24,17 @@ UText* UTextInitWithNSString(UText *txt, NSString *str);
* reflected in the underlying NSMutableString.
*/
UText* UTextInitWithNSMutableString(UText *txt, NSMutableString *str);

/**
* GSUTextString is an NSString subclass that is backed by a libicu UText
* structure. This class is intended to be used when returning UText created
* by libicu functions to Objective-C code.
*/
@interface GSUTextString : NSString
{
@public
/** The UText structure containing the libicu string interface. */
UText txt;
@public
/** The UText structure containing the libicu string interface. */
UText txt;
}
@end

Expand All @@ -43,9 +45,9 @@ UText* UTextInitWithNSMutableString(UText *txt, NSMutableString *str);
*/
@interface GSUTextMutableString : NSMutableString
{
@public
/** The UText structure containing the libicu string interface. */
UText txt;
@public
/** The UText structure containing the libicu string interface. */
UText txt;
}
@end

Expand All @@ -54,10 +56,10 @@ UText* UTextInitWithNSMutableString(UText *txt, NSMutableString *str);
*/
static inline void free_string(unichar **buf)
{
if (0 != *buf)
{
free(*buf);
}
if (0 != *buf)
{
free(*buf);
}
}

/**
Expand All @@ -68,12 +70,12 @@ static inline void free_string(unichar **buf)
* Buffers created in this way are exception safe when using native exceptions.
*/
#define TEMP_BUFFER(name, size)\
__attribute__((cleanup(free_string))) unichar *name ##_onheap = 0;\
unichar name ## _onstack[64 / sizeof(unichar)];\
unichar *name = name ## _onstack;\
if (size > 64)\
{\
name ## _onheap = malloc(size);\
name = name ## _onheap;\
}
__attribute__((cleanup(free_string))) unichar *name ##_onheap = 0;\
unichar name ## _onstack[64 / sizeof(unichar)];\
unichar *name = name ## _onstack;\
if (size > 64)\
{\
name ## _onheap = malloc(size);\
name = name ## _onheap;\
}

9 changes: 8 additions & 1 deletion Source/GSICUString.m
Expand Up @@ -263,12 +263,19 @@ void UTextNSStringCopy(UText *ut,
UErrorCode *status)
{
NSMutableString *str = (NSMutableString*)src->p;
UText *txt;

if (deep)
{
str = [str mutableCopy];
txt = UTextInitWithNSMutableString(dest, str);
[str release];
}
return UTextInitWithNSMutableString(dest, str);
else
{
txt = UTextInitWithNSMutableString(dest, str);
}
return txt;
}

/**
Expand Down
8 changes: 4 additions & 4 deletions Source/NSArray.m
Expand Up @@ -1680,7 +1680,7 @@ - (NSIndexSet *) indexesOfObjectsWithOptions: (NSEnumerationOptions)opts
enumerator = [self reverseObjectEnumerator];
}

FOR_IN (id, obj, self)
FOR_IN (id, obj, enumerator)
if (CALL_BLOCK(predicate, obj, count, &shouldStop))
{
/* TODO: It would be more efficient to collect an NSRange and only
Expand All @@ -1692,7 +1692,7 @@ - (NSIndexSet *) indexesOfObjectsWithOptions: (NSEnumerationOptions)opts
return set;
}
count++;
END_FOR_IN(self)
END_FOR_IN(enumerator)
return set;
}

Expand Down Expand Up @@ -1725,7 +1725,7 @@ - (NSUInteger)indexOfObjectWithOptions: (NSEnumerationOptions)opts
enumerator = [self reverseObjectEnumerator];
}

FOR_IN (id, obj, self)
FOR_IN (id, obj, enumerator)
if (CALL_BLOCK(predicate, obj, count, &shouldStop))
{
return count;
Expand All @@ -1735,7 +1735,7 @@ - (NSUInteger)indexOfObjectWithOptions: (NSEnumerationOptions)opts
return NSNotFound;
}
count++;
END_FOR_IN(self)
END_FOR_IN(enumerator)
return NSNotFound;
}

Expand Down
4 changes: 2 additions & 2 deletions Source/NSAttributedString.m
Expand Up @@ -460,7 +460,7 @@ - (NSDictionary*) attributesAtIndex: (NSUInteger)index
NSRange tmpRange;
IMP getImp;

if (rangeLimit.location < 0 || NSMaxRange(rangeLimit) > [self length])
if (NSMaxRange(rangeLimit) > [self length])
{
[NSException raise: NSRangeException
format: @"RangeError in method -attributesAtIndex:longestEffectiveRange:inRange: in class NSAttributedString"];
Expand Down Expand Up @@ -548,7 +548,7 @@ - (id) attribute: (NSString*)attributeName
BOOL (*eImp)(id,SEL,id);
IMP getImp;

if (rangeLimit.location < 0 || NSMaxRange(rangeLimit) > [self length])
if (NSMaxRange(rangeLimit) > [self length])
{
[NSException raise: NSRangeException
format: @"RangeError in method -attribute:atIndex:longestEffectiveRange:inRange: in class NSAttributedString"];
Expand Down
6 changes: 4 additions & 2 deletions Source/NSData.m
Expand Up @@ -3006,6 +3006,7 @@ - (void) finalize
*/
- (id) initWithContentsOfMappedFile: (NSString*)path
{
off_t off;
int fd;

#if defined(__MINGW__)
Expand Down Expand Up @@ -3033,14 +3034,15 @@ - (id) initWithContentsOfMappedFile: (NSString*)path
return nil;
}
/* Find size of file to be mapped. */
length = lseek(fd, 0, SEEK_END);
if (length < 0)
off = lseek(fd, 0, SEEK_END);
if (off < 0)
{
NSWarnMLog(@"unable to seek to eof %@ - %@", path, [NSError _last]);
close(fd);
DESTROY(self);
return nil;
}
length = off;
/* Position at start of file. */
if (lseek(fd, 0, SEEK_SET) != 0)
{
Expand Down
5 changes: 5 additions & 0 deletions Source/NSMethodSignature.m
Expand Up @@ -452,6 +452,7 @@ - (NSArgumentInfo) argumentInfoAtIndex: (NSUInteger)index
if (_inf == 0)
{
[self methodInfo];
NSAssert(0 != _inf, @"Initialising failed");
}
return _inf[index+1];
}
Expand All @@ -471,6 +472,7 @@ - (const char*) getArgumentTypeAtIndex: (NSUInteger)index
if (_inf == 0)
{
[self methodInfo];
NSAssert(0 != _inf, @"Initialising failed");
}
return _inf[index+1].qtype;
}
Expand All @@ -480,6 +482,7 @@ - (BOOL) isOneway
if (_inf == 0)
{
[self methodInfo];
NSAssert(0 != _inf, @"Initialising failed");
}
return (_inf[0].qual & _F_ONEWAY) ? YES : NO;
}
Expand All @@ -489,6 +492,7 @@ - (NSUInteger) methodReturnLength
if (_inf == 0)
{
[self methodInfo];
NSAssert(0 != _inf, @"Initialising failed");
}
return _inf[0].size;
}
Expand All @@ -498,6 +502,7 @@ - (const char*) methodReturnType
if (_inf == 0)
{
[self methodInfo];
NSAssert(0 != _inf, @"Initialising failed");
}
return _inf[0].qtype;
}
Expand Down

0 comments on commit 6088595

Please sign in to comment.