!2643 merge master into master

增加减法下溢保护

Created-by: zhaoyixin1998
Commit-by: zhaoyixin1998
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/accessibility!2643
This commit is contained in:
openharmony_ci
2026-07-07 20:03:17 +08:00
@@ -462,6 +462,17 @@ bool CheckObserverEqual(napi_env env, napi_value observer, napi_env iterEnv, nap
return false;
}
static int32_t SafeSubtract(int32_t minuend, int32_t subtrahend)
{
if (subtrahend > 0 && minuend < INT32_MIN + subtrahend) {
return 0;
}
if (subtrahend < 0 && minuend > INT32_MAX + subtrahend) {
return 0;
}
return minuend - subtrahend;
}
/**********************************************************
* Convert native object to js object
*********************************************************/
@@ -476,12 +487,12 @@ void ConvertRectToJS(napi_env env, napi_value result, const Accessibility::Rect&
NAPI_CALL_RETURN_VOID(env, napi_set_named_property(env, result, "top", nLeftTopY));
napi_value nWidth = nullptr;
int32_t width = rect.GetRightBottomXScreenPostion() - rect.GetLeftTopXScreenPostion();
int32_t width = SafeSubtract(rect.GetRightBottomXScreenPostion(), rect.GetLeftTopXScreenPostion());
NAPI_CALL_RETURN_VOID(env, napi_create_int32(env, width, &nWidth));
NAPI_CALL_RETURN_VOID(env, napi_set_named_property(env, result, "width", nWidth));
napi_value nHeight = nullptr;
int32_t height = rect.GetRightBottomYScreenPostion() - rect.GetLeftTopYScreenPostion();
int32_t height = SafeSubtract(rect.GetRightBottomYScreenPostion(), rect.GetLeftTopYScreenPostion());
NAPI_CALL_RETURN_VOID(env, napi_create_int32(env, height, &nHeight));
NAPI_CALL_RETURN_VOID(env, napi_set_named_property(env, result, "height", nHeight));
}