Address Review Comment: clear dangling pointers when miniData freed
This commit is contained in:
@@ -52,6 +52,21 @@ void SdCardFont::freeStyleMiniData(PerStyle& s) {
|
|||||||
s.miniIntervalCount = 0;
|
s.miniIntervalCount = 0;
|
||||||
s.miniGlyphCount = 0;
|
s.miniGlyphCount = 0;
|
||||||
s.miniMode = PerStyle::MiniMode::NONE;
|
s.miniMode = PerStyle::MiniMode::NONE;
|
||||||
|
// Clear dangling pointers in miniData and stubData (kern data points to freed mini arrays)
|
||||||
|
s.miniData.kernLeftClasses = nullptr;
|
||||||
|
s.miniData.kernRightClasses = nullptr;
|
||||||
|
s.miniData.kernMatrix = nullptr;
|
||||||
|
s.miniData.kernLeftEntryCount = 0;
|
||||||
|
s.miniData.kernRightEntryCount = 0;
|
||||||
|
s.miniData.kernLeftClassCount = 0;
|
||||||
|
s.miniData.kernRightClassCount = 0;
|
||||||
|
s.stubData.kernLeftClasses = nullptr;
|
||||||
|
s.stubData.kernRightClasses = nullptr;
|
||||||
|
s.stubData.kernMatrix = nullptr;
|
||||||
|
s.stubData.kernLeftEntryCount = 0;
|
||||||
|
s.stubData.kernRightEntryCount = 0;
|
||||||
|
s.stubData.kernLeftClassCount = 0;
|
||||||
|
s.stubData.kernRightClassCount = 0;
|
||||||
// NOTE: reportedMissCount is intentionally NOT reset here. The merge path
|
// NOTE: reportedMissCount is intentionally NOT reset here. The merge path
|
||||||
// calls freeStyleMiniData() to swap mini buffers, and resetting the miss
|
// calls freeStyleMiniData() to swap mini buffers, and resetting the miss
|
||||||
// tracker every paragraph would re-spam the log for the same 4 missing cps.
|
// tracker every paragraph would re-spam the log for the same 4 missing cps.
|
||||||
|
|||||||
Reference in New Issue
Block a user