Fix mask count in proguard rule gen (#1075)

* Fix mask count in proguard rule generation

Signed,
Person that always forgets how to do modulo counting

* Update tests
This commit is contained in:
Zac Sweers
2020-01-15 02:42:52 -05:00
committed by GitHub
parent 9a10976aab
commit 4fbf89cd49
2 changed files with 7 additions and 3 deletions

View File

@@ -85,7 +85,11 @@ internal data class ProguardConfig(
appendln("-if class $targetName") appendln("-if class $targetName")
appendln("-keepclassmembers class ${targetClass.canonicalName} {") appendln("-keepclassmembers class ${targetClass.canonicalName} {")
val allParams = targetConstructorParams.toMutableList() val allParams = targetConstructorParams.toMutableList()
val maskCount = (targetConstructorParams.size % 32) + 1 val maskCount = if (targetConstructorParams.isEmpty()) {
0
} else {
(targetConstructorParams.size + 31) / 32
}
repeat(maskCount) { repeat(maskCount) {
allParams += "int" allParams += "int"
} }

View File

@@ -565,7 +565,7 @@ class JsonClassCodegenProcessorTest {
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker -keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class testPackage.DefaultParams -if class testPackage.DefaultParams
-keepclassmembers class testPackage.DefaultParams { -keepclassmembers class testPackage.DefaultParams {
public synthetic <init>(java.lang.String,int,int,kotlin.jvm.internal.DefaultConstructorMarker); public synthetic <init>(java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
} }
""".trimIndent()) """.trimIndent())
@@ -583,7 +583,7 @@ class JsonClassCodegenProcessorTest {
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker -keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class testPackage.Complex -if class testPackage.Complex
-keepclassmembers class testPackage.Complex { -keepclassmembers class testPackage.Complex {
public synthetic <init>(java.lang.String,java.util.List,java.lang.Object,int,int,int,int,kotlin.jvm.internal.DefaultConstructorMarker); public synthetic <init>(java.lang.String,java.util.List,java.lang.Object,int,kotlin.jvm.internal.DefaultConstructorMarker);
} }
""".trimIndent()) """.trimIndent())