Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[core] Non-deterministic results in many aspects #1089

Open
wfjsw opened this issue Jan 22, 2021 · 2 comments
Open

[core] Non-deterministic results in many aspects #1089

wfjsw opened this issue Jan 22, 2021 · 2 comments
Labels
bug Core Issues in jadx-core module
Milestone

Comments

@wfjsw
Copy link

wfjsw commented Jan 22, 2021

Version: 1.2.0
APK Artifact: link to it. GitHub apparently does not want me to upload this 100MB apk.
Args: jadx -d out -r --show-bad-code --deobf --deobf-max 256 --respect-bytecode-access-modifiers target.apk

Thingies keep changing back and forth between each runs. For example:

Example 1: Access modifiers (while without --respect-bytecode-access-modifiers)

diff --git a/android/support/p010v4/app/QFragmentContainer.java b/android/support/p010v4/app/QFragmentContainer.java
index 1cfac1dbe..7d537e6f2 100644
--- a/android/support/p010v4/app/QFragmentContainer.java
+++ b/android/support/p010v4/app/QFragmentContainer.java
@@ -2,9 +2,8 @@
 
 import android.view.View;
 
-/* access modifiers changed from: package-private */
 /* renamed from: android.support.v4.app.QFragmentContainer */
 /* compiled from: P */
-public interface QFragmentContainer {
+interface QFragmentContainer {
     View findViewById(int i);
 }
diff --git a/android/support/p010v4/view/ViewCompat.java b/android/support/p010v4/view/ViewCompat.java
index 9e8603696..1846f34a5 100644
--- a/android/support/p010v4/view/ViewCompat.java
+++ b/android/support/p010v4/view/ViewCompat.java
@@ -67,9 +67,10 @@
     public @interface ScrollIndicators {
     }
 
+    /* access modifiers changed from: package-private */
     /* renamed from: android.support.v4.view.ViewCompat$ViewCompatImpl */
     /* compiled from: P */
-    interface ViewCompatImpl {
+    public interface ViewCompatImpl {
         ViewPropertyAnimatorCompat animate(View view);
 
         boolean canScrollHorizontally(View view, int i);

etc. I got lots of them while not making any change to apk and jobf files. It steadily generates 500ish changed files with 3000ish
weird additions and deletions.

Example 2: Access method changes

After I enabled the --respect-bytecode-access-modifiers now it cluttered me with following changes:

diff --git a/com/peterlmeng/animate_image/support/common/_$$Lambda$CanvasConsumerAnimatorRenderWorker$gR65bSS8NeN3D9_FQLovmygrutQ.java b/com/peterlmeng/animate_image/support/common/_$$Lambda$CanvasConsumerAnimatorRenderWorker$gR65bSS8NeN3D9_FQLovmygrutQ.java
index ba5a159dd..7f247f5d5 100644
--- a/com/peterlmeng/animate_image/support/common/_$$Lambda$CanvasConsumerAnimatorRenderWorker$gR65bSS8NeN3D9_FQLovmygrutQ.java
+++ b/com/peterlmeng/animate_image/support/common/_$$Lambda$CanvasConsumerAnimatorRenderWorker$gR65bSS8NeN3D9_FQLovmygrutQ.java
@@ -11,6 +11,6 @@
 
     @Override // com.peterlmeng.animate_image.support.common.ICanvasConsumer
     public final void draw(Canvas canvas) {
-        CanvasConsumerAnimatorRenderWorker.lambda$new$0(this.f$0, canvas);
+        this.f$0.mAnimator.draw(canvas);
     }
 }
diff --git a/com/tencent/beacon/stat/RunnableC4030f.java b/com/tencent/beacon/stat/RunnableC4030f.java
index f74ee965d..ee3b9fd8e 100644
--- a/com/tencent/beacon/stat/RunnableC4030f.java
+++ b/com/tencent/beacon/stat/RunnableC4030f.java
@@ -14,13 +14,13 @@
     }
 
     public void run() {
-        ModuleImpl.access$600(this.f16401a).mo29832a(C3899f.m18854a(ModuleImpl.access$700(this.f16401a)));
-        ModuleImpl.access$500(this.f16401a).mo29832a(((C3899f) ModuleImpl.access$600(this.f16401a).mo29833b()).mo29189a("on_qua_date", ""));
-        ModuleImpl.access$400(this.f16401a).mo29832a(Long.valueOf(((C3899f) ModuleImpl.access$600(this.f16401a).mo29833b()).mo29187a("common_event_calls", 0L)));
-        ModuleImpl.access$300(this.f16401a).mo29832a(Long.valueOf(((C3899f) ModuleImpl.access$600(this.f16401a).mo29833b()).mo29187a("real_time_event_calls", 0L)));
-        ModuleImpl.access$200(this.f16401a).mo29832a(Long.valueOf(((C3899f) ModuleImpl.access$600(this.f16401a).mo29833b()).mo29187a("common_event_write_succ", 0L)));
-        ModuleImpl.access$100(this.f16401a).mo29832a(Long.valueOf(((C3899f) ModuleImpl.access$600(this.f16401a).mo29833b()).mo29187a("real_time_event_write_succ", 0L)));
-        ModuleImpl.access$000(this.f16401a).mo29832a(Long.valueOf(((C3899f) ModuleImpl.access$600(this.f16401a).mo29833b()).mo29187a("real_time_event_upload_succ", 0L)));
-        ModuleImpl.access$800(this.f16401a);
+        this.f16401a.quaSharedPrefs.mo29832a(C3899f.m18854a(this.f16401a.mContext));
+        this.f16401a.onQuaDate.mo29832a(((C3899f) this.f16401a.quaSharedPrefs.mo29833b()).mo29189a("on_qua_date", ""));
+        this.f16401a.commonEventCalls.mo29832a(Long.valueOf(((C3899f) this.f16401a.quaSharedPrefs.mo29833b()).mo29187a("common_event_calls", 0L)));
+        this.f16401a.realTimeEventCalls.mo29832a(Long.valueOf(((C3899f) this.f16401a.quaSharedPrefs.mo29833b()).mo29187a("real_time_event_calls", 0L)));
+        this.f16401a.commonEventWriteSucc.mo29832a(Long.valueOf(((C3899f) this.f16401a.quaSharedPrefs.mo29833b()).mo29187a("common_event_write_succ", 0L)));
+        this.f16401a.realTimeEventWriteSucc.mo29832a(Long.valueOf(((C3899f) this.f16401a.quaSharedPrefs.mo29833b()).mo29187a("real_time_event_write_succ", 0L)));
+        this.f16401a.realTimeEventUploadSucc.mo29832a(Long.valueOf(((C3899f) this.f16401a.quaSharedPrefs.mo29833b()).mo29187a("real_time_event_upload_succ", 0L)));
+        this.f16401a.resetAllAnotherDay();
     }
 }

Example 3: Access modifiers (again, this time with --respect-bytecode-access-modifiers)

I still got this even I have it set to respect:

diff --git a/com/tencent/beacon/stat/ModuleImpl.java b/com/tencent/beacon/stat/ModuleImpl.java
index f509487de..c982b2d44 100644
--- a/com/tencent/beacon/stat/ModuleImpl.java
+++ b/com/tencent/beacon/stat/ModuleImpl.java
@@ -104,6 +105,7 @@ private void incTotalCallsMod() {
         }
     }
 
+    /* access modifiers changed from: private */
     public void resetAllAnotherDay() {
         try {
             if (!C3935b.m18990a().equals(this.onQuaDate.mo29831a())) {

And it duplicates. Weird++:

diff --git a/com/tencent/beacon/stat/ModuleImpl.java b/com/tencent/beacon/stat/ModuleImpl.java
index 20c161500..c982b2d44 100644
--- a/com/tencent/beacon/stat/ModuleImpl.java
+++ b/com/tencent/beacon/stat/ModuleImpl.java
@@ -106,8 +106,7 @@ private void incTotalCallsMod() {
     }
 
     /* access modifiers changed from: private */
-    /* access modifiers changed from: public */
-    private void resetAllAnotherDay() {
+    public void resetAllAnotherDay() {
         try {
             if (!C3935b.m18990a().equals(this.onQuaDate.mo29831a())) {
                 this.onQuaDate.mo29832a(C3935b.m18990a());

Example 4: Constants

diff --git a.java b.java
index f509487de..c982b2d44 100644
--- a.java
+++ b.java
@@ -16,15 +16,16 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+/* compiled from: P */
 public class ModuleImpl extends C3914c implements AbstractC3932l {
-    private static final String KEY_COMMON_EVENT_CALLS;
-    private static final String KEY_COMMON_EVENT_WRITE_SUCC;
-    private static final String KEY_ON_QUA_DATE;
-    private static final String KEY_REAL_TIME_EVENT_CALLS;
-    private static final String KEY_REAL_TIME_EVENT_UPLOAD_SUCC;
-    private static final String KEY_REAL_TIME_EVENT_WRITE_SUCC;
-    private static int MAX_EVENT_CALLS_SYNC;
-    private static String eventName;
+    private static final String KEY_COMMON_EVENT_CALLS = "common_event_calls";
+    private static final String KEY_COMMON_EVENT_WRITE_SUCC = "common_event_write_succ";
+    private static final String KEY_ON_QUA_DATE = "on_qua_date";
+    private static final String KEY_REAL_TIME_EVENT_CALLS = "real_time_event_calls";
+    private static final String KEY_REAL_TIME_EVENT_UPLOAD_SUCC = "real_time_event_upload_succ";
+    private static final String KEY_REAL_TIME_EVENT_WRITE_SUCC = "real_time_event_write_succ";
+    private static int MAX_EVENT_CALLS_SYNC = 5;
+    private static String eventName = "rqd_up_qua";
     private static ModuleImpl mInstance;
     private final ConcurrentHashMap<Integer, C4031g> buffer = new ConcurrentHashMap<>();
     private C4025a<Long> commonEventCalls = new C4025a<>();

Example 5: Kotlin Metadatas

diff --git a/com/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerController.java b/com/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerController.java
index 7aad705cd..880447819 100644
--- a/com/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerController.java
+++ b/com/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerController.java
@@ -9,28 +9,21 @@
 import com.tencent.biz.pubaccount.readinjoy.engine.ReadInJoyLogicEngine;
 import com.tencent.biz.pubaccount.readinjoy.engine.ReadInJoyLogicManager;
 import com.tencent.biz.pubaccount.readinjoy.pts.util.PTSStyleManager;
-import com.tencent.biz.pubaccount.readinjoy.viola.modules.BridgeModule;
 import com.tencent.mobileqq.app.QQAppInterface;
 import com.tencent.mobileqq.app.QQManagerFactory;
-import com.tencent.mobileqq.mini.servlet.MiniAppAbstractServlet;
 import com.tencent.pts.core.PTSComposer;
 import com.tencent.pts.core.itemview.PTSItemView;
 import com.tencent.pts.core.lite.IPTSLiteEventListener;
 import com.tencent.qphone.base.util.QLog;
 import java.util.List;
-import kotlin.Metadata;
 import kotlin.TypeCastException;
 import kotlin.jvm.internal.DefaultConstructorMarker;
 import kotlin.jvm.internal.Intrinsics;
 import mqq.app.AppRuntime;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 
-@Metadata(mo195228bv = {1, 0, 3}, mo195229d1 = {"\u0000V\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\r\n\u0002\u0010\u000b\n\u0002\b\u0005\u0018\u0000 -2\u00020\u0001:\u0001-B!\b\u0016\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\b\u0010\u0006\u001a\u0004\u0018\u00010\u0007¢\u0006\u0002\u0010\bJ\u0010\u0010\u0017\u001a\u00020\u00182\u0006\u0010\t\u001a\u00020\nH\u0002J\"\u0010\u0019\u001a\u00020\u00182\u0006\u0010\u001a\u001a\u00020\u001b2\b\u0010\u001c\u001a\u0004\u0018\u00010\u001b2\u0006\u0010\t\u001a\u00020\nH\u0002J\u0006\u0010\u001d\u001a\u00020\u0018J\u0010\u0010\u001e\u001a\u00020\u00182\u0006\u0010\t\u001a\u00020\nH\u0002J\"\u0010\u001f\u001a\u00020\u00182\u0006\u0010\u001a\u001a\u00020\u001b2\b\u0010\u001c\u001a\u0004\u0018\u00010\u001b2\u0006\u0010\t\u001a\u00020\nH\u0002J\u0006\u0010 \u001a\u00020\u0018J\"\u0010!\u001a\u00020\u00182\u0006\u0010\u0002\u001a\u00020\u00032\u0006\u0010\u0004\u001a\u00020\u00052\b\u0010\"\u001a\u0004\u0018\u00010\u0007H\u0002J\u0006\u0010#\u001a\u00020\u0018J\u000e\u0010$\u001a\u00020\u00182\u0006\u0010\t\u001a\u00020\nJ\u0006\u0010%\u001a\u00020\u0018J\u0006\u0010&\u001a\u00020\u0018J\u000e\u0010'\u001a\u00020\u00182\u0006\u0010(\u001a\u00020)J\u001a\u0010*\u001a\u00020\u00182\b\u0010+\u001a\u0004\u0018\u00010\u001b2\u0006\u0010,\u001a\u00020\u0003H\u0002R\u0010\u0010\t\u001a\u0004\u0018\u00010\nX�\u000e¢\u0006\u0002\n\u0000R\u001c\u0010\u0006\u001a\u0004\u0018\u00010\u0007X�\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u000b\u0010\f\"\u0004\b\r\u0010\u000eR\u000e\u0010\u0002\u001a\u00020\u0003X�\u0004¢\u0006\u0002\n\u0000R\u0010\u0010\u000f\u001a\u0004\u0018\u00010\u0010X�\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0011\u001a\u00020\u0012X�\u0004¢\u0006\u0002\n\u0000R\u0010\u0010\u0013\u001a\u0004\u0018\u00010\u0014X�\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0015\u001a\u00020\u0016X�\u0004¢\u0006\u0002\n\u0000¨\u0006."}, mo195230d2 = {"Lcom/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerController;", "", "channelId", "", "context", "Landroid/content/Context;", "channelBannerView", "Lcom/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerView;", "(ILandroid/content/Context;Lcom/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerView;)V", "channelBannerInfo", "Lcom/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerModule$ChannelBannerInfo;", "getChannelBannerView", "()Lcom/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerView;", "setChannelBannerView", "(Lcom/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerView;)V", "ptsComposer", "Lcom/tencent/pts/core/PTSComposer;", "ptsUpdateDataListener", "Lcom/tencent/pts/core/PTSComposer$IPTSUpdateDataListener;", "ptsliteEventListener", "Lcom/tencent/pts/core/lite/IPTSLiteEventListener;", "rijChannelBannerReport", "Lcom/tencent/biz/pubaccount/readinjoy/channelbanner/RIJChannelBannerReport;", "clickBannerCard", "", "clickBannerItem", "uin", "", "avatarStatus", "destroy", "exposeBannerCard", "exposeBannerItem", "exposeChannelBanner", "init", "rijChannelBannerView", "loadChannelBannerView", "refreshChannelBannerView", MiniAppAbstractServlet.KEY_REPORT_DATA, "requestChannelBannerData", "setChannelBannerVisible", "visible", "", "updateAvatarStatus", BridgeModule.BRIDGE_PARAMS_IDENTIFIER, "newAvatarStatus", "Companion", "AQQLiteApp_release"}, mo195231k = 1, mo195232mv = {1, 1, 16})
-/* compiled from: P */
 public final class RIJChannelBannerController {
 
     /* renamed from: a */
diff --git a/com/tencent/biz/pubaccount/readinjoy/comment/handler/BlockUserCommentHandler.java b/com/tencent/biz/pubaccount/readinjoy/comment/handler/BlockUserCommentHandler.java
index a1490dbc6..7d7263ecd 100644
--- a/com/tencent/biz/pubaccount/readinjoy/comment/handler/BlockUserCommentHandler.java
+++ b/com/tencent/biz/pubaccount/readinjoy/comment/handler/BlockUserCommentHandler.java
@@ -5,27 +5,37 @@
 import com.tencent.biz.pubaccount.readinjoy.decoupling.accesslayer.util.RIJQQAppInterfaceUtil;
 import com.tencent.qphone.base.util.QLog;
 import com.tencent.qqmini.sdk.browser.BrowserPlugin;
+import kotlin.Metadata;
 import kotlin.Unit;
 import kotlin.jvm.functions.Function1;
 import kotlin.jvm.functions.Function2;
 import kotlin.jvm.internal.DefaultConstructorMarker;
 import kotlin.jvm.internal.Intrinsics;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 import tencent.p397im.oidb.cmd0xf35.oidb_cmd0xf35;
 
+@Metadata(mo195228bv = {1, 0, 3}, mo195229d1 = {"\u0000N\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\u0010\u000b\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0012\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0004\u0018\u0000 #2\u00020\u0001:\u0001#B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0004J\u0006\u0010\u001a\u001a\u00020\u001bJ\u000e\u0010\u001c\u001a\u00020\u000f2\u0006\u0010\u0002\u001a\u00020\u001dJ \u0010\u001e\u001a\u00020\u000f2\u0006\u0010\u001f\u001a\u00020 2\u0006\u0010\u000e\u001a\u00020\r2\b\b\u0002\u0010\f\u001a\u00020\tJ\u000e\u0010!\u001a\u00020\u000f2\u0006\u0010\u0002\u001a\u00020\u001dJ\u0006\u0010\"\u001a\u00020\u000fR\u0011\u0010\u0002\u001a\u00020\u0003¢\u0006\b\n\u0000\u001a\u0004\b\u0005\u0010\u0006RL\u0010\u0007\u001a4\u0012\u0013\u0012\u00110\t¢\u0006\f\b\n\u0012\b\b\u000b\u0012\u0004\b\b(\f\u0012\u0013\u0012\u00110\r¢\u0006\f\b\n\u0012\b\b\u000b\u0012\u0004\b\b(\u000e\u0012\u0004\u0012\u00020\u000f\u0018\u00010\bX�\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0010\u0010\u0011\"\u0004\b\u0012\u0010\u0013R(\u0010\u0014\u001a\u0010\u0012\u0004\u0012\u00020\r\u0012\u0004\u0012\u00020\u000f\u0018\u00010\u0015X�\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0016\u0010\u0017\"\u0004\b\u0018\u0010\u0019¨\u0006$"}, mo195230d2 = {"Lcom/tencent/biz/pubaccount/readinjoy/comment/handler/BlockUserCommentHandler;", "", "data", "Lcom/tencent/biz/pubaccount/readinjoy/comment/handler/bean/BlockUserCommentData;", "(Lcom/tencent/biz/pubaccount/readinjoy/comment/handler/bean/BlockUserCommentData;)V", "getData", "()Lcom/tencent/biz/pubaccount/readinjoy/comment/handler/bean/BlockUserCommentData;", "onFailedCallback", "Lkotlin/Function2;", "", "Lkotlin/ParameterName;", "name", "isOverTimes", "", BrowserPlugin.KEY_ERROR_MSG, "", "getOnFailedCallback", "()Lkotlin/jvm/functions/Function2;", "setOnFailedCallback", "(Lkotlin/jvm/functions/Function2;)V", "onSuccessCallback", "Lkotlin/Function1;", "getOnSuccessCallback", "()Lkotlin/jvm/functions/Function1;", "setOnSuccessCallback", "(Lkotlin/jvm/functions/Function1;)V", "generateRequestBody", "Ltencent/im/oidb/cmd0xf35/oidb_cmd0xf35$ReqBody;", "handleBlockUserCommentResult", "", "onCommentOperationFailed", "errorCode", "", "onCommentOperationSuccess", "send0xf35Request", "Companion", "AQQLiteApp_release"}, mo195231k = 1, mo195232mv = {1, 1, 16})
+/* compiled from: P */

Example 6: `@Nullable` and `@NotNull` s

diff --git a/com/tencent/biz/pubaccount/readinjoy/RIJXTabViewPagerController.java b/com/tencent/biz/pubaccount/readinjoy/RIJXTabViewPagerController.java
index 283bf220c..a0367a08f 100644
--- a/com/tencent/biz/pubaccount/readinjoy/RIJXTabViewPagerController.java
+++ b/com/tencent/biz/pubaccount/readinjoy/RIJXTabViewPagerController.java
@@ -2,21 +2,28 @@
 
 import android.content.Context;
 import android.support.p010v4.app.Fragment;
+import com.huawei.hms.push.constant.RemoteMessageConst;
 import com.tencent.biz.pubaccount.readinjoy.common.RIJXTabFrameUtils;
 import com.tencent.biz.pubaccount.readinjoy.config.handlers.RIJXTabConfigHandler;
 import com.tencent.biz.pubaccount.readinjoy.struct.TabChannelCoverInfo;
 import com.tencent.biz.pubaccount.readinjoy.view.widget.RIJXTabBar;
 import com.tencent.biz.pubaccount.readinjoy.view.widget.ReadInJoyChannelViewPager;
 import com.tencent.mobileqq.activity.SplashActivity;
+import com.tencent.mobileqq.app.AppConstants;
 import com.tencent.qphone.base.util.QLog;
 import cooperation.readinjoy.ReadInJoyHelper;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import kotlin.Metadata;
 import kotlin.collections.CollectionsKt;
 import kotlin.jvm.internal.Intrinsics;
 import kotlin.text.StringsKt;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;

+/* compiled from: P */
 public final class RIJXTabViewPagerController {
 
     /* renamed from: a */
@@ -33,6 +40,7 @@
 
     /* renamed from: a */
     private String f20029a = "0";
+    @NotNull
 
     /* renamed from: a */
     private final List<TabChannelCoverInfo> f20030a = new ArrayList();
@@ -40,7 +48,7 @@
     /* renamed from: b */
     private final String f20031b = "RIJXTabViewPagerController";
 
-    public RIJXTabViewPagerController(ReadInJoyChannelViewPager readInJoyChannelViewPager, ReadInJoyChannelViewPager.CustomFragmentPagerAdapter customFragmentPagerAdapter, RIJXTabBar rIJXTabBar) {
+    public RIJXTabViewPagerController(@NotNull ReadInJoyChannelViewPager readInJoyChannelViewPager, @NotNull ReadInJoyChannelViewPager.CustomFragmentPagerAdapter customFragmentPagerAdapter, @NotNull RIJXTabBar rIJXTabBar) {
         Intrinsics.checkParameterIsNotNull(readInJoyChannelViewPager, "viewPager");
         Intrinsics.checkParameterIsNotNull(customFragmentPagerAdapter, "viewPagerAdapter");
         Intrinsics.checkParameterIsNotNull(rIJXTabBar, "tabBar");
@@ -154,7 +162,7 @@ private final int mo31944a(int i) {
     }
 
     /* renamed from: a */
-    public final void mo31945a(Context context) {
+    public final void mo31945a(@NotNull Context context) {
         Intrinsics.checkParameterIsNotNull(context, "context");
         RIJChannelStayTimeMonitor.f20020a.m22351b();
         this.f20028a.clearOnPageChangeListeners();
@@ -163,11 +171,13 @@ public final void mo31945a(Context context) {
         }
     }
 
+    @Nullable
     /* renamed from: a */
     public final Fragment m22362a() {
         return this.f20027a.mo41806a();
     }
 
+    @Nullable
     /* renamed from: a */
     public final Fragment m22363a(int i) {
         return this.f20027a.mo41807a(i);
diff --git a/com/tencent/biz/pubaccount/readinjoy/RIJChannelStayTimeMonitor.java b/com/tencent/biz/pubaccount/readinjoy/RIJChannelStayTimeMonitor.java
index 88baf93d2..d45f1f990 100644
--- a/com/tencent/biz/pubaccount/readinjoy/RIJChannelStayTimeMonitor.java
+++ b/com/tencent/biz/pubaccount/readinjoy/RIJChannelStayTimeMonitor.java
@@ -17,13 +17,8 @@
 import java.util.Map;
 import kotlin.Lazy;
 import kotlin.LazyKt;
-import kotlin.Metadata;
 import kotlin.jvm.internal.Intrinsics;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
 
-/* compiled from: P */
 public final class RIJChannelStayTimeMonitor {
 
     /* renamed from: a */
@@ -80,7 +75,7 @@ public final void mo31942c() {
     }
 
     /* renamed from: a */
-    public final void mo31939a(@NotNull TabChannelCoverInfo tabChannelCoverInfo, int i) {
+    public final void mo31939a(TabChannelCoverInfo tabChannelCoverInfo, int i) {
         Intrinsics.checkParameterIsNotNull(tabChannelCoverInfo, "tabChannelCoverInfo");
         f20022a = tabChannelCoverInfo;
         f20018a = i;
@@ -97,7 +92,7 @@ public final void mo31937a(int i) {
     }
 
     /* renamed from: a */
-    public final void mo31938a(int i, int i2, @Nullable String str) {
+    public final void mo31938a(int i, int i2, String str) {
         Long remove;
         QLog.m191622d("RIJChannelStayTimeMonitorImpl", 2, "exitChannel, channelID = " + i);
         if (i != -1 && (remove = mo31936a().remove(Integer.valueOf(i))) != null) {

@wfjsw wfjsw added Core Issues in jadx-core module bug labels Jan 22, 2021
@skylot skylot modified the milestones: v1.3.0, TBD Nov 19, 2021
@BLuFeNiX
Copy link

BLuFeNiX commented Dec 28, 2021

I am seeing similar behavior, but it can be remedied by forcing a single thread (-j 1). Using -j 1, I get the same output each time. Just tested on 1.3.0.

@BLuFeNiX
Copy link

BLuFeNiX commented Sep 1, 2022

This is still happening on the latest 1.4.4 release, but -j 1 is no longer a complete mitigation. It will reduce the number of differences between runs, but does not eliminate them.

-j 1 still works, so long as Jadx doesn't run out of memory while decompilling. After using -Xms8G -Xss1G in my java opts, I am getting identical output on multiple runs of jadx 1.4.4.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
bug Core Issues in jadx-core module
Projects
None yet
Development

No branches or pull requests

3 participants