[
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)