gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: some unsigned/NSInteger to NSUInteger changes in -gui


From: Eric Wasylishen
Subject: Re: some unsigned/NSInteger to NSUInteger changes in -gui
Date: Mon, 9 Apr 2012 13:14:34 -0600

Hi,
What's safe is encoding with any supported integer type and decoding with 
another integer type, so you can write a keyed archive with @encode(long) and 
decode it as @encode(int), even if long is 64-bits and int is 32-bits.

In other words it's safe to use @encode(NS[U]Integer). However, if the ivar is 
changed to NSUInteger, I think these:

>> -      [aCoder encodeValueOfObjCType: "i" at: &_selected_item];
>> +      [aCoder encodeValueOfObjCType: "I" at: &_selected_item];

>> -      [aDecoder decodeValueOfObjCType: "i" at: &_selected_item];
>> +      [aDecoder decodeValueOfObjCType: "I" at: &_selected_item];

should actually use @encode(NSUInteger), not "l". Otherwise the patch looks 
good :-).

Eric

On 2012-04-09, at 11:08 AM, Fred Kiefer wrote:

> Most of the patch is ok, but we have too ake a careful look at the coding 
> change. This may break backwards and forewards compatibility. Maybe Richard 
> is able to explain if this change is save or not.
> 
> Fred
> 
> On the road
> 
> Am 09.04.2012 um 18:02 schrieb "Sebastian Reitenbach" <address@hidden>:
> 
>> Hi,
>> 
>> while looking at compilation warnings from the latest releases, I found in 
>> -gui (svn) some parts in NSTableView that would need to be changed. First is 
>> easy, declare i as NSUInteger (was unsigned before). Further I think 
>> _selected_item declared in the header as NSInteger also should be a 
>> NSUInteger.
>> 
>> is it OK when I commit the patch?
>> 
>> Sebastian
>> 
>> Index: Source/NSTabView.m
>> ===================================================================
>> --- Source/NSTabView.m    (revision 35049)
>> +++ Source/NSTabView.m    (working copy)
>> @@ -123,7 +123,7 @@
>> 
>> - (void) removeTabViewItem: (NSTabViewItem*)tabViewItem
>> {
>> -  unsigned i = [_items indexOfObject: tabViewItem];
>> +  NSUInteger i = [_items indexOfObject: tabViewItem];
>> 
>>  if (i == NSNotFound)
>>    return;
>> @@ -202,7 +202,7 @@
>> 
>> - (void) selectNextTabViewItem: (id)sender
>> {
>> -  if ((_selected_item != NSNotFound) && ((unsigned)(_selected_item + 1) < 
>> [_items count]))
>> +  if ((_selected_item != NSNotFound) && ((_selected_item + 1) < [_items 
>> count]))
>>    {
>>      [self selectTabViewItemAtIndex: _selected_item + 1];
>>    }
>> @@ -550,7 +550,7 @@
>>      [aCoder encodeValueOfObjCType: @encode(BOOL) at: &_draws_background];
>>      [aCoder encodeValueOfObjCType: @encode(BOOL) at: &_truncated_label];
>>      [aCoder encodeConditionalObject: _delegate];
>> -      [aCoder encodeValueOfObjCType: "i" at: &_selected_item];
>> +      [aCoder encodeValueOfObjCType: "I" at: &_selected_item];
>>    }
>> }
>> 
>> @@ -631,7 +631,7 @@
>>      [aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_draws_background];
>>      [aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_truncated_label];
>>      _delegate = [aDecoder decodeObject];
>> -      [aDecoder decodeValueOfObjCType: "i" at: &_selected_item];
>> +      [aDecoder decodeValueOfObjCType: "I" at: &_selected_item];
>>      _selected = [_items objectAtIndex: _selected_item];
>>    }
>>  return self;
>> Index: Headers/AppKit/NSTabView.h
>> ===================================================================
>> --- Headers/AppKit/NSTabView.h    (revision 35049)
>> +++ Headers/AppKit/NSTabView.h    (working copy)
>> @@ -54,7 +54,7 @@
>>  BOOL _draws_background;
>>  BOOL _truncated_label;
>>  id _delegate;
>> -  NSInteger _selected_item;
>> +  NSUInteger _selected_item;
>> }
>> - (void)addTabViewItem:(NSTabViewItem *)tabViewItem;
>> - (void)insertTabViewItem:(NSTabViewItem *)tabViewItem
>> 
>> _______________________________________________
>> Gnustep-dev mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/gnustep-dev
> 
> _______________________________________________
> Gnustep-dev mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnustep-dev




reply via email to

[Prev in Thread] Current Thread [Next in Thread]