[ 
https://issues.apache.org/jira/browse/THRIFT-2640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14503725#comment-14503725
 ] 

ASF GitHub Bot commented on THRIFT-2640:
----------------------------------------

Github user jeremy-w commented on the pull request:

    https://github.com/apache/thrift/pull/442#issuecomment-94576314
  
    In that case, the remaining warnings I'm seeing are mostly implicit sign 
conversions and implicit precision loss (integer width narrowing), with a 
smattering of "ARC would like some `__autoreleasing` annotations".
    
    Some of these can be resolved by picking variable types that match their 
eventual uses, like field types should be 16-bit throughout.
    
    Most of these are due to protocol issues as discussed earlier. The protocol 
output needs updating to be 64-bit friendly as was done with the transport 
library code. Those issues need to be resolved in tandem with codegen changes, 
though.
    
    ```
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:127:14: warning: implicit 
conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
        if ((n & ~0x7F) == 0) {
               ~ ^~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:143:26: warning: implicit 
conversion changes signedness: 'const uint8_t' (aka 'const unsigned char') to 
'int8_t' (aka 'signed char') [-Wsign-conversion]
      [self writeByteDirect: COMPACT_PROTOCOL_ID];
      ~                      ^~~~~~~~~~~~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:144:26: warning: implicit 
conversion changes signedness: 'uint8_t' (aka 'unsigned char') to 'int8_t' (aka 
'signed char') [-Wsign-conversion]
      [self writeByteDirect: (uint8_t)((COMPACT_VERSION & COMPACT_VERSION_MASK) 
|
      ~                      
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:183:75: warning: implicit 
conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') 
[-Wconversion]
      uint8_t typeToWrite = typeOverride == 0xFF ? [self compactTypeForTType: 
fieldType] : typeOverride;
                                                   ~                          
^~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:188:57: warning: implicit 
conversion loses integer precision: 'int' to 'int8_t' (aka 'signed char') 
[-Wconversion]
        [self writeByteDirect: (fieldID - lastFieldId) << 4 | typeToWrite];
        ~                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:191:28: warning: implicit 
conversion changes signedness: 'uint8_t' (aka 'unsigned char') to 'int8_t' (aka 
'signed char') [-Wsign-conversion]
        [self writeByteDirect: typeToWrite];
        ~                      ^~~~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:192:21: warning: implicit 
conversion loses integer precision: 'int' to 'short' [-Wconversion]
        [self writeI16: fieldID];
        ~               ^~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:195:17: warning: implicit 
conversion loses integer precision: 'int' to 'short' [-Wconversion]
      lastFieldId = fieldID;
                  ~ ^~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:211:69: warning: implicit 
conversion loses integer precision: 'int' to 'int8_t' (aka 'signed char') 
[-Wconversion]
        [self writeByteDirect: [self compactTypeForTType: keyType] << 4 | [self 
compactTypeForTType: valueType]];
        ~                      
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:211:55: warning: implicit 
conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') 
[-Wconversion]
        [self writeByteDirect: [self compactTypeForTType: keyType] << 4 | [self 
compactTypeForTType: valueType]];
                               ~                          ^~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:211:98: warning: implicit 
conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') 
[-Wconversion]
        [self writeByteDirect: [self compactTypeForTType: keyType] << 4 | [self 
compactTypeForTType: valueType]];
                                                                          ~     
                     ^~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:251:26: warning: implicit 
conversion changes signedness: 'uint8_t' (aka 'unsigned char') to 'int8_t' (aka 
'signed char') [-Wsign-conversion]
      [self writeByteDirect: value];
      ~                      ^~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:302:38: warning: implicit 
conversion loses integer precision: 'int' to 'int8_t' (aka 'signed char') 
[-Wconversion]
        [self writeByteDirect: size << 4 | [self compactTypeForTType: 
elementType]];
        ~                      
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:302:67: warning: implicit 
conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') 
[-Wconversion]
        [self writeByteDirect: size << 4 | [self compactTypeForTType: 
elementType]];
                                           ~                          
^~~~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:304:33: warning: implicit 
conversion changes signedness: 'int' to 'int8_t' (aka 'signed char') 
[-Wsign-conversion]
        [self writeByteDirect: 0xf0 | [self compactTypeForTType: elementType]];
        ~                      ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:304:62: warning: implicit 
conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') 
[-Wconversion]
        [self writeByteDirect: 0xf0 | [self compactTypeForTType: elementType]];
                                      ~                          ^~~~~~~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:315:14: warning: implicit 
conversion changes signedness: 'long' to 'unsigned long long' 
[-Wsign-conversion]
        if ((n & ~0x7FL) == 0) {
               ~ ^~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:324:52: warning: implicit 
conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') 
[-Wsign-conversion]
      [mTransport write: varint64out offset: 0 length: idx];
      ~                                                ^~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:344:55: warning: method 
parameter of type 'NSString *__autoreleasing *' with no explicit ownership 
[-Wexplicit-ownership-type]
    - (void) readMessageBeginReturningName: (NSString **) pname
                                                          ^
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:376:54: warning: method 
parameter of type 'NSString *__autoreleasing *' with no explicit ownership 
[-Wexplicit-ownership-type]
    - (void) readStructBeginReturningName: (NSString **) pname
                                                         ^
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:392:53: warning: method 
parameter of type 'NSString *__autoreleasing *' with no explicit ownership 
[-Wexplicit-ownership-type]
    - (void) readFieldBeginReturningName: (NSString **) pname
                                                        ^
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:565:55: warning: implicit 
conversion changes signedness: 'int' to 'NSUInteger' (aka 'unsigned int') 
[-Wsign-conversion]
      NSMutableData* buf = [NSMutableData dataWithLength: length];
                           ~                              ^~~~~~
    thrift/lib/cocoa/src/protocol/TCompactProtocol.m:566:59: warning: implicit 
conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') 
[-Wsign-conversion]
      [mTransport readAll: buf.mutableBytes offset: 0 length: length];
      ~                                                       ^~~~~~
    23 warnings generated.
    ```


> Compact Protocol in Cocoa
> -------------------------
>
>                 Key: THRIFT-2640
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2640
>             Project: Thrift
>          Issue Type: Sub-task
>          Components: Cocoa - Library
>    Affects Versions: 0.9.1
>            Reporter: Mark Hornsby
>            Assignee: Jens Geyer
>            Priority: Minor
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to