From 4e85b7ab1317210368916c2b1d0468881f842fb8 Mon Sep 17 00:00:00 2001 From: wuyunxun Date: Tue, 15 Jul 2025 11:47:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuyunxun Change-Id: Ib06581201b6ab4134f0b8078a9512cb4010867d3 --- frameworks/js/ani/vibrator/src/vibrator_ani.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/frameworks/js/ani/vibrator/src/vibrator_ani.cpp b/frameworks/js/ani/vibrator/src/vibrator_ani.cpp index a7da738..5ec7ef4 100644 --- a/frameworks/js/ani/vibrator/src/vibrator_ani.cpp +++ b/frameworks/js/ani/vibrator/src/vibrator_ani.cpp @@ -765,13 +765,25 @@ static void StartVibrationSync([[maybe_unused]] ani_env *env, ani_object effect, VibrateInfo vibrateInfo; if (!ParseEffectTypeAndParameters(env, effect, vibrateInfo)) { + if (vibrateInfo.vibratorPattern.events != nullptr) { + free(vibrateInfo.vibratorPattern.events); + vibrateInfo.vibratorPattern.events = nullptr; + } return; } if (!ParserParamFromVibrateAttribute(env, attribute, vibrateInfo)) { + if (vibrateInfo.vibratorPattern.events != nullptr) { + free(vibrateInfo.vibratorPattern.events); + vibrateInfo.vibratorPattern.events = nullptr; + } ThrowBusinessError(env, PARAMETER_ERROR, "ParserParamFromVibrateAttribute failed!"); return; } StartVibrate(vibrateInfo); + if (vibrateInfo.vibratorPattern.events != nullptr) { + free(vibrateInfo.vibratorPattern.events); + vibrateInfo.vibratorPattern.events = nullptr; + } } static bool IsSupportEffectInterally([[maybe_unused]] ani_env *env, ani_string effectId) -- Gitee