diff --git a/src/lib/tvgArray.h b/src/lib/tvgArray.h index 6360bc5d..e4a6693f 100644 --- a/src/lib/tvgArray.h +++ b/src/lib/tvgArray.h @@ -73,9 +73,14 @@ struct Array return data + count; } - T* last() const + T& last() const { - return data + count - 1; + return data[count - 1]; + } + + T& first() const + { + return data[0]; } void pop() diff --git a/src/savers/tvg/tvgTvgSaver.cpp b/src/savers/tvg/tvgTvgSaver.cpp index 8c5c96c4..c1ceacae 100644 --- a/src/savers/tvg/tvgTvgSaver.cpp +++ b/src/savers/tvg/tvgTvgSaver.cpp @@ -675,8 +675,8 @@ TvgBinCounter TvgSaver::serializeChildren(Iterator* it, const Matrix* pTransform if (child->identifier() == TVG_CLASS_ID_SHAPE) { //only dosable if the previous child is a shape. auto target = children.last(); - if ((*target)->identifier() == TVG_CLASS_ID_SHAPE) { - if (_merge((Shape*)child, (Shape*)*target)) { + if (target->identifier() == TVG_CLASS_ID_SHAPE) { + if (_merge((Shape*)child, (Shape*)target)) { continue; } }