diff options
Diffstat (limited to 'chromium/third_party/inspector_protocol/crdtp/transcode.cc')
-rw-r--r-- | chromium/third_party/inspector_protocol/crdtp/transcode.cc | 39 |
1 files changed, 7 insertions, 32 deletions
diff --git a/chromium/third_party/inspector_protocol/crdtp/transcode.cc b/chromium/third_party/inspector_protocol/crdtp/transcode.cc index 3b113e65a39..5642314531f 100644 --- a/chromium/third_party/inspector_protocol/crdtp/transcode.cc +++ b/chromium/third_party/inspector_protocol/crdtp/transcode.cc @@ -7,35 +7,10 @@ #include <sstream> #include <string> -#include "encoding.h" +#include "json.h" namespace crdtp { -class SingleThreadedPlatform : public json::Platform { - bool StrToD(const char* str, double* result) const override { - const char* saved_locale = std::setlocale(LC_NUMERIC, nullptr); - char* end; - *result = std::strtod(str, &end); - std::setlocale(LC_NUMERIC, saved_locale); - if (errno == ERANGE) { - // errno must be reset, e.g. see the example here: - // https://en.cppreference.com/w/cpp/string/byte/strtof - errno = 0; - return false; - } - return end == str + strlen(str); - } - - std::unique_ptr<char[]> DToStr(double value) const override { - std::stringstream ss; - ss.imbue(std::locale("C")); - ss << value; - std::string str = ss.str(); - std::unique_ptr<char[]> result(new char[str.size() + 1]); - memcpy(result.get(), str.c_str(), str.size() + 1); - return result; - } -}; - +namespace { int Transcode(const std::string& cmd, const std::string& input_file_name, const std::string& output_file_name) { @@ -51,12 +26,11 @@ int Transcode(const std::string& cmd, in += buffer.substr(0, input_file.gcount()); } Status status; - SingleThreadedPlatform platform; - std::string out; + std::vector<uint8_t> out; if (cmd == "--json-to-cbor") { - status = json::ConvertJSONToCBOR(platform, SpanFrom(in), &out); + status = json::ConvertJSONToCBOR(SpanFrom(in), &out); } else if (cmd == "--cbor-to-json") { - status = json::ConvertCBORToJSON(platform, SpanFrom(in), &out); + status = json::ConvertCBORToJSON(SpanFrom(in), &out); } else { std::cerr << "unknown command " << cmd << "\n"; return 1; @@ -70,9 +44,10 @@ int Transcode(const std::string& cmd, std::cerr << "failed to open " << output_file_name << "\n"; return 1; } - output_file.write(out.data(), out.size()); + output_file.write(reinterpret_cast<const char*>(out.data()), out.size()); return 0; } +} // namespace } // namespace crdtp int main(int argc, char** argv) { |