a566393a89
Optimize to use decode buffer pool ( #1890 )
...
* Optimize to use decode buffer poll
* Drop unnecessary logging
* Refine
* Update app/src/main/cpp/archive.c
Co-authored-by: FooIbar <118464521+FooIbar@users.noreply.github.com >
---------
Co-authored-by: Dude so hot <djohn@fbi.gov >
Co-authored-by: FooIbar <118464521+FooIbar@users.noreply.github.com >
2024-11-05 05:01:15 +00:00
Dude so hot
f2759675a1
Optimize to not allocate anon mapping when fully zero copy
2024-11-04 21:12:45 +08:00
Dude so hot
2e6ff78662
Fast fix for operator precedence
2024-11-04 20:57:10 +08:00
renovate[bot] and Dude so hot
8ca0a32932
Cleanup to not handle memory allocation failure ( #1882 )
...
* Cleanup to not handle memory allocation failure
* Handle open failed on first open
---------
Co-authored-by: Dude so hot <djohn@fbi.gov >
2024-11-04 12:06:38 +00:00
a5719a9c1d
Optimize zero copy case to not iter over entries ( #1879 )
...
* Optimie zero copy case to not iter over entries
* Update app/src/main/cpp/archive.c
Co-authored-by: FooIbar <118464521+FooIbar@users.noreply.github.com >
---------
Co-authored-by: Dude so hot <djohn@fbi.gov >
Co-authored-by: FooIbar <118464521+FooIbar@users.noreply.github.com >
2024-11-04 09:03:41 +00:00
FooIbar
98fdcf0588
Fix double free on closing failed-to-open archives
2024-07-28 20:48:56 +08:00
renovate[bot]
539ad1af30
Fix read encrypted archive
2024-07-28 12:05:04 +00:00
Dude so hot
b4422fe910
Drop MAP_UNINITIALIZED
...
This is not available on modern MMU devices
2024-07-11 21:31:34 +08:00
Dude so hot
22e58a034f
Fix memleak while do archive
2024-07-11 21:12:31 +08:00
FooIbar
0a25643b87
Fix native crash on archive open failures
2024-07-04 20:24:37 +08:00
FooIbar
8d64a6f1b2
Update ndk and support 16 KB page sizes ( #1057 )
...
* Update ndk and support 16 KB page sizes
* Fix CI
* Update graphics-path and pass linker flag to rustc
2024-04-25 14:37:01 +00:00
FooIbar
3a04460926
Abort if no image entries found in archive
2024-04-01 18:18:19 +08:00
renovate[bot] and GG Bond
a22880a9b1
Fix archive memleak ( #828 )
...
* Don't lock anon pages when decode
* Log madvise fault
* Simplify
* Don't readahead unconditionally
* Refine
* Fixes
* Cleanup
* Fix sparse archive case
* Fixes
* Prefault anon pages for new kernel
* Fixes
* Fixes
* Fixes
---------
Co-authored-by: GG Bond <whatever@tagkong.com >
2024-03-02 14:48:35 +08:00
FooIbar
01e3f3e9b7
Sort only entries in external archive files
2024-02-29 16:07:34 +08:00
FooIbar
8ee23ab520
Fix zero-copy branch condition for an edge case
2024-02-29 01:45:10 +08:00
renovate[bot] and GG Bond
5982bd2d4b
Zero-copy read for 0-compression archives ( #809 )
...
* Zero-copy read for 0-compression archives
* Refine
---------
Co-authored-by: GG Bond <whatever@tagkong.com >
2024-02-28 09:04:17 +00:00
Vladimir Dostoyevskiy and GG Bond
21016dda53
Initial draft support export as cbz ( #685 )
...
* Initial draft support export as cbz
* Hint user progress
* Hint user result
* Emit comicInfo as well
* Write ComicInfo if not exist
* Use perFilename
* Print stacktrace
* Fix
* Refine
* Revert "Refine"
This reverts commit 2b368180fde00c7a8cfd4e895f1f2d5c29c3cf9f.
* Refine
* Refine
* Fix
---------
Co-authored-by: GG Bond <whatever@tagkong.com >
2024-02-06 06:44:11 +00:00
FooIbar
ce1dc55d3c
Add support for non-UTF-8 encoded archives ( #682 )
2024-02-04 22:24:32 +08:00
FooIbar
6bc80d1afa
[Marshmallow] Archive support
2024-01-06 22:02:00 +08:00
FooIbar
f2d94f1ed6
Use product flavors to provide marshmallow support ( #57 )
...
* Use product flavors to provide marshmallow support
Fix crashing when opening archives
* Fix artifacts upload
* Change artifact names
* Fix app updater
2023-10-14 19:14:19 +00:00
tarsin
8aa4c34794
Implement spinlock, don't use platform one
2023-04-29 19:26:47 +08:00
tarsin
797182fbf8
Fixup! Use spinlock for better performance
2023-04-29 17:18:30 +08:00
tarsin
711848f027
Use spinlock for better performance
2023-04-29 17:12:23 +08:00
tarsin
8924d36925
Tidy native function namespace
2023-03-22 17:48:10 +08:00
tarsin
c12bd32682
Allow decode avif
2023-03-19 00:32:10 +08:00
tarsin
f6458cd8ee
Cleanup some IO overhead
2023-02-28 17:58:45 +08:00
tarsin
c4a3f06b51
Cleanup unnecessary jni call
2023-02-27 17:05:54 +08:00
tarsin
1dd04740bb
Use MADV_DONTNEED as fallback
2023-02-24 19:22:10 +08:00
FooIbar
35201e6615
Use natsort for better archive file sorting
2023-02-24 18:43:08 +08:00
tarsin
86d416bccf
Don't populate archive
2023-02-24 18:33:44 +08:00
tarsin
704c2a261e
Use MAP_UNINITIALIZED to improve performance
2023-02-24 13:05:43 +08:00
tarsin
8fabdd1926
Suppress lint
2023-02-24 12:41:07 +08:00
tarsin
f9df373a16
Some infeasible optimization
2023-02-24 12:39:58 +08:00
tarsin
f959f98012
Minor cleanup
2023-02-24 12:02:42 +08:00
tarsin
e12a93f36b
Introduce new archive decompress mempool, Resolve #307
2023-02-24 11:37:30 +08:00
FooIbar
a8195c0e7c
Map archive index with filename order
...
Try to resolve #427
2022-12-17 12:53:13 +08:00
tarsin
5e13986cc0
Prefault archive mapping page tables for small files
2022-12-02 17:33:54 +08:00
tarsin
7ac20d59fc
Use DirectByteBuffer
...
Seems my mimalloc(I use it as Android's system allocator) doesn't like release memory to system since I replace MADV_DONTNEED with MADV_FREE
https://github.com/AcmeUI/android_external_mimalloc
but there is no memleak I sure
2022-11-21 12:11:35 +08:00
tarsin
54d11dea95
Initial migrate to ImageDecoder Java api, and downgrade minsdk to 28
2022-11-19 22:17:08 +08:00
tarsin
ae79417845
Adjust madvise usage
2022-11-10 15:21:17 +08:00
tarsin
50f0df5012
Explicitly set format and filter we use
...
This helps to reduce native library size
2022-11-10 00:56:49 +08:00
tarsin
bc08a09621
Fix read archive
2022-09-23 09:20:15 +08:00
txyyh
9251ed238c
Fix archive code error ( #289 )
2022-09-21 08:56:56 +08:00
tarsin
3b96328765
Use fixed size buffer
2022-09-20 18:29:35 +08:00
tarsin
108928e524
Implement save, share image from archive
2022-09-20 18:09:41 +08:00
tarsin
144e384441
Refine error handling
2022-08-21 12:00:29 +08:00
tarsin
9bb694171b
Implement multithreading archive read
2022-08-21 09:21:53 +08:00
tarsin
647362cd82
Implement multiple archive context, Fix #213
...
* This is useful for multithreading decompress with lock usage
2022-08-20 23:38:13 +08:00
tarsin
56996558df
Fix a use-after-free
2022-08-20 20:23:57 +08:00
tarsin
a0fe6f0d7d
Revert "archive: Use memfd instead"
...
* It sucks, seems simplify the conditions, but more syscalls are
made(read/seek/write), more context switch, futhermore AImageDecoder itself does support
read raw buffer, and we are not intend to support multi-process decoding
This reverts commit f4826ea727 .
2022-08-07 19:14:25 +08:00