From 6a3b08b450eb5375a6aa163e0749052a6aef84cf Mon Sep 17 00:00:00 2001 From: PengKejie Date: Mon, 1 Sep 2025 17:25:14 +0800 Subject: [PATCH] copyTo add copy failed log Signed-off-by: PengKejie --- m133/modules/skparagraph/src/Run.cpp | 6 ++++-- modules/skparagraph/src/Run.cpp | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/m133/modules/skparagraph/src/Run.cpp b/m133/modules/skparagraph/src/Run.cpp index 0e79071865..df85de9444 100644 --- a/m133/modules/skparagraph/src/Run.cpp +++ b/m133/modules/skparagraph/src/Run.cpp @@ -442,7 +442,8 @@ SkScalar Run::usingAutoSpaceWidth(const Cluster& cluster) const void Run::copyTo(RSTextBlobBuilder& builder, size_t pos, size_t size) const { SkASSERT(pos + size <= this->size()); const auto& blobBuffer = builder.AllocRunPos(fFont, SkToInt(size)); - if (!blobBuffer.glyphs || !fGlyphs.data()) { + if (!blobBuffer.glyphs || !fGlyphs.data() || pos + size > this->size()) { + TEXT_LOGE("Failed to copy run, copy pos %{public}zu size %{public}zu", pos, size); return; } @@ -471,7 +472,8 @@ void Run::copyTo(RSTextBlobBuilder& builder, size_t size) const { SkASSERT(pos + size <= this->size()); auto& blobBuffer = builder.AllocRunRSXform(fFont, SkToInt(size)); - if (!blobBuffer.glyphs || !fGlyphs.data()) { + if (!blobBuffer.glyphs || !fGlyphs.data() || (pos + size > this->size())) { + TEXT_LOGE("Failed to copy run, copy pos %{public}zu size %{public}zu", pos, size); return; } diff --git a/modules/skparagraph/src/Run.cpp b/modules/skparagraph/src/Run.cpp index c1f25ae8a3..b6d4744add 100644 --- a/modules/skparagraph/src/Run.cpp +++ b/modules/skparagraph/src/Run.cpp @@ -508,7 +508,8 @@ void Run::copyTo(RSTextBlobBuilder& builder, size_t pos, size_t size) const { SkASSERT(pos + size <= this->size()); const auto& blobBuffer = builder.AllocRunPos(fFont, SkToInt(size)); #ifdef OHOS_SUPPORT - if (!blobBuffer.glyphs || !fGlyphs.data()) { + if (!blobBuffer.glyphs || !fGlyphs.data() || pos + size > this->size()) { + TEXT_LOGE("Failed to copy run, copy pos %{public}zu size %{public}zu", pos, size); return; } #endif @@ -538,7 +539,8 @@ void Run::copyTo(RSTextBlobBuilder& builder, SkASSERT(pos + size <= this->size()); auto& blobBuffer = builder.AllocRunRSXform(fFont, SkToInt(size)); #ifdef OHOS_SUPPORT - if (!blobBuffer.glyphs || !fGlyphs.data()) { + if (!blobBuffer.glyphs || !fGlyphs.data() || (pos + size > this->size())) { + TEXT_LOGE("Failed to copy run, copy pos %{public}zu size %{public}zu", pos, size); return; } #endif -- Gitee