tvg_loader: fix asan report.

revert c31c77c0fb

memory mis-alignment is detected by asan tool.
This commit is contained in:
Hermet Park 2021-11-09 17:11:10 +09:00
parent cbcb85cd7c
commit 6ba2bc8eb3

View file

@ -87,8 +87,9 @@ static bool _parsePaintProperty(TvgBinBlock block, Paint *paint)
} }
case TVG_TAG_PAINT_TRANSFORM: { case TVG_TAG_PAINT_TRANSFORM: {
if (block.length != SIZE(Matrix)) return false; if (block.length != SIZE(Matrix)) return false;
auto transform = (Matrix*)(block.data); Matrix matrix;
paint->transform(*transform); memcpy(&matrix, block.data, SIZE(Matrix));
paint->transform(matrix);
return true; return true;
} }
case TVG_TAG_PAINT_CMP_TARGET: { case TVG_TAG_PAINT_CMP_TARGET: {
@ -226,8 +227,9 @@ static unique_ptr<Fill> _parseShapeFill(const char *ptr, const char *end)
} }
case TVG_TAG_FILL_TRANSFORM: { case TVG_TAG_FILL_TRANSFORM: {
if (!fillGrad || block.length != SIZE(Matrix)) return nullptr; if (!fillGrad || block.length != SIZE(Matrix)) return nullptr;
auto transform = (Matrix*)(block.data); Matrix gradTransform;
fillGrad->transform(*transform); memcpy(&gradTransform, block.data, SIZE(Matrix));
fillGrad->transform(gradTransform);
break; break;
} }
default: { default: {