| 89 | } |
| 90 | |
| 91 | bool |
| 92 | parsePyVersionHex(uint64_t version, ParsedPyVersion& parsed) |
| 93 | { |
| 94 | int major = (version >> 24) & 0xFF; |
| 95 | int minor = (version >> 16) & 0xFF; |
| 96 | int patch = (version >> 8) & 0xFF; |
| 97 | int level = (version >> 4) & 0x0F; |
| 98 | int count = (version >> 0) & 0x0F; |
| 99 | |
| 100 | const char* level_str = "(unknown release level)"; |
| 101 | if (level == 0xA) { |
| 102 | level_str = "a"; |
| 103 | } else if (level == 0xB) { |
| 104 | level_str = "b"; |
| 105 | } else if (level == 0xC) { |
| 106 | level_str = "rc"; |
| 107 | } else if (level == 0xF) { |
| 108 | level_str = ""; |
| 109 | } |
| 110 | |
| 111 | if (major < 2 || major > 3 || level_str == nullptr || (level == 0xF && count != 0)) { |
| 112 | return false; // Doesn't look valid. |
| 113 | } |
| 114 | |
| 115 | parsed = ParsedPyVersion{major, minor, patch, level_str, count}; |
| 116 | return true; |
| 117 | } |
| 118 | |
| 119 | } // unnamed namespace |
| 120 |
no outgoing calls
no test coverage detected