-
Notifications
You must be signed in to change notification settings - Fork 731
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
devel/woff2: Improve port and import patches
- Import Coverity Scan patch from Fedora - Disable RPATH - Backport upstream commit 3831354113db8803fb1f5ba196cf0bbb537578dd - Add USES= pathfix and pkgconfig References: https://src.fedoraproject.org/rpms/woff2/blob/rawhide/f/covscan.patch google/woff2@3831354 PR: 273510 Approved by: portmgr (maintainer timeout, 2+ weeks) Sponsored by: Blinkinblox
- Loading branch information
Daniel Engberg
authored and
Daniel Engberg
committed
Sep 19, 2023
1 parent
1b7b2ea
commit 0831c69
Showing
3 changed files
with
174 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
TIMESTAMP = 1522147257 | ||
TIMESTAMP = 1693634674 | ||
SHA256 (google-woff2-v1.0.2_GH0.tar.gz) = add272bb09e6384a4833ffca4896350fdb16e0ca22df68c0384773c67a175594 | ||
SIZE (google-woff2-v1.0.2_GH0.tar.gz) = 38934 | ||
SHA256 (3831354113db8803fb1f5ba196cf0bbb537578dd.patch) = 28a197486d60897b856ea9706c5a136dc9dc284fbc8db71f5a4367700eefef2e | ||
SIZE (3831354113db8803fb1f5ba196cf0bbb537578dd.patch) = 1519 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,164 @@ | ||
diff --git a/src/font.cc b/src/font.cc | ||
index a45153e..0e9f5bf 100644 | ||
--- src/font.cc | ||
+++ src/font.cc | ||
@@ -66,7 +66,7 @@ bool ReadTrueTypeFont(Buffer* file, const uint8_t* data, size_t len, | ||
|
||
std::map<uint32_t, uint32_t> intervals; | ||
for (uint16_t i = 0; i < font->num_tables; ++i) { | ||
- Font::Table table; | ||
+ Font::Table table = {}; | ||
table.flag_byte = 0; | ||
table.reuse_of = NULL; | ||
if (!file->ReadU32(&table.tag) || | ||
@@ -326,7 +326,7 @@ int NumGlyphs(const Font& font) { | ||
return 0; | ||
} | ||
int index_fmt = IndexFormat(font); | ||
- int loca_record_size = (index_fmt == 0 ? 2 : 4); | ||
+ uint32_t loca_record_size = (index_fmt == 0 ? 2 : 4); | ||
if (loca_table->length < loca_record_size) { | ||
return 0; | ||
} | ||
diff --git a/src/glyph.h b/src/glyph.h | ||
index f24056f..e870188 100644 | ||
--- src/glyph.h | ||
+++ src/glyph.h | ||
@@ -22,17 +22,17 @@ namespace woff2 { | ||
// is around. | ||
class Glyph { | ||
public: | ||
- Glyph() : instructions_size(0), composite_data_size(0) {} | ||
+ Glyph() {} | ||
|
||
// Bounding box. | ||
- int16_t x_min; | ||
- int16_t x_max; | ||
- int16_t y_min; | ||
- int16_t y_max; | ||
+ int16_t x_min = 0; | ||
+ int16_t x_max = 0; | ||
+ int16_t y_min = 0; | ||
+ int16_t y_max = 0; | ||
|
||
// Instructions. | ||
- uint16_t instructions_size; | ||
- const uint8_t* instructions_data; | ||
+ uint16_t instructions_size = 0; | ||
+ const uint8_t* instructions_data = 0; | ||
|
||
// Data model for simple glyphs. | ||
struct Point { | ||
@@ -43,9 +43,9 @@ class Glyph { | ||
std::vector<std::vector<Point> > contours; | ||
|
||
// Data for composite glyphs. | ||
- const uint8_t* composite_data; | ||
- uint32_t composite_data_size; | ||
- bool have_instructions; | ||
+ const uint8_t* composite_data = 0; | ||
+ uint32_t composite_data_size = 0; | ||
+ bool have_instructions = false; | ||
}; | ||
|
||
// Parses the glyph from the given data. Returns false on parsing failure or | ||
diff --git a/src/normalize.cc b/src/normalize.cc | ||
index 6685e08..a819074 100644 | ||
--- src/normalize.cc | ||
+++ src/normalize.cc | ||
@@ -97,7 +97,7 @@ bool MakeEditableBuffer(Font* font, int tableTag) { | ||
table->buffer.resize(sz); | ||
uint8_t* buf = &table->buffer[0]; | ||
memcpy(buf, table->data, table->length); | ||
- if (PREDICT_FALSE(sz > table->length)) { | ||
+ if (PREDICT_FALSE(static_cast<uint32_t>(sz) > table->length)) { | ||
memset(buf + table->length, 0, sz - table->length); | ||
} | ||
table->data = buf; | ||
@@ -213,7 +213,6 @@ bool FixChecksums(Font* font) { | ||
size_t offset = 8; | ||
StoreU32(0, &offset, head_buf); | ||
uint32_t file_checksum = 0; | ||
- uint32_t head_checksum = 0; | ||
for (auto& i : font->tables) { | ||
Font::Table* table = &i.second; | ||
if (table->IsReused()) { | ||
@@ -221,10 +220,6 @@ bool FixChecksums(Font* font) { | ||
} | ||
table->checksum = ComputeULongSum(table->data, table->length); | ||
file_checksum += table->checksum; | ||
- | ||
- if (table->tag == kHeadTableTag) { | ||
- head_checksum = table->checksum; | ||
- } | ||
} | ||
|
||
file_checksum += ComputeHeaderChecksum(*font); | ||
diff --git a/src/woff2_dec.cc b/src/woff2_dec.cc | ||
index 25e18c6..442baa5 100644 | ||
--- src/woff2_dec.cc | ||
+++ src/woff2_dec.cc | ||
@@ -316,7 +316,7 @@ void ComputeBbox(unsigned int n_points, const Point* points, uint8_t* dst) { | ||
offset = Store16(dst, offset, x_min); | ||
offset = Store16(dst, offset, y_min); | ||
offset = Store16(dst, offset, x_max); | ||
- offset = Store16(dst, offset, y_max); | ||
+ Store16(dst, offset, y_max); | ||
} | ||
|
||
|
||
diff --git a/src/woff2_enc.cc b/src/woff2_enc.cc | ||
index ec00878..c0598f8 100644 | ||
--- src/woff2_enc.cc | ||
+++ src/woff2_enc.cc | ||
@@ -331,20 +331,17 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length, | ||
return false; | ||
} | ||
|
||
- Table table; | ||
+ Table table = {}; | ||
table.tag = src_table.tag; | ||
table.flags = src_table.flag_byte; | ||
table.src_length = src_table.length; | ||
table.transform_length = src_table.length; | ||
- const uint8_t* transformed_data = src_table.data; | ||
const Font::Table* transformed_table = | ||
font.FindTable(src_table.tag ^ 0x80808080); | ||
if (transformed_table != NULL) { | ||
table.flags = transformed_table->flag_byte; | ||
table.flags |= kWoff2FlagsTransform; | ||
table.transform_length = transformed_table->length; | ||
- transformed_data = transformed_table->data; | ||
- | ||
} | ||
tables.push_back(table); | ||
} | ||
@@ -423,8 +420,6 @@ bool ConvertTTFToWOFF2(const uint8_t *data, size_t length, | ||
// for reused tables, only the original has an updated offset | ||
uint32_t table_offset = | ||
table.IsReused() ? table.reuse_of->offset : table.offset; | ||
- uint32_t table_length = | ||
- table.IsReused() ? table.reuse_of->length : table.length; | ||
std::pair<uint32_t, uint32_t> tag_offset(table.tag, table_offset); | ||
if (index_by_tag_offset.find(tag_offset) == index_by_tag_offset.end()) { | ||
#ifdef FONT_COMPRESSION_BIN | ||
diff --git a/src/woff2_info.cc b/src/woff2_info.cc | ||
index 2b51adc..8ec9d36 100644 | ||
--- src/woff2_info.cc | ||
+++ src/woff2_info.cc | ||
@@ -122,13 +122,13 @@ int main(int argc, char **argv) { | ||
if (!woff2::Read255UShort(&file, &numFonts)) return 1; | ||
printf("CollectionHeader 0x%08x %d fonts\n", version, numFonts); | ||
|
||
- for (auto i = 0; i < numFonts; i++) { | ||
+ for (auto i = 0u; i < numFonts; i++) { | ||
uint32_t numTables, flavor; | ||
if (!woff2::Read255UShort(&file, &numTables)) return 1; | ||
if (!file.ReadU32(&flavor)) return 1; | ||
printf("CollectionFontEntry %d flavor 0x%08x %d tables\n", i, flavor, | ||
numTables); | ||
- for (auto j = 0; j < numTables; j++) { | ||
+ for (auto j = 0u; j < numTables; j++) { | ||
uint32_t table_idx; | ||
if (!woff2::Read255UShort(&file, &table_idx)) return 1; | ||
if (table_idx >= table_tags.size()) return 1; |