Commit bd67b2b2 authored by Andrew Grieve's avatar Andrew Grieve Committed by Commit Bot

Android: Fix SuperSize attribution of d8-desugar'ed lambdas

This involved:
1) Tweaking R8 to include the outer class name in the lambda name for
method references. This increases dex size by ~2kb, but is needed for
attribution (without this they all show in $APK).
2) Updating supersize to unmangle lambda names.

This patch also re-works how R8 local modifications are stored. It
changes from a single .patch file to multiple format-patch files.
This allows each patch to be applied separately (easier conflict
resolution), and allows a description to live right allon each patch
(via the commit messages)

Bug: 1032609
Change-Id: I34c356b542fd665e3b81f7a6d43e0e1dbbf38886
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2132668
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: default avatarSam Maier <smaier@chromium.org>
Reviewed-by: default avatarSamuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#756136}
parent 37a65757
...@@ -1331,7 +1331,7 @@ deps = { ...@@ -1331,7 +1331,7 @@ deps = {
'packages': [ 'packages': [
{ {
'package': 'chromium/third_party/r8', 'package': 'chromium/third_party/r8',
'version': 'QBuWB80TzI5JFXtwaZQbr91Ry3Lb0AmRl8kBchm5FY0C', 'version': 'I91wspV6GMc7l_m-k9v3-ooP-CBrK76OVc3rfnB5T7kC',
}, },
], ],
'condition': 'checkout_android', 'condition': 'checkout_android',
......
...@@ -10,25 +10,14 @@ Description: ...@@ -10,25 +10,14 @@ Description:
R8 is a proguard-like optimizer that also has the ability to dex. R8 is a proguard-like optimizer that also has the ability to dex.
Local Modifications: Local Modifications:
Turning off vertical and horizontal class merging, as described in * Refer to commit descriptions within "patches" directory.
https://issuetracker.google.com/122902374#comment11. We should no longer make
this modification once the linked bug is fixed.
Turning off outlining because it caused issues when synchronized proguarding
Trichrome due to illegal dex references (crbug.com/956839). Will only be used
for android_apk() targets that set `disable_r8_outlining = true`):
Added --feature-jar flag for doing dex splitting.
local_modifications.diff created via:
git diff >local_modifications.diff
Update Instructions: Update Instructions:
# Download R8: # Download R8:
git clone https://r8.googlesource.com/r8 git clone https://r8.googlesource.com/r8
cd r8 cd r8
# Apply the patch: # Apply patches:
git apply $CHROMIUM_SRC/third_party/r8/local_modifications.diff git am $CHROMIUM_SRC/third_party/r8/patches *.patch
# Build: # Build:
tools/gradle.py r8 tools/gradle.py r8
# Shrink (improves r8/d8 launch time): # Shrink (improves r8/d8 launch time):
...@@ -44,3 +33,7 @@ cipd create --pkg-def cipd.yaml # Make note of the instance ID ...@@ -44,3 +33,7 @@ cipd create --pkg-def cipd.yaml # Make note of the instance ID
# Manually update: # Manually update:
* README.chromium (version number via "java -jar lib/r8.jar --version") * README.chromium (version number via "java -jar lib/r8.jar --version")
* //DEPS (instance ID output by cipd create) * //DEPS (instance ID output by cipd create)
# To create a new patch:
* Make commits to the r8 repro
* Run: git format-patch $R8_REVISION_BEFORE_PATCHES
From 0cc1077ef5dcdccafc5f526e682dff88d46c67ff Mon Sep 17 00:00:00 2001
From: Andrew Grieve <agrieve@chromium.org>
Date: Wed, 1 Apr 2020 09:59:30 -0400
Subject: [PATCH 1/5] Chrome: Change meaning of --file-per-class
Make it mean OutputMode.DexFilePerClassFile instead of
OutputMode.DexFilePerClass.
Fixes Chrome's incremental dexing logic.
---
src/main/java/com/android/tools/r8/D8CommandParser.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/com/android/tools/r8/D8CommandParser.java b/src/main/java/com/android/tools/r8/D8CommandParser.java
index f66fff8f3..c63f4f566 100644
--- a/src/main/java/com/android/tools/r8/D8CommandParser.java
+++ b/src/main/java/com/android/tools/r8/D8CommandParser.java
@@ -205,7 +205,7 @@ public class D8CommandParser extends BaseCompilerCommandParser<D8Command, D8Comm
}
compilationMode = CompilationMode.RELEASE;
} else if (arg.equals("--file-per-class")) {
- outputMode = OutputMode.DexFilePerClass;
+ outputMode = OutputMode.DexFilePerClassFile;
} else if (arg.equals("--output")) {
if (outputPath != null) {
builder.error(
--
2.26.0.rc2.310.g2932bb562d-goog
diff --git a/src/main/java/com/android/tools/r8/D8CommandParser.java b/src/main/java/com/android/tools/r8/D8CommandParser.java From 497bfde1cf89ca66777dcb3314c4eef331d3e7ab Mon Sep 17 00:00:00 2001
index f66fff8f3..c63f4f566 100644 From: Andrew Grieve <agrieve@chromium.org>
--- a/src/main/java/com/android/tools/r8/D8CommandParser.java Date: Wed, 1 Apr 2020 10:03:06 -0400
+++ b/src/main/java/com/android/tools/r8/D8CommandParser.java Subject: [PATCH 2/5] Adds --feature-jar to R8 command
@@ -205,7 +205,7 @@ public class D8CommandParser extends BaseCompilerCommandParser<D8Command, D8Comm
} Chrome needs this to expose feature splits via command-line
compilationMode = CompilationMode.RELEASE; ---
} else if (arg.equals("--file-per-class")) { src/main/java/com/android/tools/r8/R8Command.java | 11 +++++++++++
- outputMode = OutputMode.DexFilePerClass; .../java/com/android/tools/r8/R8CommandParser.java | 6 ++++++
+ outputMode = OutputMode.DexFilePerClassFile; 2 files changed, 17 insertions(+)
} else if (arg.equals("--output")) {
if (outputPath != null) {
builder.error(
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index 4051f9cef..6d034d5b8 100644 index 4051f9cef..6d034d5b8 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java --- a/src/main/java/com/android/tools/r8/R8Command.java
...@@ -64,57 +62,6 @@ index 22ebb5e42..b53e4c59e 100644 ...@@ -64,57 +62,6 @@ index 22ebb5e42..b53e4c59e 100644
} else if (arg.equals("--main-dex-list")) { } else if (arg.equals("--main-dex-list")) {
builder.addMainDexListFiles(Paths.get(nextArg)); builder.addMainDexListFiles(Paths.get(nextArg));
} else if (arg.equals("--main-dex-list-output")) { } else if (arg.equals("--main-dex-list-output")) {
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java --
index 0831e6d93..49c1a202b 100644 2.26.0.rc2.310.g2932bb562d-goog
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
@@ -206,7 +206,7 @@ public final class LambdaClass {
}
public final boolean isStateless() {
- return descriptor.isStateless();
+ return false; // descriptor.isStateless();
}
void addSynthesizedFrom(DexProgramClass clazz) {
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 232b54a54..fd45dfe36 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -198,8 +198,8 @@ public class InternalOptions {
public boolean enableFieldAssignmentTracker = true;
public boolean enableFieldBitAccessAnalysis =
System.getProperty("com.android.tools.r8.fieldBitAccessAnalysis") != null;
- public boolean enableHorizontalClassMerging = true;
- public boolean enableVerticalClassMerging = true;
+ public boolean enableHorizontalClassMerging = System.getProperty("com.android.tools.r8.enableHorizontalClassMerging") != null;
+ public boolean enableVerticalClassMerging = System.getProperty("com.android.tools.r8.enableVerticalClassMerging") != null;
public boolean enableArgumentRemoval = true;
public boolean enableUnusedArgumentRemoval = true;
public boolean enableUnusedInterfaceRemoval = true;
@@ -956,7 +956,7 @@ public class InternalOptions {
public static final String CLASS_NAME = "com.android.tools.r8.GeneratedOutlineSupport";
public static final String METHOD_PREFIX = "outline";
- public boolean enabled = true;
+ public boolean enabled = System.getProperty("com.android.tools.r8.disableOutlining") == null;
public int minSize = 3;
public int maxSize = 99;
public int threshold = 20;
diff --git a/src/main/keep.txt b/src/main/keep.txt
index b0c58c916..5e4405175 100644
--- a/src/main/keep.txt
+++ b/src/main/keep.txt
@@ -27,4 +27,10 @@
-keep public class com.android.tools.r8.compatproguard.CompatProguard { public static void main(java.lang.String[]); }
# Compatibility command line program used by in google3.
--keep public class com.android.tools.r8.compatdx.CompatDx { public static void main(java.lang.String[]); }
\ No newline at end of file
+-keep public class com.android.tools.r8.compatdx.CompatDx { public static void main(java.lang.String[]); }
+
+-keep public class com.android.tools.r8.SwissArmyKnife { *; }
+
+# Chrome: We want to maintain stack traces from the R8 tool, so disable
+# optimizations.
+-dontoptimize
From 6c3009d363b1e50adc83279dba27b4e0a350ead7 Mon Sep 17 00:00:00 2001
From: Andrew Grieve <agrieve@chromium.org>
Date: Wed, 1 Apr 2020 10:03:46 -0400
Subject: [PATCH 3/5] Desugaring: Make all lambdas stateless & fix naming
scheme of method references
Statefull lambdas regress dex size.
Bug: b/129997269
---
.../java/com/android/tools/r8/ir/desugar/LambdaClass.java | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
index 0831e6d93..0abb97180 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
@@ -128,7 +128,8 @@ public final class LambdaClass {
// If the lambda class should match 1:1 the class it is accessed from, we
// just add the name of this type to make lambda class name unique.
// It also helps link the class lambda originated from in some cases.
- if (match.delegatesToLambdaImplMethod() || match.needsAccessor(accessedFrom)) {
+ if (true || match.delegatesToLambdaImplMethod() || match.needsAccessor(accessedFrom)) {
+ // Chrome: This class name is required for supersize to map the symbol to source .java file.
lambdaClassDescriptor.append(accessedFrom.getName()).append('$');
}
@@ -206,7 +207,7 @@ public final class LambdaClass {
}
public final boolean isStateless() {
- return descriptor.isStateless();
+ return false; // descriptor.isStateless();
}
void addSynthesizedFrom(DexProgramClass clazz) {
--
2.26.0.rc2.310.g2932bb562d-goog
From c090e841899461437cc91adbdfc7c74ef8091a53 Mon Sep 17 00:00:00 2001
From: Andrew Grieve <agrieve@chromium.org>
Date: Wed, 1 Apr 2020 10:06:15 -0400
Subject: [PATCH 4/5] Make class merging and outlining settable via
command-line
---
.../java/com/android/tools/r8/utils/InternalOptions.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 232b54a54..fd45dfe36 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -198,8 +198,8 @@ public class InternalOptions {
public boolean enableFieldAssignmentTracker = true;
public boolean enableFieldBitAccessAnalysis =
System.getProperty("com.android.tools.r8.fieldBitAccessAnalysis") != null;
- public boolean enableHorizontalClassMerging = true;
- public boolean enableVerticalClassMerging = true;
+ public boolean enableHorizontalClassMerging = System.getProperty("com.android.tools.r8.enableHorizontalClassMerging") != null;
+ public boolean enableVerticalClassMerging = System.getProperty("com.android.tools.r8.enableVerticalClassMerging") != null;
public boolean enableArgumentRemoval = true;
public boolean enableUnusedArgumentRemoval = true;
public boolean enableUnusedInterfaceRemoval = true;
@@ -956,7 +956,7 @@ public class InternalOptions {
public static final String CLASS_NAME = "com.android.tools.r8.GeneratedOutlineSupport";
public static final String METHOD_PREFIX = "outline";
- public boolean enabled = true;
+ public boolean enabled = System.getProperty("com.android.tools.r8.disableOutlining") == null;
public int minSize = 3;
public int maxSize = 99;
public int threshold = 20;
--
2.26.0.rc2.310.g2932bb562d-goog
From fe0cf2feb23d4cdcf4dc287bddba9ea07538aa35 Mon Sep 17 00:00:00 2001
From: Andrew Grieve <agrieve@chromium.org>
Date: Wed, 1 Apr 2020 10:06:57 -0400
Subject: [PATCH 5/5] Fix up proguard keeps for Chrome
---
src/main/keep.txt | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/main/keep.txt b/src/main/keep.txt
index b0c58c916..5e4405175 100644
--- a/src/main/keep.txt
+++ b/src/main/keep.txt
@@ -27,4 +27,10 @@
-keep public class com.android.tools.r8.compatproguard.CompatProguard { public static void main(java.lang.String[]); }
# Compatibility command line program used by in google3.
--keep public class com.android.tools.r8.compatdx.CompatDx { public static void main(java.lang.String[]); }
\ No newline at end of file
+-keep public class com.android.tools.r8.compatdx.CompatDx { public static void main(java.lang.String[]); }
+
+-keep public class com.android.tools.r8.SwissArmyKnife { *; }
+
+# Chrome: We want to maintain stack traces from the R8 tool, so disable
+# optimizations.
+-dontoptimize
--
2.26.0.rc2.310.g2932bb562d-goog
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
Assumes that apk_path.mapping and apk_path.jar.info is available. Assumes that apk_path.mapping and apk_path.jar.info is available.
""" """
import collections
import logging import logging
import os import os
import subprocess import subprocess
...@@ -135,6 +136,13 @@ def UndoHierarchicalSizing(data): ...@@ -135,6 +136,13 @@ def UndoHierarchicalSizing(data):
return nodes return nodes
def _TruncateFrom(value, delimiter, rfind=False):
idx = value.rfind(delimiter) if rfind else value.find(delimiter)
if idx != -1:
return value[:idx]
return value
def CreateDexSymbols(apk_path, mapping_path, size_info_prefix): def CreateDexSymbols(apk_path, mapping_path, size_info_prefix):
source_map = _ParseJarInfoFile(size_info_prefix + '.jar.info') source_map = _ParseJarInfoFile(size_info_prefix + '.jar.info')
...@@ -154,10 +162,33 @@ def CreateDexSymbols(apk_path, mapping_path, size_info_prefix): ...@@ -154,10 +162,33 @@ def CreateDexSymbols(apk_path, mapping_path, size_info_prefix):
# We have more than 100KB of ids for methods, strings # We have more than 100KB of ids for methods, strings
id_metadata_overhead_size = dex_expected_size - total_node_size id_metadata_overhead_size = dex_expected_size - total_node_size
symbols = [] symbols = []
lambda_by_class_counter = collections.defaultdict(int)
lambda_name_to_nested_number = {}
for _, name, node_size in nodes: for _, name, node_size in nodes:
package = name.split(' ', 1)[0] package = _TruncateFrom(name, ' ')
class_path = package.split('$')[0] # Make d8 desugared lambdas look the same as Desugar ones.
source_path = source_map.get(class_path, '') # D8 lambda: -$$Lambda$Promise$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex
# Desugar lambda: Promise$Nested1$$Lambda$0
# 1) Need to prefix with proper class name so that they will show as nested.
# 2) Need to suffix with number so that they diff better.
# Original name will be kept as "object_path".
is_d8_lambda = '-$$Lambda$' in package
class_path = package
if is_d8_lambda:
class_path = package.replace('-$$Lambda$', '')
base_name = _TruncateFrom(class_path, '$', rfind=True)
# Map all methods of the lambda class to the same nested number.
lambda_number = lambda_name_to_nested_number.get(class_path)
if lambda_number is None:
# First time we've seen this lambda, increment nested class count.
lambda_number = lambda_by_class_counter[base_name]
lambda_name_to_nested_number[class_path] = lambda_number
lambda_by_class_counter[base_name] = lambda_number + 1
name = '{}$$Lambda${}{}'.format(base_name, lambda_number,
name[len(package):])
# Map all nested classes to outer class.
source_path = source_map.get(_TruncateFrom(class_path, '$'), '')
if source_path: if source_path:
object_path = package object_path = package
elif package == _TOTAL_NODE_NAME: elif package == _TOTAL_NODE_NAME:
......
...@@ -25,6 +25,7 @@ def _Key1(s): ...@@ -25,6 +25,7 @@ def _Key1(s):
name = _STRIP_NUMBERS_PATTERN.sub('', s.full_name) name = _STRIP_NUMBERS_PATTERN.sub('', s.full_name)
# Prefer source_path over object_path since object_path for native files have # Prefer source_path over object_path since object_path for native files have
# the target_name in it (which can get renamed). # the target_name in it (which can get renamed).
# Also because object_path of Java lambdas symbols contains a hash.
path = s.source_path or s.object_path path = s.source_path or s.object_path
# Use section rather than section_name since clang & gcc use # Use section rather than section_name since clang & gcc use
# .data.rel.ro vs. .data.rel.ro.local. # .data.rel.ro vs. .data.rel.ro.local.
......
...@@ -51,15 +51,15 @@ Section .bss: has 40.3% of 524520 bytes accounted for from 6 symbols. 775936 byt ...@@ -51,15 +51,15 @@ Section .bss: has 40.3% of 524520 bytes accounted for from 6 symbols. 775936 byt
* 6 have a component assigned. Accounts for 524520 bytes (100.0%). * 6 have a component assigned. Accounts for 524520 bytes (100.0%).
* 0 symbols have shared ownership. * 0 symbols have shared ownership.
* 3 symbols are from generated sources. Accounts for 232 bytes (0.0%). * 3 symbols are from generated sources. Accounts for 232 bytes (0.0%).
Section .dex: has 100.0% of 8365003 bytes accounted for from 93 symbols. 0 bytes are unaccounted for. Section .dex: has 100.0% of 8364863 bytes accounted for from 100 symbols. 0 bytes are unaccounted for.
* Padding accounts for 0 bytes (0.0%) * Padding accounts for 0 bytes (0.0%)
* 83 have source paths. Accounts for 926 bytes (0.0%). * 90 have source paths. Accounts for 1806 bytes (0.0%).
* 0 have a component assigned. Accounts for 0 bytes (0.0%). * 0 have a component assigned. Accounts for 0 bytes (0.0%).
* 1 placeholders exist (symbols that start with **). Accounts for 4616803 bytes (55.2%). * 1 placeholders exist (symbols that start with **). Accounts for 4616803 bytes (55.2%).
* 0 symbols have shared ownership. * 0 symbols have shared ownership.
Section .dex.method: has 100.0% of 23605 bytes accounted for from 100 symbols. 0 bytes are unaccounted for. Section .dex.method: has 100.0% of 23745 bytes accounted for from 104 symbols. 0 bytes are unaccounted for.
* Padding accounts for 0 bytes (0.0%) * Padding accounts for 0 bytes (0.0%)
* 90 have source paths. Accounts for 21154 bytes (89.6%). * 94 have source paths. Accounts for 21294 bytes (89.7%).
* 0 have a component assigned. Accounts for 0 bytes (0.0%). * 0 have a component assigned. Accounts for 0 bytes (0.0%).
* 0 symbols have shared ownership. * 0 symbols have shared ownership.
Section .pak.translations: has 100.0% of 6821 bytes accounted for from 208 symbols. 0 bytes are unaccounted for. Section .pak.translations: has 100.0% of 6821 bytes accounted for from 208 symbols. 0 bytes are unaccounted for.
...@@ -180,7 +180,14 @@ Section .other: has 100.0% of 95595797 bytes accounted for from 27 symbols. 0 by ...@@ -180,7 +180,14 @@ Section .other: has 100.0% of 95595797 bytes accounted for from 27 symbols. 0 by
.dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation#mWidth: float,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=) .dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation#mWidth: float,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=40,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=) .dex@0(size_without_padding=40,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=104,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=104,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=8586,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$0#$instance: Object,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=210,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$0,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=220,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$1,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzkB.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested2$$Lambda$0#$instance: Object,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested2$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=210,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested2$$Lambda$0,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested2$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$$Lambda$0#$instance: Object,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=210,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$$Lambda$0,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=7566,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack,source_path=,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=23896,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=23896,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone,source_path=,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=58449,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts,object_path=$APK/org/chromium/chrome/browser/compositor/layouts,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=58449,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts,object_path=$APK/org/chromium/chrome/browser/compositor/layouts,source_path=,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=111986,padding=0,full_name=org.chromium.chrome.browser.compositor,object_path=$APK/org/chromium/chrome/browser/compositor,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=111986,padding=0,full_name=org.chromium.chrome.browser.compositor,object_path=$APK/org/chromium/chrome/browser/compositor,source_path=,flags={},num_aliases=1,component=)
...@@ -289,6 +296,10 @@ Section .other: has 100.0% of 95595797 bytes accounted for from 27 symbols. 0 by ...@@ -289,6 +296,10 @@ Section .other: has 100.0% of 95595797 bytes accounted for from 27 symbols. 0 by
.dex.method@0(size_without_padding=79,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#getScreenPositionInScrollDirection(org.chromium.chrome.browser.compositor.layouts.phone.stack.StackTab): float,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=) .dex.method@0(size_without_padding=79,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#getScreenPositionInScrollDirection(org.chromium.chrome.browser.compositor.layouts.phone.stack.StackTab): float,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=54,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#getScreenSizeInScrollDirection(): float,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=) .dex.method@0(size_without_padding=54,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#getScreenSizeInScrollDirection(): float,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=52,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#isDefaultDiscardDirectionPositive(): boolean,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=) .dex.method@0(size_without_padding=52,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#isDefaultDiscardDirectionPositive(): boolean,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=35,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$0#<init>(),object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=35,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$1#<init>(),object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzkB.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=35,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested2$$Lambda$0#<init>(),object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested2$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=35,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$$Lambda$0#<init>(),object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.other@0(size_without_padding=60,padding=0,full_name=** ELF Section: .ARM.attributes,object_path=,source_path=,flags={},num_aliases=1,component=) .other@0(size_without_padding=60,padding=0,full_name=** ELF Section: .ARM.attributes,object_path=,source_path=,flags={},num_aliases=1,component=)
.other@0(size_without_padding=28,padding=0,full_name=** ELF Section: .note.gnu.gold-version,object_path=,source_path=,flags={},num_aliases=1,component=) .other@0(size_without_padding=28,padding=0,full_name=** ELF Section: .note.gnu.gold-version,object_path=,source_path=,flags={},num_aliases=1,component=)
.other@0(size_without_padding=436,padding=0,full_name=** ELF Section: .shstrtab,object_path=,source_path=,flags={},num_aliases=1,component=) .other@0(size_without_padding=436,padding=0,full_name=** ELF Section: .shstrtab,object_path=,source_path=,flags={},num_aliases=1,component=)
......
...@@ -52,15 +52,15 @@ Section .bss: has 40.3% of 524520 bytes accounted for from 6 symbols. 775936 byt ...@@ -52,15 +52,15 @@ Section .bss: has 40.3% of 524520 bytes accounted for from 6 symbols. 775936 byt
* 6 have a component assigned. Accounts for 524520 bytes (100.0%). * 6 have a component assigned. Accounts for 524520 bytes (100.0%).
* 0 symbols have shared ownership. * 0 symbols have shared ownership.
* 3 symbols are from generated sources. Accounts for 232 bytes (0.0%). * 3 symbols are from generated sources. Accounts for 232 bytes (0.0%).
Section .dex: has 100.0% of 8365003 bytes accounted for from 93 symbols. 0 bytes are unaccounted for. Section .dex: has 100.0% of 8364863 bytes accounted for from 100 symbols. 0 bytes are unaccounted for.
* Padding accounts for 0 bytes (0.0%) * Padding accounts for 0 bytes (0.0%)
* 83 have source paths. Accounts for 926 bytes (0.0%). * 90 have source paths. Accounts for 1806 bytes (0.0%).
* 0 have a component assigned. Accounts for 0 bytes (0.0%). * 0 have a component assigned. Accounts for 0 bytes (0.0%).
* 1 placeholders exist (symbols that start with **). Accounts for 4616803 bytes (55.2%). * 1 placeholders exist (symbols that start with **). Accounts for 4616803 bytes (55.2%).
* 0 symbols have shared ownership. * 0 symbols have shared ownership.
Section .dex.method: has 100.0% of 23605 bytes accounted for from 100 symbols. 0 bytes are unaccounted for. Section .dex.method: has 100.0% of 23745 bytes accounted for from 104 symbols. 0 bytes are unaccounted for.
* Padding accounts for 0 bytes (0.0%) * Padding accounts for 0 bytes (0.0%)
* 90 have source paths. Accounts for 21154 bytes (89.6%). * 94 have source paths. Accounts for 21294 bytes (89.7%).
* 0 have a component assigned. Accounts for 0 bytes (0.0%). * 0 have a component assigned. Accounts for 0 bytes (0.0%).
* 0 symbols have shared ownership. * 0 symbols have shared ownership.
Section .pak.translations: has 100.0% of 6821 bytes accounted for from 208 symbols. 0 bytes are unaccounted for. Section .pak.translations: has 100.0% of 6821 bytes accounted for from 208 symbols. 0 bytes are unaccounted for.
...@@ -181,7 +181,14 @@ Section .other: has 100.0% of 95595797 bytes accounted for from 27 symbols. 0 by ...@@ -181,7 +181,14 @@ Section .other: has 100.0% of 95595797 bytes accounted for from 27 symbols. 0 by
.dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation#mWidth: float,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=) .dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation#mWidth: float,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=40,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=) .dex@0(size_without_padding=40,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=104,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=104,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=8586,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$0#$instance: Object,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=210,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$0,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=220,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$1,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzkB.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested2$$Lambda$0#$instance: Object,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested2$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=210,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested2$$Lambda$0,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested2$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=10,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$$Lambda$0#$instance: Object,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=210,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$$Lambda$0,object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=7566,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack,source_path=,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=23896,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=23896,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone,source_path=,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=58449,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts,object_path=$APK/org/chromium/chrome/browser/compositor/layouts,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=58449,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts,object_path=$APK/org/chromium/chrome/browser/compositor/layouts,source_path=,flags={},num_aliases=1,component=)
.dex@0(size_without_padding=111986,padding=0,full_name=org.chromium.chrome.browser.compositor,object_path=$APK/org/chromium/chrome/browser/compositor,source_path=,flags={},num_aliases=1,component=) .dex@0(size_without_padding=111986,padding=0,full_name=org.chromium.chrome.browser.compositor,object_path=$APK/org/chromium/chrome/browser/compositor,source_path=,flags={},num_aliases=1,component=)
...@@ -290,6 +297,10 @@ Section .other: has 100.0% of 95595797 bytes accounted for from 27 symbols. 0 by ...@@ -290,6 +297,10 @@ Section .other: has 100.0% of 95595797 bytes accounted for from 27 symbols. 0 by
.dex.method@0(size_without_padding=79,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#getScreenPositionInScrollDirection(org.chromium.chrome.browser.compositor.layouts.phone.stack.StackTab): float,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=) .dex.method@0(size_without_padding=79,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#getScreenPositionInScrollDirection(org.chromium.chrome.browser.compositor.layouts.phone.stack.StackTab): float,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=54,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#getScreenSizeInScrollDirection(): float,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=) .dex.method@0(size_without_padding=54,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#getScreenSizeInScrollDirection(): float,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=52,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#isDefaultDiscardDirectionPositive(): boolean,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=) .dex.method@0(size_without_padding=52,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape#isDefaultDiscardDirectionPositive(): boolean,object_path=$APK/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape,source_path=,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=35,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$0#<init>(),object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=35,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested1$$Lambda$1#<init>(),object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzkB.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=35,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$Nested2$$Lambda$0#<init>(),object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested2$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.dex.method@0(size_without_padding=35,padding=0,full_name=org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation$$Lambda$0#<init>(),object_path=org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$kjevdDQ8V2zqCrdieLqWLHzk.dex,source_path=chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java,flags={},num_aliases=1,component=)
.other@0(size_without_padding=60,padding=0,full_name=** ELF Section: .ARM.attributes,object_path=,source_path=,flags={},num_aliases=1,component=) .other@0(size_without_padding=60,padding=0,full_name=** ELF Section: .ARM.attributes,object_path=,source_path=,flags={},num_aliases=1,component=)
.other@0(size_without_padding=28,padding=0,full_name=** ELF Section: .note.gnu.gold-version,object_path=,source_path=,flags={},num_aliases=1,component=) .other@0(size_without_padding=28,padding=0,full_name=** ELF Section: .note.gnu.gold-version,object_path=,source_path=,flags={},num_aliases=1,component=)
.other@0(size_without_padding=436,padding=0,full_name=** ELF Section: .shstrtab,object_path=,source_path=,flags={},num_aliases=1,component=) .other@0(size_without_padding=436,padding=0,full_name=** ELF Section: .shstrtab,object_path=,source_path=,flags={},num_aliases=1,component=)
......
...@@ -191,3 +191,14 @@ M d 1 1 256 org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnim ...@@ -191,3 +191,14 @@ M d 1 1 256 org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnim
M d 1 1 79 org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape float getScreenPositionInScrollDirection(org.chromium.chrome.browser.compositor.layouts.phone.stack.StackTab) M d 1 1 79 org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape float getScreenPositionInScrollDirection(org.chromium.chrome.browser.compositor.layouts.phone.stack.StackTab)
M d 1 1 54 org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape float getScreenSizeInScrollDirection() M d 1 1 54 org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape float getScreenSizeInScrollDirection()
M d 1 1 52 org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape boolean isDefaultDiscardDirectionPositive() M d 1 1 52 org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimationLandscape boolean isDefaultDiscardDirectionPositive()
C d 10 12 255 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex
M d 1 1 35 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex <init>()
F d 0 0 10 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzk.dex Object $instance
C d 10 12 255 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzkB.dex
M d 1 1 35 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested1$kjevdDQ8V2zqCrdieLqWLHzkB.dex <init>()
C d 10 12 255 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested2$kjevdDQ8V2zqCrdieLqWLHzk.dex
M d 1 1 35 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested2$kjevdDQ8V2zqCrdieLqWLHzk.dex <init>()
F d 0 0 10 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$Nested2$kjevdDQ8V2zqCrdieLqWLHzk.dex Object $instance
C d 10 12 255 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$kjevdDQ8V2zqCrdieLqWLHzk.dex
M d 1 1 35 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$kjevdDQ8V2zqCrdieLqWLHzk.dex <init>()
F d 0 0 10 org.chromium.chrome.browser.compositor.layouts.phone.stack.-$$Lambda$StackAnimation$kjevdDQ8V2zqCrdieLqWLHzk.dex Object $instance
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment