guoling
0d85678165
Load expiration state before encoding the first value write
...
A first set after reopening can encode without the expiration suffix and still report success, leaving an unreadable value. Move the existing write locks and load check ahead of expiry-dependent encoding in each setter path, without adding lock acquisitions or scalar buffers. Route encoded vectors through the existing expiration helper so public templates do not need lock internals.
Keep a minimal set-succeeds/read-fails regression separate from the setter-overload coverage. Both explicitly avoid warming the lazy instance before set.
2026-09-07 16:27:58 +08:00
guoling
023914a0c4
Honor expiration when reading and enumerating read-only stores
...
Read the expiration flag before the read-only metadata return. Filter expired entries in memory for count/allKeys instead of using fullWriteback, which refuses read-only stores. Test each API as the first operation on a fresh instance, for plain and encrypted stores, and verify filtering leaves stored entries intact.
2026-09-07 16:25:11 +08:00
guoling
6bd8a3e272
Refresh lazy mappings and validate metadata before cached restore
2026-09-07 16:04:38 +08:00
guoling
998c51baca
Support unsigned protobuf value lengths
2026-09-04 16:56:43 +08:00
guoling
baf36b8695
Refine v2.4.2 hardening fixes
2026-08-20 21:42:19 +08:00
guoling
c79b7a59d5
Harden backup and restore file handling
2026-08-05 13:39:29 +08:00
guoling
7b20c03c34
Harden encrypted write and key handling
2026-08-05 13:39:29 +08:00
guoling
4e3535f2c8
Harden MMKV close lifecycle handling #1669
2026-07-29 14:57:14 +08:00
guoling
5892e0ff3b
fix expireDuration overflow bug #1665
2026-06-02 19:06:09 +08:00
guoling
6a55c88536
enhance random iv
2026-03-25 12:46:48 +08:00
guoling
9348a93f26
refactor callback system into unified MMKVHandler across all platforms
...
Replace 4 separate static function pointers (LogHandler, ErrorHandler,
ContentChangeHandler, ContentLoadedHandler) with a single MMKVHandler
abstract class in Core C++. Update all 6 platform wrappers (iOS, Android,
OHOS, Python, Golang, Flutter) to use adapter classes bridging to the new
unified handler. Add onMMKVContentLoadSuccessfully callback to Android,
OHOS, Flutter, Python and Golang where it was previously missing.
2026-03-18 12:40:05 +08:00
guoling
b56ce1004f
merge ashmem size with expectedCapacity on Android & OHOS
2026-02-11 12:39:08 +08:00
guoling
ed0cade7e8
add MMKVConfig for Android
2026-02-06 20:28:19 +08:00
guoling
1915d892f1
add MMKVConfig
2026-02-05 17:21:53 +08:00
Guo Ling
f6e6fbc5e0
convert log message to utf-8 by (changing src in utf-8) for win32 client
2026-01-30 18:04:08 +08:00
hossinasaadi
6acdef76d0
fix
2025-12-22 17:56:48 +03:30
hossinasaadi
e8dba7762f
fix public interface
2025-12-22 15:23:58 +03:30
hossinasaadi
df721fa6cd
add onMMKVContentLoadSuccessfully to content notify handler
2025-12-21 17:39:57 +03:30
guoling
d99404baeb
reduce absolutePath() call as much as possible
2025-12-16 18:32:19 +08:00
guoling
8cb70d1123
add aes256 option on mmkv creation
2025-11-27 16:02:49 +08:00
guoling
2ba8ff9bc0
support AES 256
2025-09-24 11:55:35 +08:00
guoling
299bb09a56
fix Android compile error
2025-08-20 17:23:02 +08:00
guoling
82c32013ef
remove checkProcessMode() from OHOS
2025-04-23 14:24:33 +08:00
guoling
0f745c609d
test checkExist() on Win32
2025-04-22 20:53:38 +08:00
guoling
0e05353b4a
add checkExist(), isFileValid() and groupPath() for Flutter, fix checkContentChangedByOuterProcess() not working bug
2025-04-22 18:09:12 +08:00
guoling
b069fe2fba
drop deprecate armv7 logic
2025-04-21 17:43:58 +08:00
guoling
561d56ca75
adding mayfly fd on iOS
2025-04-18 17:16:26 +08:00
guoling
f23e95c652
support using MMKVCore at Apple platform in pure C++ code
2025-02-14 19:43:48 +08:00
guoling
f2fa428bf6
NameSpace works on Win32
2025-01-13 12:14:59 +08:00
guoling
a7d70e187a
NameSpace works on POSIX
2025-01-07 20:32:36 +08:00
guoling
d26fa06b2e
remove guardForBackgroundWriting() for we are iOS 13+
2025-01-06 15:58:04 +08:00
guoling
d069d7c56a
NameSpace for Android complete
2025-01-06 15:58:03 +08:00
guoling
147f89dba7
migrate legacy mmap ID to normal ID
2025-01-06 15:58:01 +08:00
guoling
fca2582343
fix tryAtomicRename() with src == dst bug
2025-01-06 15:55:51 +08:00
guoling
89b56922e8
1. NameSpace almost work on iOS
...
2. Upgrade to iOS 13, watchOS 6
3. Dont mkPath() on ReadOnly mode
2025-01-06 15:54:38 +08:00
guoling
0bd466efe3
support correct filename on custom root path
2024-12-24 19:29:07 +08:00
guoling
e5ca354c26
fix typo in shared_unlock() #1428
2024-11-12 16:20:59 +08:00
guoling
8b8188d536
add log & error & content change callback for flutter & ArtTS
2024-09-12 18:50:33 +08:00
guoling
6688793f59
check getMMKVWithID result and throw exception #1399
2024-09-09 20:43:06 +08:00
guoling
47d3c0893a
add readonly support
2024-09-06 19:44:11 +08:00
guoling
2183260881
fix set empty string/bytes value not working on auto key expire
2024-06-28 15:35:12 +08:00
guoling
c7d00a8382
clang-tidy
2024-05-11 15:29:49 +08:00
guoling
9341e03e19
make C++20 optional
2024-05-07 16:43:18 +08:00
guoling
9e8c30d7cb
also support std::span<>
2024-05-06 17:54:17 +08:00
guoling
8b8852479b
support encoding string_view
2024-04-29 18:05:44 +08:00
guoling
b990c2bd14
prepare to add vector<T> encode/decode support
2024-04-28 18:49:34 +08:00
guoling
db61c3ea60
fix typo
2024-04-28 15:43:13 +08:00
guoling
03ce05705c
tidy include
2024-04-10 21:38:51 +08:00
guoling
0187c37e48
tested ohos backup & restore
2024-04-10 21:21:11 +08:00
guoling
48d45c5bc4
stash for ohos backup & restore, almost done
2024-04-10 21:06:57 +08:00