jadx
jadx copied to clipboard
[core] android kotlin coroutine suspend function happen to "Code decompiled incorrectly, please refer to instructions dump"
Issue details
android kotlin suspend function
suspend fun firstFun(value:String){
val result = secondFun()
delay(1000)
Log.d("Coroutine", "firstFun delay finish $value $result")
}
AndroidStudio decomile is like this.
@Nullable
public static final Object firstFun(@NotNull String value, @NotNull Continuation $completion) {
Object $continuation;
label27: {
if ($completion instanceof <undefinedtype>) {
$continuation = (<undefinedtype>)$completion;
if ((((<undefinedtype>)$continuation).label & Integer.MIN_VALUE) != 0) {
((<undefinedtype>)$continuation).label -= Integer.MIN_VALUE;
break label27;
}
}
$continuation = new ContinuationImpl($completion) {
Object L$0;
Object L$1;
// $FF: synthetic field
Object result;
int label;
@Nullable
public final Object invokeSuspend(@NotNull Object $result) {
this.result = $result;
this.label |= Integer.MIN_VALUE;
return MainActivityKt.firstFun((String)null, (Continuation)this);
}
};
}
String result;
label22: {
Object $result = ((<undefinedtype>)$continuation).result;
Object var5 = IntrinsicsKt.getCOROUTINE_SUSPENDED();
Object var10000;
switch (((<undefinedtype>)$continuation).label) {
case 0:
ResultKt.throwOnFailure($result);
((<undefinedtype>)$continuation).L$0 = value;
((<undefinedtype>)$continuation).label = 1;
var10000 = secondFun((Continuation)$continuation);
if (var10000 == var5) {
return var5;
}
break;
case 1:
value = (String)((<undefinedtype>)$continuation).L$0;
ResultKt.throwOnFailure($result);
var10000 = $result;
break;
case 2:
result = (String)((<undefinedtype>)$continuation).L$1;
value = (String)((<undefinedtype>)$continuation).L$0;
ResultKt.throwOnFailure($result);
break label22;
default:
throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
}
result = (String)var10000;
((<undefinedtype>)$continuation).L$0 = value;
((<undefinedtype>)$continuation).L$1 = result;
((<undefinedtype>)$continuation).label = 2;
if (DelayKt.delay(1000L, (Continuation)$continuation) == var5) {
return var5;
}
}
Log.d("Coroutine", "firstFun delay finish " + value + ' ' + result);
return Unit.INSTANCE;
}
$continuation = new ContinuationImpl($completion) {
before
switch (((
jadx decompile is
public static final Object firstFun(String value, Continuation<? super Unit> continuation) {
FirstContinuation firstContinuation;
FirstContinuation firstContinuation2;
Object secondFun;
String value2;
String value3;
if (continuation instanceof FirstContinuation) {
firstContinuation = (FirstContinuation) continuation;
if ((firstContinuation.label & Integer.MIN_VALUE) != 0) {
firstContinuation.label -= Integer.MIN_VALUE;
firstContinuation2 = firstContinuation;
Object $result = firstContinuation2.result;
Object coroutine_suspended = IntrinsicsKt.getCOROUTINE_SUSPENDED();
switch (firstContinuation2.label) {
case 0:
ResultKt.throwOnFailure($result);
firstContinuation2.L$0 = value;
firstContinuation2.label = 1;
secondFun = secondFun(firstContinuation2);
if (secondFun == coroutine_suspended) {
return coroutine_suspended;
}
String result = (String) secondFun;
firstContinuation2.L$0 = value;
firstContinuation2.L$1 = result;
firstContinuation2.label = 2;
if (DelayKt.delay(1000L, firstContinuation2) != coroutine_suspended) {
return coroutine_suspended;
}
value2 = value;
value3 = result;
Log.d("Coroutine", "firstFun delay finish " + value2 + ' ' + value3);
return Unit.INSTANCE;
case 1:
value = (String) firstContinuation2.L$0;
ResultKt.throwOnFailure($result);
secondFun = $result;
String result2 = (String) secondFun;
firstContinuation2.L$0 = value;
firstContinuation2.L$1 = result2;
firstContinuation2.label = 2;
if (DelayKt.delay(1000L, firstContinuation2) != coroutine_suspended) {
}
break;
case 2:
value3 = (String) firstContinuation2.L$1;
value2 = (String) firstContinuation2.L$0;
ResultKt.throwOnFailure($result);
Log.d("Coroutine", "firstFun delay finish " + value2 + ' ' + value3);
return Unit.INSTANCE;
default:
throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
}
}
}
firstContinuation = new FirstContinuation(continuation);
firstContinuation2 = firstContinuation;
Object $result2 = firstContinuation2.result;
Object coroutine_suspended2 = IntrinsicsKt.getCOROUTINE_SUSPENDED();
switch (firstContinuation2.label) {
}
}`
switch is before . so the code is wrong
### Relevant log output or stacktrace
```java
INFO : output directory: app-debug
INFO : loading ...
WARN : Found duplicated class: kotlin.coroutines.jvm.internal.DebugProbesKt, count: 2. Only one will be loaded!
classes5.dex
app-debug.apk:DebugProbesKt.bin
INFO : Loaded classes: 12233, methods: 78428, instructions: 2544353
INFO : Loading obfuscation map from: /Users/louiewang/AndroidStudioProjects/DebugApk/app/build/outputs/apk/debug/app-debug.jobf
INFO : Resetting disk code cache, base dir: /Users/louiewang/Library/Caches/io.github.skylot.jadx/projects/app-debug-34254274931a13b42a4d9b6e5741442f/code
WARN : Removed duplicated region for block: B:18:0x0063 in method: com.example.debugapk.MainActivityKt.firstFun(java.lang.String, kotlin.coroutines.Continuation<? super kotlin.Unit>):java.lang.Object, file: classes4.dex
WARN : Removed duplicated region for block: B:17:0x0062 A[RETURN] in method: com.example.debugapk.MainActivityKt.firstFun(java.lang.String, kotlin.coroutines.Continuation<? super kotlin.Unit>):java.lang.Object, file: classes4.dex
WARN : Removed duplicated region for block: B:19:0x0042 in method: com.example.debugapk.MainActivityKt.firstFun(java.lang.String, kotlin.coroutines.Continuation<? super kotlin.Unit>):java.lang.Object, file: classes4.dex
WARN : Removed duplicated region for block: B:14:0x0039 in method: com.example.debugapk.MainActivityKt.firstFun(java.lang.String, kotlin.coroutines.Continuation<? super kotlin.Unit>):java.lang.Object, file: classes4.dex
WARN : Removed duplicated region for block: B:11:0x002d in method: com.example.debugapk.MainActivityKt.firstFun(java.lang.String, kotlin.coroutines.Continuation<? super kotlin.Unit>):java.lang.Object, file: classes4.dex
WARN : Removed duplicated region for block: B:8:0x0025 in method: com.example.debugapk.MainActivityKt.firstFun(java.lang.String, kotlin.coroutines.Continuation<? super kotlin.Unit>):java.lang.Object, file: classes4.dex
WARN : Removed duplicated region for block: B:14:0x0031 in method: com.example.debugapk.MainActivityKt.secondFun(kotlin.coroutines.Continuation<? super java.lang.String>):java.lang.Object, file: classes4.dex
WARN : Removed duplicated region for block: B:11:0x002d in method: com.example.debugapk.MainActivityKt.secondFun(kotlin.coroutines.Continuation<? super java.lang.String>):java.lang.Object, file: classes4.dex
WARN : Removed duplicated region for block: B:8:0x0025 in method: com.example.debugapk.MainActivityKt.secondFun(kotlin.coroutines.Continuation<? super java.lang.String>):java.lang.Object, file: classes4.dex
ERROR: Error in decompile pass: KotlinMetadataDecompile, class: kotlin.coroutines.jvm.internal.DebugProbesKt
kotlinx.metadata.InconsistentKotlinMetadataException: Exception occurred when reading Kotlin metadata
at kotlinx.metadata.jvm.internal.JvmReadUtils.readMetadataImpl$kotlinx_metadata_jvm(JvmReadUtils.kt:114)
at kotlinx.metadata.jvm.KotlinClassMetadata$Companion.readLenient(KotlinClassMetadata.kt:813)
at jadx.plugins.kotlin.metadata.utils.KotlinMetadataExtKt.getKotlinClassMetadata(KotlinMetadataExt.kt:71)
at jadx.plugins.kotlin.metadata.utils.KmClassWrapper$Companion.getWrapper(KmClassWrapper.kt:37)
at jadx.plugins.kotlin.metadata.pass.KotlinMetadataDecompilePass.visit(KotlinMetadataDecompilePass.kt:35)
at jadx.api.impl.passes.DecompilePassWrapper.visit(DecompilePassWrapper.java:40)
at jadx.core.dex.visitors.DepthTraversal.visit(DepthTraversal.java:12)
at jadx.core.ProcessClass.process(ProcessClass.java:75)
at jadx.core.ProcessClass.generateCode(ProcessClass.java:110)
at jadx.core.dex.nodes.ClassNode.generateClassCode(ClassNode.java:400)
at jadx.core.dex.nodes.ClassNode.decompile(ClassNode.java:388)
at jadx.core.dex.nodes.ClassNode.decompile(ClassNode.java:309)
at jadx.api.JavaClass.load(JavaClass.java:132)
at jadx.api.JavaClass.getCodeInfo(JavaClass.java:61)
at jadx.gui.treemodel.JClass.getCodeInfo(JClass.java:114)
at jadx.gui.ui.MainWindow.preLoadOpenTabs(MainWindow.java:1490)
at jadx.gui.ui.MainWindow.lambda$onOpen$2(MainWindow.java:595)
at jadx.core.utils.tasks.TaskExecutor.wrapTask(TaskExecutor.java:166)
at jadx.core.utils.tasks.TaskExecutor.runStages(TaskExecutor.java:142)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException: Protocol message tag had invalid wire type.
at kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidWireType(InvalidProtocolBufferException.java:99)
at kotlinx.metadata.internal.protobuf.CodedInputStream.skipField(CodedInputStream.java:262)
at kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(GeneratedMessageLite.java:73)
at kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes.<init>(JvmProtoBuf.java:112)
at kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes.<init>(JvmProtoBuf.java:71)
at kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$1.parsePartialFrom(JvmProtoBuf.java:177)
at kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$1.parsePartialFrom(JvmProtoBuf.java:172)
at kotlinx.metadata.internal.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:192)
at kotlinx.metadata.internal.protobuf.AbstractParser.parsePartialDelimitedFrom(AbstractParser.java:233)
at kotlinx.metadata.internal.protobuf.AbstractParser.parseDelimitedFrom(AbstractParser.java:245)
at kotlinx.metadata.internal.protobuf.AbstractParser.parseDelimitedFrom(AbstractParser.java:49)
at kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes.parseDelimitedFrom(JvmProtoBuf.java:1738)
at kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil.readNameResolver(JvmProtoBufUtil.kt:52)
at kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil.readPackageDataFrom(JvmProtoBufUtil.kt:42)
at kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil.readPackageDataFrom(JvmProtoBufUtil.kt:37)
at kotlinx.metadata.jvm.internal.JvmReadUtils.readKmPackage$kotlinx_metadata_jvm(JvmReadUtils.kt:33)
at kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade.<init>(KotlinClassMetadata.kt:192)
at kotlinx.metadata.jvm.internal.JvmReadUtils.readMetadataImpl$kotlinx_metadata_jvm(JvmReadUtils.kt:52)
... 21 common frames omitted
WARN : Code restructure failed: missing block: B:14:0x003e, code lost:
if (r5 == null) goto L14;
in method: kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(kotlin.coroutines.CoroutineContext, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope, ? super kotlin.coroutines.Continuation<? super T>, ? extends java.lang.Object>):T, file: classes5.dex
WARN : Skipping pending alias: 'Finishing[cancelling'
WARN : Skipping pending alias: 'completing'
WARN : Skipping pending alias: 'rootCause'
WARN : Skipping pending alias: 'exceptions'
WARN : Removed duplicated region for block: B:75:0x0118 in method: kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(kotlin.coroutines.Continuation<? super T>, java.lang.Object, kotlin.jvm.functions.Function1<? super java.lang.Throwable, kotlin.Unit>):void, file: classes5.dex
WARN : Removed duplicated region for block: B:22:0x00b3 in method: kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(kotlin.coroutines.Continuation<? super T>, java.lang.Object, kotlin.jvm.functions.Function1<? super java.lang.Throwable, kotlin.Unit>):void, file: classes5.dex
WARN : Can't wrap try/catch for region: R(11:15|16|17|(3:77|78|(8:80|81|20|(15:22|23|24|25|26|27|(2:59|60)(1:29)|30|31|32|33|34|35|(1:47)|39)(1:75)|40|(1:41)|44|45))|19|20|(0)(0)|40|(1:41)|44|45) in method: kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(kotlin.coroutines.Continuation<? super T>, java.lang.Object, kotlin.jvm.functions.Function1<? super java.lang.Throwable, kotlin.Unit>):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:76:0x0128, code lost:
r0 = th;
in method: kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(kotlin.coroutines.Continuation<? super T>, java.lang.Object, kotlin.jvm.functions.Function1<? super java.lang.Throwable, kotlin.Unit>):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:6:0x001d, code lost:
if (r1.equals(kotlinx.coroutines.Debug.DEBUG_PROPERTY_VALUE_AUTO) != false) goto L21;
in method: kotlinx.coroutines.DebugKt.<clinit>():void, file: classes5.dex
WARN : Code restructure failed: missing block: B:19:0x0030, code lost:
if (r1.equals(kotlinx.coroutines.Debug.DEBUG_PROPERTY_VALUE_ON) != false) goto L18;
in method: kotlinx.coroutines.DebugKt.<clinit>():void, file: classes5.dex
WARN : Code restructure failed: missing block: B:20:0x003b, code lost:
r4 = true;
in method: kotlinx.coroutines.DebugKt.<clinit>():void, file: classes5.dex
WARN : Code restructure failed: missing block: B:22:0x0039, code lost:
if (r1.equals("") != false) goto L18;
in method: kotlinx.coroutines.DebugKt.<clinit>():void, file: classes5.dex
WARN : Removed duplicated region for block: B:75:0x0118 in method: kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(kotlin.coroutines.Continuation<? super T>, java.lang.Object, kotlin.jvm.functions.Function1<? super java.lang.Throwable, kotlin.Unit>):void, file: classes5.dex
WARN : Removed duplicated region for block: B:22:0x00b3 in method: kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(kotlin.coroutines.Continuation<? super T>, java.lang.Object, kotlin.jvm.functions.Function1<? super java.lang.Throwable, kotlin.Unit>):void, file: classes5.dex
WARN : Can't wrap try/catch for region: R(11:15|16|17|(3:77|78|(8:80|81|20|(15:22|23|24|25|26|27|(2:59|60)(1:29)|30|31|32|33|34|35|(1:47)|39)(1:75)|40|(1:41)|44|45))|19|20|(0)(0)|40|(1:41)|44|45) in method: kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(kotlin.coroutines.Continuation<? super T>, java.lang.Object, kotlin.jvm.functions.Function1<? super java.lang.Throwable, kotlin.Unit>):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:76:0x0128, code lost:
r0 = th;
in method: kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(kotlin.coroutines.Continuation<? super T>, java.lang.Object, kotlin.jvm.functions.Function1<? super java.lang.Throwable, kotlin.Unit>):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:51:0x020c, code lost:
if (r12.changed(r68) != false) goto L176;
in method: androidx.compose.material3.TextKt.Text-fLXpl1I(java.lang.String, androidx.compose.ui.Modifier, long, long, androidx.compose.ui.text.font.FontStyle, androidx.compose.ui.text.font.FontWeight, androidx.compose.ui.text.font.FontFamily, long, androidx.compose.ui.text.style.TextDecoration, androidx.compose.ui.text.style.TextAlign, long, int, boolean, int, kotlin.jvm.functions.Function1, androidx.compose.ui.text.TextStyle, androidx.compose.runtime.Composer, int, int, int):void, file: classes.dex
WARN : Skipping pending alias: 'color'
WARN : Skipping pending alias: 'brush'
WARN : Skipping pending alias: 'alpha'
WARN : Skipping pending alias: 'fontSize'
WARN : Skipping pending alias: 'fontWeight'
WARN : Skipping pending alias: 'fontStyle'
WARN : Skipping pending alias: 'fontSynthesis'
WARN : Skipping pending alias: 'fontFamily'
WARN : Skipping pending alias: 'fontFeatureSettings'
WARN : Skipping pending alias: 'letterSpacing'
WARN : Skipping pending alias: 'baselineShift'
WARN : Skipping pending alias: 'textGeometricTransform'
WARN : Skipping pending alias: 'localeList'
WARN : Skipping pending alias: 'background'
WARN : Skipping pending alias: 'textDecoration'
WARN : Skipping pending alias: 'shadow'
WARN : Skipping pending alias: 'drawStyle'
WARN : Skipping pending alias: 'textAlign'
WARN : Skipping pending alias: 'textDirection'
WARN : Skipping pending alias: 'lineHeight'
WARN : Skipping pending alias: 'textIndent'
WARN : Skipping pending alias: 'lineHeightStyle'
WARN : Skipping pending alias: 'lineBreak'
WARN : Skipping pending alias: 'hyphens'
WARN : Removed duplicated region for block: B:37:0x0096 in method: com.example.debugapk.ui.theme.ThemeKt.DebugApkTheme(boolean, boolean, kotlin.jvm.functions.Function2<? super androidx.compose.runtime.Composer, ? super java.lang.Integer, kotlin.Unit>, androidx.compose.runtime.Composer, int, int):void, file: classes3.dex
WARN : Removed duplicated region for block: B:52:0x00dd in method: com.example.debugapk.ui.theme.ThemeKt.DebugApkTheme(boolean, boolean, kotlin.jvm.functions.Function2<? super androidx.compose.runtime.Composer, ? super java.lang.Integer, kotlin.Unit>, androidx.compose.runtime.Composer, int, int):void, file: classes3.dex
WARN : Removed duplicated region for block: B:51:0x00d9 in method: com.example.debugapk.ui.theme.ThemeKt.DebugApkTheme(boolean, boolean, kotlin.jvm.functions.Function2<? super androidx.compose.runtime.Composer, ? super java.lang.Integer, kotlin.Unit>, androidx.compose.runtime.Composer, int, int):void, file: classes3.dex
WARN : Removed duplicated region for block: B:47:0x00fb in method: com.example.debugapk.ui.theme.ThemeKt.DebugApkTheme(boolean, boolean, kotlin.jvm.functions.Function2<? super androidx.compose.runtime.Composer, ? super java.lang.Integer, kotlin.Unit>, androidx.compose.runtime.Composer, int, int):void, file: classes3.dex
WARN : Removed duplicated region for block: B:14:0x0032 in method: kotlinx.coroutines.DelayKt.awaitCancellation(kotlin.coroutines.Continuation<?>):java.lang.Object, file: classes5.dex
WARN : Removed duplicated region for block: B:11:0x002d in method: kotlinx.coroutines.DelayKt.awaitCancellation(kotlin.coroutines.Continuation<?>):java.lang.Object, file: classes5.dex
WARN : Removed duplicated region for block: B:8:0x0025 in method: kotlinx.coroutines.DelayKt.awaitCancellation(kotlin.coroutines.Continuation<?>):java.lang.Object, file: classes5.dex
WARN : Code restructure failed: missing block: B:4:0x0023, code lost:
if (r6 >= 0) goto L6;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:5:0x0025, code lost:
r10 = r6;
r6 = r6 - 1;
r11 = r4.charAt(r10);
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:6:0x002c, code lost:
if (r11 == '0') goto L9;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:7:0x002e, code lost:
r11 = 1;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:8:0x0031, code lost:
if (r11 == 0) goto L12;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:9:0x0035, code lost:
if (r6 >= 0) goto L24;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:13:0x0033, code lost:
r7 = r10;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:14:0x0030, code lost:
r11 = 0;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:15:0x0038, code lost:
r7 = r7 + 1;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:16:0x003d, code lost:
if (r20 != false) goto L18;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:17:0x003f, code lost:
if (r7 >= 3) goto L18;
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:18:0x0041, code lost:
kotlin.jvm.internal.Intrinsics.checkNotNullExpressionValue(r15.append(r1, 0, r7), "this.append(value, startIndex, endIndex)");
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
WARN : Code restructure failed: missing block: B:22:0x004c, code lost:
kotlin.jvm.internal.Intrinsics.checkNotNullExpressionValue(r15.append(r1, 0, ((r7 + 2) / 3) * 3), "this.append(value, startIndex, endIndex)");
in method: kotlin.time.Duration.appendFractional-impl(long, java.lang.StringBuilder, int, int, int, java.lang.String, boolean):void, file: classes5.dex
Provide sample and class/method full name
No response
Jadx version
1.5.0