diff options
Diffstat (limited to 'Source/ThirdParty/woff2/src/woff2_decompress.cc')
-rw-r--r-- | Source/ThirdParty/woff2/src/woff2_decompress.cc | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/Source/ThirdParty/woff2/src/woff2_decompress.cc b/Source/ThirdParty/woff2/src/woff2_decompress.cc index 7668c4e82..f29c797cb 100644 --- a/Source/ThirdParty/woff2/src/woff2_decompress.cc +++ b/Source/ThirdParty/woff2/src/woff2_decompress.cc @@ -17,10 +17,10 @@ #include <string> - -#include "file.h" +#include "./file.h" #include "./woff2_dec.h" + int main(int argc, char **argv) { using std::string; @@ -31,24 +31,18 @@ int main(int argc, char **argv) { string filename(argv[1]); string outfilename = filename.substr(0, filename.find_last_of(".")) + ".ttf"; - fprintf(stdout, "Processing %s => %s\n", - filename.c_str(), outfilename.c_str()); + string input = woff2::GetFileContent(filename); + const uint8_t* raw_input = reinterpret_cast<const uint8_t*>(input.data()); + string output(std::min(woff2::ComputeWOFF2FinalSize(raw_input, input.size()), + woff2::kDefaultMaxSize), 0); + woff2::WOFF2StringOut out(&output); - size_t decompressed_size = woff2::ComputeWOFF2FinalSize( - reinterpret_cast<const uint8_t*>(input.data()), input.size()); - string output(decompressed_size, 0); - const bool ok = woff2::ConvertWOFF2ToTTF( - reinterpret_cast<uint8_t*>(&output[0]), decompressed_size, - reinterpret_cast<const uint8_t*>(input.data()), input.size()); + const bool ok = woff2::ConvertWOFF2ToTTF(raw_input, input.size(), &out); - if (!ok) { - fprintf(stderr, "Decompression failed\n"); - return 1; + if (ok) { + woff2::SetFileContents(outfilename, output.begin(), + output.begin() + out.Size()); } - - woff2::SetFileContents(outfilename, output); - - return 0; + return ok ? 0 : 1; } - |