| line |
true |
false |
branch |
|
14
|
0 |
350 |
if (UNLIKELY(unpack_short_nocroak(aTHX_ input, len, pos, &output->type_id) != 0)) |
|
17
|
346 |
4 |
if (output->type_id > 0 && output->type_id < 0x20) { |
|
|
319 |
27 |
if (output->type_id > 0 && output->type_id < 0x20) { |
|
20
|
4 |
27 |
} else if (output->type_id == CC_TYPE_CUSTOM) { |
|
23
|
0 |
4 |
if (UNLIKELY(unpack_string_nocroak(aTHX_ input, len, pos, &custom_type, &type_length) != 0)) { |
|
27
|
0 |
4 |
if (type_length > strlen(marshal_prefix) && !memcmp(marshal_prefix, custom_type, strlen(marshal_prefix))) { |
|
|
0 |
0 |
if (type_length > strlen(marshal_prefix) && !memcmp(marshal_prefix, custom_type, strlen(marshal_prefix))) { |
|
35
|
0 |
0 |
if (!memcmp(marshal_type, "UTF8Type", 8)) { output->type_id = CC_TYPE_VARCHAR; break; } |
|
36
|
0 |
0 |
if (!memcmp(marshal_type, "UUIDType", 8)) { output->type_id = CC_TYPE_UUID; break; } |
|
37
|
0 |
0 |
if (!memcmp(marshal_type, "TimeType", 8)) { output->type_id = CC_TYPE_TIME; break; } |
|
38
|
0 |
0 |
if (!memcmp(marshal_type, "ByteType", 8)) { output->type_id = CC_TYPE_TINYINT; break; } |
|
39
|
0 |
0 |
if (!memcmp(marshal_type, "DateType", 8)) { output->type_id = CC_TYPE_DATE; break; } |
|
40
|
0 |
0 |
if (!memcmp(marshal_type, "LongType", 8)) { output->type_id = CC_TYPE_BIGINT; break; } |
|
43
|
0 |
0 |
if (!memcmp(marshal_type, "AsciiType", 9)) { output->type_id = CC_TYPE_ASCII; break; } |
|
44
|
0 |
0 |
if (!memcmp(marshal_type, "Int32Type", 9)) { output->type_id = CC_TYPE_INT; break; } |
|
45
|
0 |
0 |
if (!memcmp(marshal_type, "BytesType", 9)) { output->type_id = CC_TYPE_BLOB; break; } |
|
46
|
0 |
0 |
if (!memcmp(marshal_type, "FloatType", 9)) { output->type_id = CC_TYPE_FLOAT; break; } |
|
47
|
0 |
0 |
if (!memcmp(marshal_type, "ShortType", 9)) { output->type_id = CC_TYPE_SMALLINT; break; } |
|
50
|
0 |
0 |
if (!memcmp(marshal_type, "DoubleType", 10)) { output->type_id = CC_TYPE_DOUBLE; break; } |
|
53
|
0 |
0 |
if (!memcmp(marshal_type, "BooleanType", 11)) { output->type_id = CC_TYPE_BOOLEAN; break; } |
|
54
|
0 |
0 |
if (!memcmp(marshal_type, "DecimalType", 11)) { output->type_id = CC_TYPE_DECIMAL; break; } |
|
55
|
0 |
0 |
if (!memcmp(marshal_type, "IntegerType", 11)) { output->type_id = CC_TYPE_VARINT; break; } |
|
58
|
0 |
0 |
if (!memcmp(marshal_type, "TimeUUIDType", 12)) { output->type_id = CC_TYPE_TIMEUUID; break; } |
|
61
|
0 |
0 |
if (!memcmp(marshal_type, "TimestampType", 13)) { output->type_id = CC_TYPE_TIMESTAMP; break; } |
|
64
|
0 |
0 |
if (!memcmp(marshal_type, "SimpleDateType", 14)) { output->type_id = CC_TYPE_DATE; break; } |
|
67
|
0 |
0 |
if (!memcmp(marshal_type, "InetAddressType", 15)) { output->type_id = CC_TYPE_INET; break; } |
|
70
|
0 |
0 |
if (!memcmp(marshal_type, "CounterColumnType", 17)) { output->type_id = CC_TYPE_COUNTER; break; } |
|
79
|
9 |
18 |
} else if (output->type_id == CC_TYPE_LIST) { |
|
84
|
0 |
9 |
if (UNLIKELY(unpack_type_nocroak(aTHX_ input, len, pos, inner) != 0)) { |
|
88
|
9 |
9 |
} else if (output->type_id == CC_TYPE_MAP) { |
|
91
|
0 |
9 |
if (UNLIKELY(unpack_type_nocroak(aTHX_ input, len, pos, &output->inner_type[0]) != 0)) { |
|
94
|
0 |
9 |
if (UNLIKELY(unpack_type_nocroak(aTHX_ input, len, pos, &output->inner_type[1]) != 0)) { |
|
98
|
4 |
5 |
} else if (output->type_id == CC_TYPE_SET) { |
|
103
|
0 |
4 |
if (UNLIKELY(unpack_type_nocroak(aTHX_ input, len, pos, inner) != 0)) { |
|
107
|
2 |
3 |
} else if (output->type_id == CC_TYPE_UDT) { |
|
115
|
0 |
2 |
if (UNLIKELY(unpack_string_nocroak(aTHX_ input, len, pos, &str, &str_len) != 0)) { |
|
120
|
0 |
2 |
if (UNLIKELY(unpack_string_nocroak(aTHX_ input, len, pos, &str, &str_len) != 0)) { |
|
125
|
0 |
2 |
if (UNLIKELY(unpack_short_nocroak(aTHX_ input, len, pos, &field_count) != 0)) { |
|
130
|
2 |
0 |
if (UNLIKELY(field_count > len || field_count == 0)) { |
|
|
0 |
2 |
if (UNLIKELY(field_count > len || field_count == 0)) { |
|
136
|
2 |
2 |
for (i = 0; i < field_count; i++) { |
|
138
|
0 |
2 |
if (UNLIKELY(unpack_string_nocroak(aTHX_ input, len, pos, &str, &str_len) != 0)) { |
|
142
|
2 |
0 |
PERL_HASH(field->name_hash, str, str_len); |
|
144
|
0 |
2 |
if (UNLIKELY(unpack_type_nocroak(aTHX_ input, len, pos, &field->type) != 0)) { |
|
149
|
3 |
0 |
} else if (output->type_id == CC_TYPE_TUPLE) { |
|
155
|
0 |
3 |
if (UNLIKELY(unpack_short_nocroak(aTHX_ input, len, pos, &field_count) != 0)) { |
|
160
|
3 |
0 |
if (UNLIKELY(field_count > len || field_count == 0)) { |
|
|
0 |
3 |
if (UNLIKELY(field_count > len || field_count == 0)) { |
|
166
|
6 |
3 |
for (i = 0; i < field_count; i++) { |
|
170
|
0 |
6 |
if (UNLIKELY(unpack_type_nocroak(aTHX_ input, len, pos, field) != 0)) { |
|
184
|
0 |
311 |
if (UNLIKELY(unpack_type_nocroak(aTHX_ input, len, pos, output) != 0)) { |
|
192
|
341 |
9 |
if (type->type_id == CC_TYPE_LIST || type->type_id == CC_TYPE_SET) { |
|
|
4 |
337 |
if (type->type_id == CC_TYPE_LIST || type->type_id == CC_TYPE_SET) { |
|
193
|
13 |
0 |
if (type->inner_type != NULL) { |
|
199
|
9 |
328 |
} else if (type->type_id == CC_TYPE_MAP) { |
|
200
|
9 |
0 |
if (type->inner_type != NULL) { |
|
207
|
4 |
324 |
} else if (type->type_id == CC_TYPE_CUSTOM) { |
|
208
|
4 |
0 |
if (type->custom_name != NULL) { |
|
213
|
2 |
322 |
} else if (type->type_id == CC_TYPE_UDT) { |
|
214
|
2 |
0 |
if (type->udt != NULL) { |
|
217
|
2 |
0 |
if (type->udt->fields != NULL) { |
|
219
|
2 |
2 |
for (i = 0; i < type->udt->field_count; i++) { |
|
229
|
3 |
319 |
} else if (type->type_id == CC_TYPE_TUPLE) { |
|
230
|
3 |
0 |
if (type->tuple != NULL) { |
|
231
|
3 |
0 |
if (type->tuple->fields != NULL) { |
|
233
|
6 |
3 |
for (i = 0; i < type->tuple->field_count; i++) { |