Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/3rdparty/masm/yarr/YarrCanonicalizeUCS2.h |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | namespace JSC { namespace Yarr { | - | ||||||||||||
3 | - | |||||||||||||
4 | - | |||||||||||||
5 | - | |||||||||||||
6 | - | |||||||||||||
7 | enum UCS2CanonicalizationType { | - | ||||||||||||
8 | CanonicalizeUnique, | - | ||||||||||||
9 | CanonicalizeSet, | - | ||||||||||||
10 | CanonicalizeRangeLo, | - | ||||||||||||
11 | CanonicalizeRangeHi, | - | ||||||||||||
12 | CanonicalizeAlternatingAligned, | - | ||||||||||||
13 | CanonicalizeAlternatingUnaligned, | - | ||||||||||||
14 | }; | - | ||||||||||||
15 | struct UCS2CanonicalizationRange { uint16_t begin, end, value, type; }; | - | ||||||||||||
16 | extern const size_t UCS2_CANONICALIZATION_RANGES; | - | ||||||||||||
17 | extern uint16_t* characterSetInfo[]; | - | ||||||||||||
18 | extern UCS2CanonicalizationRange rangeInfo[]; | - | ||||||||||||
19 | - | |||||||||||||
20 | - | |||||||||||||
21 | - | |||||||||||||
22 | enum LatinCanonicalizationType { | - | ||||||||||||
23 | CanonicalizeLatinSelf, | - | ||||||||||||
24 | CanonicalizeLatinMask0x20, | - | ||||||||||||
25 | CanonicalizeLatinOther, | - | ||||||||||||
26 | CanonicalizeLatinInvalid, | - | ||||||||||||
27 | }; | - | ||||||||||||
28 | struct LatinCanonicalizationRange { uint16_t begin, end, value, type; }; | - | ||||||||||||
29 | extern const size_t LATIN_CANONICALIZATION_RANGES; | - | ||||||||||||
30 | extern LatinCanonicalizationRange latinRangeInfo[]; | - | ||||||||||||
31 | - | |||||||||||||
32 | - | |||||||||||||
33 | inline UCS2CanonicalizationRange* rangeInfoFor(UChar ch) | - | ||||||||||||
34 | { | - | ||||||||||||
35 | UCS2CanonicalizationRange* info = rangeInfo; | - | ||||||||||||
36 | size_t entries = UCS2_CANONICALIZATION_RANGES; | - | ||||||||||||
37 | - | |||||||||||||
38 | while (true) { | - | ||||||||||||
39 | size_t candidate = entries >> 1; | - | ||||||||||||
40 | UCS2CanonicalizationRange* candidateInfo = info + candidate; | - | ||||||||||||
41 | if (ch < candidateInfo->begin
| 118-660 | ||||||||||||
42 | entries = candidate; executed 660 times by 2 tests: entries = candidate; Executed by:
| 660 | ||||||||||||
43 | else if (ch <= candidateInfo->end
| 28-90 | ||||||||||||
44 | return executed 90 times by 2 tests: candidateInfo;return candidateInfo; Executed by:
executed 90 times by 2 tests: return candidateInfo; Executed by:
| 90 | ||||||||||||
45 | else { | - | ||||||||||||
46 | info = candidateInfo + 1; | - | ||||||||||||
47 | entries -= (candidate + 1); | - | ||||||||||||
48 | } executed 28 times by 1 test: end of block Executed by:
| 28 | ||||||||||||
49 | } | - | ||||||||||||
50 | } never executed: end of block | 0 | ||||||||||||
51 | - | |||||||||||||
52 | - | |||||||||||||
53 | inline UChar getCanonicalPair(UCS2CanonicalizationRange* info, UChar ch) | - | ||||||||||||
54 | { | - | ||||||||||||
55 | (!(ch >= info->begin && ch <= info->end) ? (qmlWTFReportAssertionFailure(__FILE__, 85, __PRETTY_FUNCTION__, "ch >= info->begin && ch <= info->end"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||
56 | switch (info->type) { | - | ||||||||||||
57 | case never executed: CanonicalizeRangeLo:case CanonicalizeRangeLo: never executed: case CanonicalizeRangeLo: | 0 | ||||||||||||
58 | return never executed: ch + info->value;return ch + info->value; never executed: return ch + info->value; | 0 | ||||||||||||
59 | case never executed: CanonicalizeRangeHi:case CanonicalizeRangeHi: never executed: case CanonicalizeRangeHi: | 0 | ||||||||||||
60 | return never executed: ch - info->value;return ch - info->value; never executed: return ch - info->value; | 0 | ||||||||||||
61 | case never executed: CanonicalizeAlternatingAligned:case CanonicalizeAlternatingAligned: never executed: case CanonicalizeAlternatingAligned: | 0 | ||||||||||||
62 | return never executed: ch ^ 1;return ch ^ 1; never executed: return ch ^ 1; | 0 | ||||||||||||
63 | case never executed: CanonicalizeAlternatingUnaligned:case CanonicalizeAlternatingUnaligned: never executed: case CanonicalizeAlternatingUnaligned: | 0 | ||||||||||||
64 | return never executed: ((ch - 1) ^ 1) + 1;return ((ch - 1) ^ 1) + 1; never executed: return ((ch - 1) ^ 1) + 1; | 0 | ||||||||||||
65 | default never executed: :default: never executed: default: | 0 | ||||||||||||
66 | do { qmlWTFReportAssertionFailure(__FILE__, 96, __PRETTY_FUNCTION__, 0); (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); } while (0); | - | ||||||||||||
67 | } never executed: end of block | 0 | ||||||||||||
68 | do { qmlWTFReportAssertionFailure(__FILE__, 98, __PRETTY_FUNCTION__, 0); (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); } while (0); | - | ||||||||||||
69 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
70 | } | - | ||||||||||||
71 | - | |||||||||||||
72 | - | |||||||||||||
73 | inline bool isCanonicallyUnique(UChar ch) | - | ||||||||||||
74 | { | - | ||||||||||||
75 | return executed 86 times by 2 tests: rangeInfoFor(ch)->type == CanonicalizeUnique;return rangeInfoFor(ch)->type == CanonicalizeUnique; Executed by:
executed 86 times by 2 tests: return rangeInfoFor(ch)->type == CanonicalizeUnique; Executed by:
| 86 | ||||||||||||
76 | } | - | ||||||||||||
77 | - | |||||||||||||
78 | - | |||||||||||||
79 | inline bool areCanonicallyEquivalent(UChar a, UChar b) | - | ||||||||||||
80 | { | - | ||||||||||||
81 | UCS2CanonicalizationRange* info = rangeInfoFor(a); | - | ||||||||||||
82 | switch (info->type) { | - | ||||||||||||
83 | case never executed: CanonicalizeUnique:case CanonicalizeUnique: never executed: case CanonicalizeUnique: | 0 | ||||||||||||
84 | return never executed: a == b;return a == b; never executed: return a == b; | 0 | ||||||||||||
85 | case never executed: CanonicalizeSet:case CanonicalizeSet: never executed: {case CanonicalizeSet: | 0 | ||||||||||||
86 | for (uint16_t* set = characterSetInfo[info->value]; (
| 0 | ||||||||||||
87 | if (a == b
| 0 | ||||||||||||
88 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||
89 | } never executed: end of block | 0 | ||||||||||||
90 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||
91 | } | - | ||||||||||||
92 | case never executed: CanonicalizeRangeLo:case CanonicalizeRangeLo: never executed: case CanonicalizeRangeLo: | 0 | ||||||||||||
93 | return never executed: (a == b) || (a + info->value == b);return (a == b) || (a + info->value == b); never executed: return (a == b) || (a + info->value == b); | 0 | ||||||||||||
94 | case never executed: CanonicalizeRangeHi:case CanonicalizeRangeHi: never executed: case CanonicalizeRangeHi: | 0 | ||||||||||||
95 | return never executed: (a == b) || (a - info->value == b);return (a == b) || (a - info->value == b); never executed: return (a == b) || (a - info->value == b); | 0 | ||||||||||||
96 | case never executed: CanonicalizeAlternatingAligned:case CanonicalizeAlternatingAligned: never executed: case CanonicalizeAlternatingAligned: | 0 | ||||||||||||
97 | return never executed: (a | 1) == (b | 1);return (a | 1) == (b | 1); never executed: return (a | 1) == (b | 1); | 0 | ||||||||||||
98 | case never executed: CanonicalizeAlternatingUnaligned:case CanonicalizeAlternatingUnaligned: never executed: case CanonicalizeAlternatingUnaligned: | 0 | ||||||||||||
99 | return never executed: ((a - 1) | 1) == ((b - 1) | 1);return ((a - 1) | 1) == ((b - 1) | 1); never executed: return ((a - 1) | 1) == ((b - 1) | 1); | 0 | ||||||||||||
100 | } | - | ||||||||||||
101 | - | |||||||||||||
102 | do { qmlWTFReportAssertionFailure(__FILE__, 132, __PRETTY_FUNCTION__, 0); (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); } while (0); | - | ||||||||||||
103 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||
104 | } | - | ||||||||||||
105 | - | |||||||||||||
106 | } } | - | ||||||||||||
Switch to Source code | Preprocessed file |