| 117 | } |
| 118 | |
| 119 | picojson::array SarifReport::serializeLocations(const ErrorMessage& finding) |
| 120 | { |
| 121 | picojson::array ret; |
| 122 | for (const auto& location : finding.callStack) { |
| 123 | picojson::object physicalLocation; |
| 124 | picojson::object artifactLocation; |
| 125 | artifactLocation["uri"] = picojson::value(location.getfile(false)); |
| 126 | physicalLocation["artifactLocation"] = picojson::value(artifactLocation); |
| 127 | picojson::object region; |
| 128 | region["startLine"] = picojson::value(static_cast<int64_t>(location.line < 1 ? 1 : location.line)); |
| 129 | region["startColumn"] = picojson::value(static_cast<int64_t>(location.column < 1 ? 1 : location.column)); |
| 130 | region["endLine"] = region["startLine"]; |
| 131 | region["endColumn"] = region["startColumn"]; |
| 132 | physicalLocation["region"] = picojson::value(region); |
| 133 | picojson::object loc; |
| 134 | loc["physicalLocation"] = picojson::value(physicalLocation); |
| 135 | ret.emplace_back(loc); |
| 136 | } |
| 137 | return ret; |
| 138 | } |
| 139 | |
| 140 | picojson::array SarifReport::serializeResults() const |
| 141 | { |