Don’t print to stderr unless a standalone binary

We will use woff2 code from OTS and it is undesirable for a library to
print messages to stderr.
This commit is contained in:
Khaled Hosny
2015-08-28 01:19:56 +02:00
parent eeec219f20
commit 17ed658d0a
4 changed files with 34 additions and 12 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ CPPFLAGS = -I./brotli/dec/ -I./brotli/enc/ -I./src
CC ?= gcc CC ?= gcc
CXX ?= g++ CXX ?= g++
COMMON_FLAGS = -fno-omit-frame-pointer -no-canonical-prefixes COMMON_FLAGS = -fno-omit-frame-pointer -no-canonical-prefixes -DFONT_COMPRESSION_BIN
ifeq ($(OS), Darwin) ifeq ($(OS), Darwin)
CPPFLAGS += -DOS_MACOSX CPPFLAGS += -DOS_MACOSX
+6 -2
View File
@@ -286,8 +286,10 @@ bool NormalizeFontCollection(FontCollection* font_collection) {
font_collection->fonts.size()); font_collection->fonts.size());
for (auto& font : font_collection->fonts) { for (auto& font : font_collection->fonts) {
if (!NormalizeWithoutFixingChecksums(&font)) { if (!NormalizeWithoutFixingChecksums(&font)) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Font normalization failed.\n"); fprintf(stderr, "Font normalization failed.\n");
return false; #endif
return FONT_COMPRESSION_FAILURE();
} }
offset += kSfntHeaderSize + kSfntEntrySize * font.num_tables; offset += kSfntHeaderSize + kSfntEntrySize * font.num_tables;
} }
@@ -308,8 +310,10 @@ bool NormalizeFontCollection(FontCollection* font_collection) {
// Now we can fix the checksums // Now we can fix the checksums
for (auto& font : font_collection->fonts) { for (auto& font : font_collection->fonts) {
if (!FixChecksums(&font)) { if (!FixChecksums(&font)) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Failed to fix checksums\n"); fprintf(stderr, "Failed to fix checksums\n");
return false; #endif
return FONT_COMPRESSION_FAILURE();
} }
} }
+4
View File
@@ -901,7 +901,9 @@ bool ConvertWOFF2ToTTF(uint8_t* result, size_t result_length,
} }
if (PREDICT_FALSE((glyf_table == NULL) != (loca_table == NULL))) { if (PREDICT_FALSE((glyf_table == NULL) != (loca_table == NULL))) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Cannot have just one of glyf/loca\n"); fprintf(stderr, "Cannot have just one of glyf/loca\n");
#endif
return FONT_COMPRESSION_FAILURE(); return FONT_COMPRESSION_FAILURE();
} }
@@ -936,9 +938,11 @@ bool ConvertWOFF2ToTTF(uint8_t* result, size_t result_length,
dst_offset = Round4(dst_offset); dst_offset = Round4(dst_offset);
} }
if (PREDICT_FALSE(src_offset > length || dst_offset != result_length)) { if (PREDICT_FALSE(src_offset > length || dst_offset != result_length)) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "offset fail; src_offset %" PRIu64 " length %lu " fprintf(stderr, "offset fail; src_offset %" PRIu64 " length %lu "
"dst_offset %" PRIu64 " result_length %lu\n", "dst_offset %" PRIu64 " result_length %lu\n",
src_offset, length, dst_offset, result_length); src_offset, length, dst_offset, result_length);
#endif
return FONT_COMPRESSION_FAILURE(); return FONT_COMPRESSION_FAILURE();
} }
+23 -9
View File
@@ -216,8 +216,10 @@ uint32_t CompressedBufferSize(uint32_t original_size) {
bool TransformFontCollection(FontCollection* font_collection) { bool TransformFontCollection(FontCollection* font_collection) {
for (auto& font : font_collection->fonts) { for (auto& font : font_collection->fonts) {
if (!TransformGlyfAndLocaTables(&font)) { if (!TransformGlyfAndLocaTables(&font)) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Font transformation failed.\n"); fprintf(stderr, "Font transformation failed.\n");
return false; #endif
return FONT_COMPRESSION_FAILURE();
} }
} }
@@ -236,16 +238,18 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
const WOFF2Params& params) { const WOFF2Params& params) {
FontCollection font_collection; FontCollection font_collection;
if (!ReadFontCollection(data, length, &font_collection)) { if (!ReadFontCollection(data, length, &font_collection)) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Parsing of the input font failed.\n"); fprintf(stderr, "Parsing of the input font failed.\n");
return false; #endif
return FONT_COMPRESSION_FAILURE();
} }
if (!NormalizeFontCollection(&font_collection)) { if (!NormalizeFontCollection(&font_collection)) {
return false; return FONT_COMPRESSION_FAILURE();
} }
if (!TransformFontCollection(&font_collection)) { if (!TransformFontCollection(&font_collection)) {
return false; return FONT_COMPRESSION_FAILURE();
} }
// Although the compressed size of each table in the final woff2 file won't // Although the compressed size of each table in the final woff2 file won't
@@ -281,8 +285,10 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
&compression_buf[0], &compression_buf[0],
&total_compressed_length, &total_compressed_length,
params.brotli_quality)) { params.brotli_quality)) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Compression of combined table failed.\n"); fprintf(stderr, "Compression of combined table failed.\n");
return false; #endif
return FONT_COMPRESSION_FAILURE();
} }
// Compress the extended metadata // Compress the extended metadata
@@ -297,8 +303,10 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
compressed_metadata_buf.data(), compressed_metadata_buf.data(),
&compressed_metadata_buf_length, &compressed_metadata_buf_length,
params.brotli_quality)) { params.brotli_quality)) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Compression of extended metadata failed.\n"); fprintf(stderr, "Compression of extended metadata failed.\n");
return false; #endif
return FONT_COMPRESSION_FAILURE();
} }
} else { } else {
compressed_metadata_buf_length = 0; compressed_metadata_buf_length = 0;
@@ -348,9 +356,11 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
size_t woff2_length = ComputeWoff2Length(font_collection, tables, size_t woff2_length = ComputeWoff2Length(font_collection, tables,
index_by_offset, compressed_metadata_buf_length); index_by_offset, compressed_metadata_buf_length);
if (woff2_length > *result_length) { if (woff2_length > *result_length) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Result allocation was too small (%zd vs %zd bytes).\n", fprintf(stderr, "Result allocation was too small (%zd vs %zd bytes).\n",
*result_length, woff2_length); *result_length, woff2_length);
return false; #endif
return FONT_COMPRESSION_FAILURE();
} }
*result_length = woff2_length; *result_length = woff2_length;
@@ -419,9 +429,11 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
uint32_t table_length = uint32_t table_length =
table.IsReused() ? table.reuse_of->length : table.length; table.IsReused() ? table.reuse_of->length : table.length;
if (index_by_offset.find(table_offset) == index_by_offset.end()) { if (index_by_offset.find(table_offset) == index_by_offset.end()) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Missing table index for offset 0x%08x\n", fprintf(stderr, "Missing table index for offset 0x%08x\n",
table_offset); table_offset);
return false; #endif
return FONT_COMPRESSION_FAILURE();
} }
uint16_t index = index_by_offset[table_offset]; uint16_t index = index_by_offset[table_offset];
Store255UShort(index, &offset, result); Store255UShort(index, &offset, result);
@@ -440,9 +452,11 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
&offset, result); &offset, result);
if (*result_length != offset) { if (*result_length != offset) {
#ifdef FONT_COMPRESSION_BIN
fprintf(stderr, "Mismatch between computed and actual length " fprintf(stderr, "Mismatch between computed and actual length "
"(%zd vs %zd)\n", *result_length, offset); "(%zd vs %zd)\n", *result_length, offset);
return false; #endif
return FONT_COMPRESSION_FAILURE();
} }
return true; return true;
} }