From ced88f201991111c68fb1c4d5fa09dbf725c9252 Mon Sep 17 00:00:00 2001 From: yanxinyu7 Date: Tue, 2 Sep 2025 20:27:45 +0800 Subject: [PATCH] bugfix Signed-off-by: yanxinyu7 --- .../window_stage_ani/src/ani_window_manager.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window_manager.cpp b/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window_manager.cpp index 105024a537..4bb1fac1cb 100644 --- a/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window_manager.cpp +++ b/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window_manager.cpp @@ -309,8 +309,17 @@ bool ParseConfigOption(ani_env* env, ani_object configuration, WindowOption &opt } env->Object_GetPropertyByName_Ref(configuration, "ctx", &result); - ani_object aniContextPtr = reinterpret_cast(result); - contextPtr = AniWindowUtils::GetAbilityContext(env, aniContextPtr); + ani_boolean isCtxUndefined = false; + env->Reference_IsUndefined(result, &isCtxUndefined); + if (!isCtxUndefined) { + ani_object aniContextPtr = reinterpret_cast(result); + contextPtr = AniWindowUtils::GetAbilityContext(env, aniContextPtr); + auto context = static_cast*>(contextPtr); + if (context == nullptr) { + TLOGE(WmsLogTag::DEFAULT, "[ANI] context is nullptr"); + return AniWindowUtils::AniThrowError(env, WMError::WM_ERROR_NULLPTR, "Stage mode without context"); + } + } ani_boolean dialogDecorEnable; env->Object_GetPropertyByName_Boolean(configuration, "decorEnabled", &dialogDecorEnable); -- Gitee