| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(napi/ani): fix hidden symbol exports in version scripts Critical fix: libnotification_subscriber_extension_ani.map exported ANI_Constructor (non-existent) instead of OHOS_STS_NotificationSubscriberExtension_Creation which is the dlsym symbol expected by NotificationSubscriberExtensionModuleLoader. Added the missing extern "C" factory function in sts_notification_subscriber_extension.cpp. Other fixes: - Remove dead napi_module exports from NAPI module maps (the actual variable is _module; registration works via __attribute__((constructor))) - Add vtable/typeinfo/VTT export patterns to module .so maps for CFI cross-dso virtual call safety on IPC callback classes - Clean up redundant patterns in common library maps (*Common*, *NotificationManagerSts*, *NotificationSubScribeSts*, *ReminderAgentNapi*) - Remove orphaned libnotification_subscriber_extension.map (not referenced in BUILD.gn) Co-Authored-By: Agent Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Change-Id: I6ba01c5568862e5827d56efe5cbacfd593069c50 | 15 天前 | |
fix(ans): fix cross-SO singleton issue by adding AnsNotification::GetInstance() DelayedSingleton<AnsNotification>::GetInstance() returns different singleton objects in different shared libraries because the template's static members (instance_, mutex_) have vague linkage (COMDAT) and are hidden per-SO by -fvisibility=hidden + version scripts. Solution: 1. Add AnsNotification::GetInstance() using function-local static (C++11 thread-safe, defined out-of-line in ans_notification.cpp within libans_innerkits, symbol exported via *Ans* in .map) 2. Replace ALL callers (NAPI/ANI/Tools/Tests/CJ FFI) from DelayedSingleton<AnsNotification>::GetInstance() to AnsNotification::GetInstance() 3. Fix singleton.h include hygiene: - Add #include singleton.h to 34 files that use Singleton<>, DelayedSingleton<>, DECLARE_SINGLETON etc. but relied on transitive includes - Add #include nocopyable.h to 7 files that use DISALLOW_COPY_AND_MOVE but relied on transitive includes - Remove #include singleton.h from 70 files that no longer use any singleton.h symbols after the DelayedSingleton replacement The function-local static in ans_notification.cpp lives in libans_innerkits.so's data segment. AnsNotification::GetInstance() is a non-inline member function compiled only in libans_innerkits.so and exported via *Ans* pattern in libans_innerkits.map. All SOs call this exported function through dynamic linking, sharing the single instance. Co-Authored-By: Agent Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Change-Id: I1089cfa5bb010daf37c68333a1e71c55fc1f16f3 | 23 小时前 | |
!4960 merge fix/mst-db-isolation into master fix(ans): fix cross-SO singleton issue by adding AnsNotification::GetInstance() Created-by: cheerful_ricky Commit-by: CheerfulRicky Merged-by: openharmony_ci Description: ## Problem DelayedSingleton<AnsNotification>::GetInstance() returns different singleton objects in different shared libraries because the template's static members (instance_, mutex_) have vague linkage (COMDAT) and are hidden per-SO by -fvisibility=hidden + version scripts. ## Solution 1. **Add AnsNotification::GetInstance()** using function-local static (C++11 thread-safe, defined out-of-line in ans_notification.cpp within libans_innerkits, symbol exported via *Ans* in .map) 2. **Replace ALL callers** (NAPI/ANI/Tools/Tests/CJ FFI) from DelayedSingleton<AnsNotification>::GetInstance() to AnsNotification::GetInstance() 3. **Clean up** #include singleton.h from files that no longer use DelayedSingleton (kept in ans_manager_death_recipient.h and pixelmap_cache_manager.h which still use DelayedSingleton as base class) ## Why it works The function-local static in ans_notification.cpp lives in libans_innerkits.so's data segment. AnsNotification::GetInstance() is a non-inline member function compiled only in libans_innerkits.so and exported via *Ans* pattern in libans_innerkits.map. All SOs call this exported function through dynamic linking, sharing the single instance. ## Verification Syntax-checked key files with exact ninja build flags: ans_notification.cpp, notification_helper.cpp, ans_manager_death_recipient.cpp, napi_cancel.cpp, ani_cance.cpp, notification_manager_impl.cpp (CJ FFI), notification_shell_command.cpp (Tools) — all passed. Co-Authored-By: Agent See merge request: openharmony/notification_distributed_notification_service!4960 | 2 小时前 | |
fix(ans): fix cross-SO singleton issue by adding AnsNotification::GetInstance() DelayedSingleton<AnsNotification>::GetInstance() returns different singleton objects in different shared libraries because the template's static members (instance_, mutex_) have vague linkage (COMDAT) and are hidden per-SO by -fvisibility=hidden + version scripts. Solution: 1. Add AnsNotification::GetInstance() using function-local static (C++11 thread-safe, defined out-of-line in ans_notification.cpp within libans_innerkits, symbol exported via *Ans* in .map) 2. Replace ALL callers (NAPI/ANI/Tools/Tests/CJ FFI) from DelayedSingleton<AnsNotification>::GetInstance() to AnsNotification::GetInstance() 3. Fix singleton.h include hygiene: - Add #include singleton.h to 34 files that use Singleton<>, DelayedSingleton<>, DECLARE_SINGLETON etc. but relied on transitive includes - Add #include nocopyable.h to 7 files that use DISALLOW_COPY_AND_MOVE but relied on transitive includes - Remove #include singleton.h from 70 files that no longer use any singleton.h symbols after the DelayedSingleton replacement The function-local static in ans_notification.cpp lives in libans_innerkits.so's data segment. AnsNotification::GetInstance() is a non-inline member function compiled only in libans_innerkits.so and exported via *Ans* pattern in libans_innerkits.map. All SOs call this exported function through dynamic linking, sharing the single instance. Co-Authored-By: Agent Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Change-Id: I1089cfa5bb010daf37c68333a1e71c55fc1f16f3 | 23 小时前 | |
refactor(errors): implement unified error code layering architecture Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Co-Authored-by: Agent Change-Id: I136b4e503936f86c646fb936563a6eca6e7bc7d0 | 1 个月前 | |
fix(ans): fix cross-SO singleton issue by adding AnsNotification::GetInstance() DelayedSingleton<AnsNotification>::GetInstance() returns different singleton objects in different shared libraries because the template's static members (instance_, mutex_) have vague linkage (COMDAT) and are hidden per-SO by -fvisibility=hidden + version scripts. Solution: 1. Add AnsNotification::GetInstance() using function-local static (C++11 thread-safe, defined out-of-line in ans_notification.cpp within libans_innerkits, symbol exported via *Ans* in .map) 2. Replace ALL callers (NAPI/ANI/Tools/Tests/CJ FFI) from DelayedSingleton<AnsNotification>::GetInstance() to AnsNotification::GetInstance() 3. Fix singleton.h include hygiene: - Add #include singleton.h to 34 files that use Singleton<>, DelayedSingleton<>, DECLARE_SINGLETON etc. but relied on transitive includes - Add #include nocopyable.h to 7 files that use DISALLOW_COPY_AND_MOVE but relied on transitive includes - Remove #include singleton.h from 70 files that no longer use any singleton.h symbols after the DelayedSingleton replacement The function-local static in ans_notification.cpp lives in libans_innerkits.so's data segment. AnsNotification::GetInstance() is a non-inline member function compiled only in libans_innerkits.so and exported via *Ans* pattern in libans_innerkits.map. All SOs call this exported function through dynamic linking, sharing the single instance. Co-Authored-By: Agent Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Change-Id: I1089cfa5bb010daf37c68333a1e71c55fc1f16f3 | 23 小时前 | |
feat(notification): add batch slot query API and optimize getAllNotificationEnabledBundles Add isNotificationSlotEnabledByBundles batch slot query API to query multiple bundles' slot enabled state in a single IPC call, avoiding the performance degradation caused by LRU cache misses in the single-query path. Optimize getAllNotificationEnabledBundles to only query _enabledNotification keys (filtered by VALUE IN ('1','3')) and parse bundleName/uid from the key, reducing I/O by ~66%. - Add IDL method GetEnabledForBundleSlots with OrderedMap output - Add full-stack implementation: server, DB, client, helper, NAPI, ANI - Unify single query path to bypass LRU cache via batch query internally - Add QueryDataInKeys batched IN query and QueryEnabledBundles in RDB layer - Add unit tests for server, DB layer, and RDB batch query - Add performance test (300-bundle batch query < 30ms target) Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Co-Authored-By: Agent Change-Id: I59ed3041c14b33a2fbe69517d6b366597f03b11b | 1 个月前 | |
refactor(errors): implement unified error code layering architecture Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Co-Authored-by: Agent Change-Id: I136b4e503936f86c646fb936563a6eca6e7bc7d0 | 1 个月前 | |
Handle return of ani external call Signed-off-by: stepend98 <yangjun273@huawei.com> Co-Authored-By: Agent | 3 个月前 | |
add priority 1.2 Signed-off-by: wangdi <wangdi154@huawei.com> | 6 个月前 | |
modify Array Signed-off-by: heguokai <heguokai6@huawei-partners.com> | 8 个月前 | |
解决内存泄漏、删除多余代码 Signed-off-by: he-guokai <heguokai6@huawei-partners.com> | 5 个月前 | |
降低通知提醒 Signed-off-by: he-guokai <heguokai6@huawei-partners.com> | 8 个月前 | |
refactor(errors): implement unified error code layering architecture Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Co-Authored-by: Agent Change-Id: I136b4e503936f86c646fb936563a6eca6e7bc7d0 | 1 个月前 | |
updata all Signed-off-by: he-guokai <heguokai6@huawei-partners.com> | 4 个月前 | |
Sync0702ToMaster-ANIMangling Signed-off-by: wuyuanchao <wuyuanchao4@huawei.com> | 7 个月前 | |
refactor(ani): align ETS error handling with error-code-layering spec - sts_request.cpp: replace ERROR_INTERNAL_ERROR with ERR_ANS_INNER_TASK_ERR and ERROR_PARAM_INVALID with ERR_ANS_INNER_INVALID_PARAM; change return types from int32_t to InnerErrorCode for UnWarpNotificationRequest, GetNotificationContent, GetNotificationRequestByCustom and sub-functions - sts_request.h: add ans_service_errors.h include, update declaration - ani_publish.cpp: change int32_t ret to InnerErrorCode ret - ani_request_enable.cpp: replace ThrowError(env, ERR_ANS_INNER_INVALID_PARAM, msg) with ThrowErrorWithCode(env, ERR_ANS_INNER_INVALID_PARAM, msg) to preserve custom error message while using the spec-compliant entry point - ani_open_settings.cpp: same ThrowError -> ThrowErrorWithCode fix - ans_service_errors_test.cpp: update expected values for ERR_ANS_INNER_NO_MEMORY and ERR_ANS_INNER_CHECK_WEAK_NETWORK to match ERROR_INTERNAL_ERROR mapping Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Co-Authored-By: Agent Change-Id: I55cbf67e174c1e38aa1cbfecbbc939f1fa7de73f | 1 个月前 | |
fix ani Signed-off-by: yuechunyang <yuechunyang1@h-partners.com> | 9 个月前 | |
refactor(errors): implement unified error code layering architecture Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Co-Authored-by: Agent Change-Id: I136b4e503936f86c646fb936563a6eca6e7bc7d0 | 1 个月前 | |
ANS:回合master Signed-off-by: 18668095702 <heguokai6@huawei-partners.com> Signed-off-by: he-guokai <heguokai6@huawei-partners.com> | 10 个月前 | |
4阶段回合:ANS Signed-off-by: 18668095702 <heguokai6@huawei-partners.com> | 8 个月前 | |
fix(ans): fix cross-SO singleton issue by adding AnsNotification::GetInstance() DelayedSingleton<AnsNotification>::GetInstance() returns different singleton objects in different shared libraries because the template's static members (instance_, mutex_) have vague linkage (COMDAT) and are hidden per-SO by -fvisibility=hidden + version scripts. Solution: 1. Add AnsNotification::GetInstance() using function-local static (C++11 thread-safe, defined out-of-line in ans_notification.cpp within libans_innerkits, symbol exported via *Ans* in .map) 2. Replace ALL callers (NAPI/ANI/Tools/Tests/CJ FFI) from DelayedSingleton<AnsNotification>::GetInstance() to AnsNotification::GetInstance() 3. Fix singleton.h include hygiene: - Add #include singleton.h to 34 files that use Singleton<>, DelayedSingleton<>, DECLARE_SINGLETON etc. but relied on transitive includes - Add #include nocopyable.h to 7 files that use DISALLOW_COPY_AND_MOVE but relied on transitive includes - Remove #include singleton.h from 70 files that no longer use any singleton.h symbols after the DelayedSingleton replacement The function-local static in ans_notification.cpp lives in libans_innerkits.so's data segment. AnsNotification::GetInstance() is a non-inline member function compiled only in libans_innerkits.so and exported via *Ans* pattern in libans_innerkits.map. All SOs call this exported function through dynamic linking, sharing the single instance. Co-Authored-By: Agent Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Change-Id: I1089cfa5bb010daf37c68333a1e71c55fc1f16f3 | 23 小时前 | |
Add aggregation notification feature with classification and switch support Signed-off-by: stepend98 <yangjun273@huawei.com> Co-Authored-By: Agent | 2 个月前 | |
Add aggregation notification feature with classification and switch support Signed-off-by: stepend98 <yangjun273@huawei.com> Co-Authored-By: Agent | 2 个月前 | |
4阶段回合:ANS Signed-off-by: 18668095702 <heguokai6@huawei-partners.com> | 8 个月前 | |
Revert "Global and Error to std.core" Issue: https://gitcode.com/openharmony/arkcompiler_runtime_core/issues/11866 Co-Authored-By: Agent Signed-off-by: Ivan Tyulyandin <ivan.tyulyandin@huawei.com> | 1 个月前 | |
地理围栏优化 Signed-off-by: yuechunyang <yuechunyang1@h-partners.com> | 7 个月前 | |
ANS:回合master Signed-off-by: 18668095702 <heguokai6@huawei-partners.com> Signed-off-by: he-guokai <heguokai6@huawei-partners.com> | 10 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 15 天前 | ||
| 23 小时前 | ||
| 2 小时前 | ||
| 23 小时前 | ||
| 1 个月前 | ||
| 23 小时前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 6 个月前 | ||
| 8 个月前 | ||
| 5 个月前 | ||
| 8 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 7 个月前 | ||
| 1 个月前 | ||
| 9 个月前 | ||
| 1 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 23 小时前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 1 个月前 | ||
| 7 个月前 | ||
| 10 个月前 |