mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-19 12:01:44 +00:00
Tidied coding/decoding to be a bit more efficient.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@3120 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
2c35e21378
commit
89f459748a
2 changed files with 37 additions and 31 deletions
|
@ -185,9 +185,12 @@ static IMP msInitImp; /* designated initialiser for mutable */
|
|||
- (void) encodeWithCoder: aCoder
|
||||
{
|
||||
[aCoder encodeValueOfObjCType:@encode(unsigned) at:&_count];
|
||||
if (_count > 0)
|
||||
{
|
||||
[aCoder encodeArrayOfObjCType:@encode(unsigned char)
|
||||
count:_count
|
||||
at:_contents_chars];
|
||||
}
|
||||
}
|
||||
|
||||
- initWithCoder: aCoder
|
||||
|
@ -887,9 +890,12 @@ stringDecrementCountAndFillHoleAt(NSGMutableCStringStruct *self,
|
|||
[aCoder decodeValueOfObjCType:@encode(unsigned) at:&cap];
|
||||
[self initWithCapacity:cap];
|
||||
_count = cap;
|
||||
[aCoder decodeArrayOfObjCType:@encode(unsigned char)
|
||||
count:_count
|
||||
at:_contents_chars];
|
||||
if (_count > 0)
|
||||
{
|
||||
[aCoder decodeArrayOfObjCType: @encode(unsigned char)
|
||||
count: _count
|
||||
at: _contents_chars];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
|
|
@ -265,20 +265,26 @@
|
|||
|
||||
- (void) encodeWithCoder: aCoder
|
||||
{
|
||||
[aCoder encodeValueOfObjCType:@encode(int) at:&_count];
|
||||
[aCoder encodeArrayOfObjCType:@encode(unichar)
|
||||
count:_count
|
||||
at:_contents_chars];
|
||||
[aCoder encodeValueOfObjCType: @encode(unsigned) at: &_count];
|
||||
if (_count > 0)
|
||||
{
|
||||
[aCoder encodeArrayOfObjCType: @encode(unichar)
|
||||
count: _count
|
||||
at: _contents_chars];
|
||||
}
|
||||
}
|
||||
|
||||
- initWithCoder: aCoder
|
||||
{
|
||||
[aCoder decodeValueOfObjCType:@encode(int) at:&_count];
|
||||
[aCoder decodeValueOfObjCType: @encode(unsigned) at: &_count];
|
||||
if (_count)
|
||||
{
|
||||
_zone = fastZone(self);
|
||||
_contents_chars = NSZoneMalloc(_zone, sizeof(unichar)*_count);
|
||||
[aCoder decodeArrayOfObjCType:@encode(unichar)
|
||||
count:_count
|
||||
at:_contents_chars];
|
||||
[aCoder decodeArrayOfObjCType: @encode(unichar)
|
||||
count: _count
|
||||
at: _contents_chars];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
@ -548,25 +554,19 @@ stringDecrementCountAndFillHoleAt(NSGMutableStringStruct *self,
|
|||
range.location, range.length);
|
||||
}
|
||||
|
||||
- (void) encodeWithCoder: aCoder // *** changed to unichar
|
||||
{
|
||||
[aCoder encodeValueOfObjCType:@encode(unsigned) at:&_capacity];
|
||||
[aCoder encodeValueOfObjCType:@encode(int) at:&_count];
|
||||
[aCoder encodeArrayOfObjCType:@encode(unichar)
|
||||
count:_count
|
||||
at:_contents_chars];
|
||||
}
|
||||
|
||||
- initWithCoder: aCoder // *** changed to unichar
|
||||
{
|
||||
unsigned cap;
|
||||
|
||||
[aCoder decodeValueOfObjCType:@encode(unsigned) at:&cap];
|
||||
[aCoder decodeValueOfObjCType: @encode(unsigned) at: &cap];
|
||||
[self initWithCapacity:cap];
|
||||
[aCoder decodeValueOfObjCType:@encode(int) at:&_count];
|
||||
[aCoder decodeArrayOfObjCType:@encode(unichar)
|
||||
count:_count
|
||||
at:_contents_chars];
|
||||
_count = cap;
|
||||
if (_count)
|
||||
{
|
||||
[aCoder decodeArrayOfObjCType: @encode(unichar)
|
||||
count: _count
|
||||
at: _contents_chars];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue