Commit Graph

692 Commits

Author SHA1 Message Date
Alexey Andreev
2f95045345 Improve optimization of unused methods that were inlined on every usage 2020-02-28 14:42:51 +03:00
Alexey Andreev
150a613709 C/Wasm: trying to fix GC (again) 2020-02-26 14:51:40 +03:00
Alexey Andreev
84aa50e7eb C/Wasm: trying to fix GC 2020-02-26 14:38:01 +03:00
Alexey Andreev
0e7c1e5ef9 Wasm: don't generate class metadata if it's not used. Don't generate names and call site metadata in minified mode 2020-02-21 17:29:31 +03:00
Alexey Andreev
3f2c52000f Wasm: support null checks and array bound checks 2020-02-21 16:32:45 +03:00
Alexey Andreev
c35861610f Wasm: support null checks and array bound checks 2020-02-21 16:32:00 +03:00
Alexey Andreev
7d95c0fb04 Wasm: fix GC 2020-02-21 16:22:25 +03:00
Alexey Andreev
d76eeb9be3 Improve <clinit> elimination. Improve inlining in ADVANCED optimization mode 2020-02-14 12:46:57 +03:00
Alexey Andreev
fecdd6613a Use tab character to indent stack traces 2020-02-14 10:39:50 +03:00
Alexey Andreev
289bfc9488 C: fix Function.get when getting function from different class 2020-02-10 19:52:17 +03:00
Alexey Andreev
a414a7979c Fix NPE 2020-02-10 17:08:25 +03:00
Alexey Andreev
3b1dae4412 Fix <clinit> elimination in case of native methods 2020-02-10 16:37:32 +03:00
Alexey Andreev
8cba925a89 C: fix bug in deobfuscator 2020-02-04 17:37:00 +03:00
Alexey Andreev
f4ec4872c5 C: fix crash when creating stack trace triggers GC 2020-02-04 14:25:22 +03:00
Alexey Andreev
45d36eac83 C: fix crash on GC when there are queued WeakReference instances in the heap
When performing young GC, we can encounter some WeakReferences which get into
corresponding ReferenceQueue. In this case queue internal state will be updated.
After it defragmentation phase runs which updates references to relocated objects.
For performance reason, defragmentation phase scans only regions either
marked with write barriers or regions that contain surviving objects in
young generation. However, sometimes a queue can be in neither of these sets,
so we additionally mark regions containing all affected queues.
2020-01-31 18:23:50 +03:00
Alexey Andreev
374f7c6634 C: allow to define custom logging functions. Use unified logging function within VM 2020-01-30 18:18:16 +03:00
Alexey Andreev
f13a7e6375 C: fix Strings.fromC/fromC16 methods 2020-01-30 15:41:37 +03:00
Alexey Andreev
7a2cd6ae4f Fix more bugs in devirtualization 2020-01-24 16:23:28 +03:00
Alexey Andreev
2d2ef642a3 Fix virtual method resolution in code server mode 2020-01-23 19:03:47 +03:00
Alexey Andreev
c53a563e96 Fix bug in devirtualization while inlining 2020-01-23 15:53:11 +03:00
Alexey Andreev
4776bebe8e C/Wasm: fix incorrect removal of GC root in optimizer 2020-01-22 17:16:44 +03:00
Alexey Andreev
a35a10bbc6 Reduce GC region size 2020-01-22 13:15:57 +03:00
Alexey Andreev
1ac0f7156c C/Wasm: fix OOME from compiled application 2020-01-22 13:15:57 +03:00
adamjryan
34aed76714 Add write replace method to lambdas that implement java.io.Serializable (#453)
Add write replace method to lambdas that implement java.io.Serializable

* Peripheral java library classes added as part of the toString method
of SerializedLambda to align functionality with the standard library.
* Test added that checks the SerializedLambda can be returned and that
it is populated with the correct values including it's toString method.
2020-01-15 11:11:48 +03:00
Alexey Andreev
9d0a53175a Do not insert GC write barriers when value assigned to field is known to be null or constant literal 2019-12-05 15:36:32 +03:00
Alexey Andreev
72fc62f082 Fix bug that causes heap to grow without need 2019-12-05 15:07:18 +03:00
Alexey Andreev
a7df41d41d Fix debugging when script is included with additional query string 2019-12-04 15:28:40 +03:00
Alexey Andreev
e147a998e5 Remove performance optimization that causes bug when modifying class hierarchy within class transformers 2019-12-04 12:41:41 +03:00
Alexey Andreev
16f4d2571b Support generations in GC 2019-12-03 12:10:55 +03:00
Alexey Andreev
d71aec7c40 Fix bug when boxing primitive value inside lambda to supertype (e.g. java.lang.Object) of corresponding wrapper type 2019-11-18 12:34:55 +03:00
Alexey Andreev
631111bdb3 Fix potential NPEs in compiler and native runtime 2019-11-18 11:24:47 +03:00
Alexey Andreev
099b9c5827 C: add stack trace deobfuscation tool 2019-11-06 14:02:56 +03:00
Alexey Andreev
e164015bfa C: another fix for GC when passing strings from native to Java 2019-11-06 11:19:02 +03:00
Alexey Andreev
3335b86619 C: fix exception when marshalling string from native code to Java and GC is triggered 2019-11-05 18:14:09 +03:00
Alexey Andreev
c05f40cc6a C: improve performance of heap dump to hprof converter 2019-11-05 14:01:56 +03:00
Alexey Andreev
9bdec1fdb2 C: fix the way how UWP env is detected in preprocessor 2019-10-31 14:37:49 +03:00
Alexey Andreev
fb78377db8 Fix various issues reported by PVS Studio and LGTM 2019-10-31 14:36:37 +03:00
Alexey Andreev
beef9e09ca C: fix bug in exception handling 2019-10-31 14:18:29 +03:00
Alexey Andreev
81cc3c156e Add optimization that eliminates repeated access to fields 2019-10-30 16:09:17 +03:00
Alexey Andreev
511160935f C: add missing include 2019-10-30 16:08:11 +03:00
Alexey Andreev
2bfc5b5305 JS: fix error in strict mode when NPE is never instantiated directly 2019-10-30 15:40:28 +03:00
Alexey Andreev
6bfbd38e22 Fix bug in decompiler that causes expression statement containing || or && with side effects to be removed 2019-10-30 13:38:47 +03:00
Alexey Andreev
15be89a758 JS: fix source map generation in some cases 2019-10-28 14:33:53 +03:00
Alexey Andreev
6ed00f1af2 C/Wasm: fix heap corruption when GC hits on initializing stack trace of exception 2019-10-28 13:59:03 +03:00
Alexey Andreev
4f9567561c Fix WASM backend 2019-10-23 18:30:16 +03:00
Alexey Andreev
3b4cc43e79 C: add option to strip off information about call site locations.
This decreases executable size significantly. However, this produces
obfuscated stack traces which can be deobfuscated using JSON symbol table.
2019-10-23 17:34:23 +03:00
Alexey Andreev
c78874f426 C/Wasm: don't generate names for classes when possible 2019-10-23 14:11:24 +03:00
Alexey Andreev
f7620704fc C/Wasm: fix bugs in GC 2019-10-22 19:05:37 +03:00
Alexey Andreev
70cb67c8f0 Fix bug in WASM backend 2019-10-18 17:09:57 +03:00
Alexey Andreev
8a91605c56 Add support for Class.getCanonicalName/getEnclosingClass 2019-10-18 15:10:16 +03:00