X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fkey.cc;h=b8ba6d60ddfb7f90311bbc0d7b02925e8d0cd182;hb=8259e2771f85c33c531a83fe1a78668f158208da;hp=cf7b4d6d720a25acdfadf275aadbd450f02f4070;hpb=e4d5298e7a179d4103581cba05cbc516f94acf60;p=libdcp.git diff --git a/src/key.cc b/src/key.cc index cf7b4d6d..b8ba6d60 100644 --- a/src/key.cc +++ b/src/key.cc @@ -36,7 +36,7 @@ */ #include "key.h" -#include +#include "dcp_assert.h" #include #include #include @@ -93,13 +93,21 @@ Key::operator= (Key const & other) string Key::hex () const { - locked_stringstream g; - - for (unsigned int i = 0; i < ASDCP::KeyLen; ++i) { - g << setw(2) << setfill('0') << std::hex << static_cast (_value[i]); - } - - return g.str (); + DCP_ASSERT (ASDCP::KeyLen == 16); + + char buffer[33]; +#ifdef LIBDCP_WINDOWS + __mingw_snprintf ( +#else + snprintf ( +#endif + buffer, sizeof(buffer), + "%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx", + _value[0], _value[1], _value[2], _value[3], _value[4], _value[5], _value[6], _value[7], + _value[8], _value[9], _value[10], _value[11], _value[12], _value[13], _value[14], _value[15] + ); + + return buffer; } bool