| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(rom-size): ROM size optimization phase 1 - build config and symbol visibility Phase 1 of ROM size optimization (target: 30% reduction, baseline 7963KB). All changes are limited to BUILD.gn/.gni/.map files, no .cpp/.h modifications. Key changes: - Add notification_size_opt_cflags/ldflags public variables in notification.gni - Add -fno-rtti/-flto/-Bsymbolic/-fno-exceptions config to all production targets - Extract ANI sts_*.cpp (21 files) to ohos_shared_library notification_ani_common - Extract NAPI common*.cpp (12 files) to ohos_shared_library notification_napi_common - Tighten libans_innerkits.map from global:* to class-name-based export - Add version_script to 6 NAPI .so (export only napi_module) - Add version_script to 4 ANI .so (export only ANI_Constructor) - Feature-gate priority_notification/clone/geofence source files - Add distributed_notification_service_feature_clone flag Expected benefit: 500-1100KB reduction. Co-Authored-By: Agent Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> Change-Id: I029559a06708665662b1d2f9b7f66dcae53ee96f Signed-off-by: CheerfulRicky <yuegang7@h-partners.com> | 30 天前 | |
新增ohos.permission.NOTIFICATION_SYSTEM_SUBSCRIBER权限 Signed-off-by: heguokai <heguokai6@huawei-partners.com> | 4 个月前 | |
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 | 20 天前 | |
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 | 6 天前 | |
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 | 6 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 30 天前 | ||
| 4 个月前 | ||
| 20 天前 | ||
| 6 天前 | ||
| 6 天前 |