From b142f6ee25bdb7d019e868b3b7c5b089aa10a7a2 Mon Sep 17 00:00:00 2001 From: y30043833 Date: Thu, 11 Sep 2025 16:44:34 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E8=A1=A8=E5=8D=95=E3=80=91=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E7=B1=BB=E7=BB=84=E4=BB=B6=E5=91=8A=E8=AD=A6=E6=95=B4?= =?UTF-8?q?=E6=94=B9=20Signed-off-by:=20yyuanche=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8785496afa0df5966a7e1ea4ca2af815174034af --- .../bridge/declarative_frontend/jsview/js_popups.cpp | 2 +- .../bridge/declarative_frontend/jsview/js_radio.cpp | 6 +++++- .../bridge/declarative_frontend/jsview/js_rating.cpp | 4 +++- .../bridge/declarative_frontend/jsview/js_slider.cpp | 8 ++++++-- .../pattern/checkbox/checkbox_layout_algorithm.cpp | 5 ++++- 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/frameworks/bridge/declarative_frontend/jsview/js_popups.cpp b/frameworks/bridge/declarative_frontend/jsview/js_popups.cpp index 9e1523832aa..4e1cb54408a 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_popups.cpp +++ b/frameworks/bridge/declarative_frontend/jsview/js_popups.cpp @@ -680,7 +680,7 @@ void ParsePopupParam(const JSCallbackInfo& info, const JSRef& popupObj { ParsePopupCommonParam(info, popupObj, popupParam); JSRef messageVal = popupObj->GetProperty("message"); - if (popupParam) { + if (popupParam && messageVal->IsString()) { popupParam->SetMessage(messageVal->ToString()); } diff --git a/frameworks/bridge/declarative_frontend/jsview/js_radio.cpp b/frameworks/bridge/declarative_frontend/jsview/js_radio.cpp index 32225fb50d5..c1bf886b6a6 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_radio.cpp +++ b/frameworks/bridge/declarative_frontend/jsview/js_radio.cpp @@ -82,7 +82,11 @@ void JSRadio::Create(const JSCallbackInfo& info) } else { group = ""; } - indicator = indicatorTemp->ToNumber(); + if (indicatorTemp->IsNumber()) { + indicator = indicatorTemp->ToNumber(); + } else { + indicator = static_cast(RadioIndicatorType::TICK); + } ParseIndicator(info, indicator, customBuilderFunc, builderObject); } RadioModel::GetInstance()->Create(value, group, indicator); diff --git a/frameworks/bridge/declarative_frontend/jsview/js_rating.cpp b/frameworks/bridge/declarative_frontend/jsview/js_rating.cpp index e229b4b14d8..de03378c714 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_rating.cpp +++ b/frameworks/bridge/declarative_frontend/jsview/js_rating.cpp @@ -82,7 +82,9 @@ void JSRating::Create(const JSCallbackInfo& info) } } else if (paramObject->HasProperty("$rating")) { changeEventVal = paramObject->GetProperty("$rating"); - rating = getRating->ToNumber(); + if (getRating->IsNumber()) { + rating = getRating->ToNumber(); + } } else if (getRating->IsNumber()) { rating = getRating->ToNumber(); } diff --git a/frameworks/bridge/declarative_frontend/jsview/js_slider.cpp b/frameworks/bridge/declarative_frontend/jsview/js_slider.cpp index 3194dc8f52f..d0bff6f5d81 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_slider.cpp +++ b/frameworks/bridge/declarative_frontend/jsview/js_slider.cpp @@ -160,10 +160,14 @@ void JSSlider::Create(const JSCallbackInfo& info) JSRef valueObj = JSRef::Cast(getValue); changeEventVal = valueObj->GetProperty("changeEvent"); auto valueProperty = valueObj->GetProperty("value"); - value = valueProperty->ToNumber(); + if (valueProperty->IsNumber()) { + value = valueProperty->ToNumber(); + } } else if (paramObject->HasProperty("$value")) { changeEventVal = paramObject->GetProperty("$value"); - value = getValue->ToNumber(); + if (getValue->IsNumber()) { + value = getValue->ToNumber(); + } } else if (!getValue->IsNull() && getValue->IsNumber()) { value = getValue->ToNumber(); } diff --git a/frameworks/core/components_ng/pattern/checkbox/checkbox_layout_algorithm.cpp b/frameworks/core/components_ng/pattern/checkbox/checkbox_layout_algorithm.cpp index 0021f48f03b..86673a3a0d8 100644 --- a/frameworks/core/components_ng/pattern/checkbox/checkbox_layout_algorithm.cpp +++ b/frameworks/core/components_ng/pattern/checkbox/checkbox_layout_algorithm.cpp @@ -24,8 +24,11 @@ namespace OHOS::Ace::NG { PaddingPropertyF CheckBoxLayoutAlgorithm::GetBorderWidth(LayoutWrapper* layoutWrapper) { - auto borderWidth = layoutWrapper->GetLayoutProperty()->CreateBorder(); PaddingPropertyF padding; + CHECK_NULL_RETURN(layoutWrapper, padding); + auto layoutProperty = layoutWrapper->GetLayoutProperty(); + CHECK_NULL_RETURN(layoutProperty, padding); + auto borderWidth = layoutProperty->CreateBorder(); padding.left = borderWidth.leftDimen.value_or(0.0f); padding.right = borderWidth.rightDimen.value_or(0.0f); padding.top = borderWidth.topDimen.value_or(0.0f); -- Gitee