facebook / redex
File Change Frequency

File change frequency (churn) shows the distribution of file updates (days with at least one commit).

File Change Frequency Overall
File Change Frequency Overall
The number of recorded file updates
  • There are 913 files with 194,961 lines of code.
    • 12 files changed more than 100 times (13,787 lines of code)
    • 41 files changed 51-100 times (26,919 lines of code)
    • 155 files changed 21-50 times (70,850 lines of code)
    • 378 files changed 6-20 times (56,988 lines of code)
    • 327 files changed 1-5 times (26,417 lines of code)
7% | 13% | 36% | 29% | 13%
Legend:
101+
51-100
21-50
6-20
1-5
explore: zoomable circles | data
File Change Frequency per File Extension
cpp, h, java, xml, py, pro, txt, sh, md, kt, m4, json, gradle, js, yml, cmake, cfg, proto, inc, gitignore, clang-format, properties, css, dockerignore, in, s, pl, clang-tidy
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
cpp7% | 17% | 41% | 25% | 7%
h4% | 6% | 18% | 41% | 28%
py9% | 0% | 48% | 30% | 11%
cmake0% | 0% | 14% | 0% | 85%
inc0% | 0% | 0% | 100% | 0%
proto0% | 0% | 0% | 0% | 100%
js0% | 0% | 0% | 0% | 100%
css0% | 0% | 0% | 0% | 100%
java0% | 0% | 0% | 0% | 100%
in0% | 0% | 0% | 0% | 100%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
libredex16% | 15% | 39% | 22% | 5%
tools6% | 0% | 48% | 40% | 4%
opt2% | 24% | 37% | 26% | 9%
ROOT69% | 0% | 0% | 9% | 20%
service0% | 12% | 31% | 38% | 16%
libresource0% | 0% | 43% | 17% | 38%
pyredex0% | 0% | 74% | 4% | 21%
cmake_modules0% | 0% | 16% | 0% | 83%
sparta0% | 0% | 0% | 51% | 48%
shared0% | 0% | 0% | 85% | 14%
util0% | 0% | 0% | 81% | 18%
analysis0% | 0% | 0% | 89% | 10%
liblocator0% | 0% | 0% | 67% | 32%
proto0% | 0% | 0% | 0% | 100%
website0% | 0% | 0% | 0% | 100%
java0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
main.cpp
in tools/redex-all
1258 28 16 2209 228 44
redex.py
in root
996 28 70 2212 186 44
DexOutput.cpp
in libredex
2485 67 16 2211 169 39
DexClass.h
in libredex
950 71 16 2093 160 38
PassManager.cpp
in libredex
1107 51 15 2207 148 30
Trace.h
in libredex
223 4 77 2093 146 45
DexClass.cpp
in libredex
1906 117 16 2185 144 33
ControlFlow.cpp
in libredex
2325 144 45 1863 144 21
ControlFlow.h
in libredex
984 65 22 1863 125 21
InterDex.cpp
in opt/interdex
1062 24 30 2209 113 33
DexUtil.cpp
in libredex
398 22 16 2099 105 37
Transform.cpp
in libredex
93 8 63 2185 104 23
Inliner.cpp
in service/method-inliner
1790 40 22 912 100 15
Show.cpp
in libredex
1568 66 66 2185 99 25
769 46 18 2082 98 16
594 22 108 2207 96 30
DexUtil.h
in libredex
242 13 108 2093 90 32
1316 37 57 1680 87 20
RenameClassesV2.cpp
in opt/renameclasses
692 16 58 2030 81 24
RemoveBuildersHelper.cpp
in opt/remove-builders
914 31 24 1863 81 15
Instrument.cpp
in opt/instrument
747 16 16 1410 80 17
FinalInline.cpp
in opt/final_inline
569 20 74 2207 77 25
RedexContext.cpp
in libredex
512 19 15 2164 74 23
IRCode.cpp
in libredex
947 36 30 1695 74 16
Peephole.cpp
in opt/peephole
1480 59 108 2187 71 29
ConfigFiles.cpp
in libredex
299 12 57 2187 68 25
MethodInliner.cpp
in service/method-inliner
812 7 62 1092 68 13
Synth.cpp
in opt/synth
883 20 108 2207 68 25
Creators.cpp
in libredex
658 36 56 2185 67 22
DexInstruction.h
in libredex
269 22 108 2093 66 22
RedexContext.h
in libredex
229 11 16 2093 65 23
ConstantPropagationAnalysis.cpp
in service/constant-propagation
1294 55 70 1479 64 20
PassManager.h
in libredex
114 12 108 2093 62 22
DexOutput.h
in libredex
339 21 16 2093 62 25
Transform.h
in libredex
13 - 108 2093 61 13
GlobalConfig.cpp
in libredex
156 9 24 1063 61 19
InterDex.h
in opt/interdex
179 8 56 2209 61 22
RemoveBuilders.cpp
in opt/remove-builders
327 9 108 1875 58 13
2648 62 57 707 58 9
ConfigFiles.h
in libredex
126 7 58 2093 57 21
InterDexPass.cpp
in opt/interdex
243 5 56 1368 57 18
EnumTransformer.cpp
in opt/optimize_enums
1133 34 108 1173 56 11
OptimizeEnums.cpp
in opt/optimize_enums
624 17 108 1173 55 13
297 59 58 2093 54 16
Inliner.h
in service/method-inliner
302 12 77 912 54 9
SingleImplAnalyze.cpp
in opt/singleimpl
440 18 57 2206 54 16
IRList.h
in libredex
507 55 17 1526 54 14
SingleImplOptimize.cpp
in opt/singleimpl
604 23 34 2101 54 16
Creators.h
in libredex
213 16 16 2093 53 18
Bridge.cpp
in opt/bridge
354 14 108 2187 53 21
Files With Most Contributors (Top 50)
Files sorted by the number of unique email addresses found in commits.

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
main.cpp
in tools/redex-all
1258 28 16 2209 228 44
redex.py
in root
996 28 70 2212 186 44
DexOutput.cpp
in libredex
2485 67 16 2211 169 39
DexClass.h
in libredex
950 71 16 2093 160 38
PassManager.cpp
in libredex
1107 51 15 2207 148 30
Trace.h
in libredex
223 4 77 2093 146 45
ControlFlow.cpp
in libredex
2325 144 45 1863 144 21
DexClass.cpp
in libredex
1906 117 16 2185 144 33
ControlFlow.h
in libredex
984 65 22 1863 125 21
InterDex.cpp
in opt/interdex
1062 24 30 2209 113 33
DexUtil.cpp
in libredex
398 22 16 2099 105 37
Transform.cpp
in libredex
93 8 63 2185 104 23
Inliner.cpp
in service/method-inliner
1790 40 22 912 100 15
Show.cpp
in libredex
1568 66 66 2185 99 25
769 46 18 2082 98 16
594 22 108 2207 96 30
DexUtil.h
in libredex
242 13 108 2093 90 32
1316 37 57 1680 87 20
RemoveBuildersHelper.cpp
in opt/remove-builders
914 31 24 1863 81 15
RenameClassesV2.cpp
in opt/renameclasses
692 16 58 2030 81 24
Instrument.cpp
in opt/instrument
747 16 16 1410 80 17
FinalInline.cpp
in opt/final_inline
569 20 74 2207 77 25
IRCode.cpp
in libredex
947 36 30 1695 74 16
RedexContext.cpp
in libredex
512 19 15 2164 74 23
Peephole.cpp
in opt/peephole
1480 59 108 2187 71 29
MethodInliner.cpp
in service/method-inliner
812 7 62 1092 68 13
Synth.cpp
in opt/synth
883 20 108 2207 68 25
ConfigFiles.cpp
in libredex
299 12 57 2187 68 25
Creators.cpp
in libredex
658 36 56 2185 67 22
DexInstruction.h
in libredex
269 22 108 2093 66 22
RedexContext.h
in libredex
229 11 16 2093 65 23
ConstantPropagationAnalysis.cpp
in service/constant-propagation
1294 55 70 1479 64 20
PassManager.h
in libredex
114 12 108 2093 62 22
DexOutput.h
in libredex
339 21 16 2093 62 25
Transform.h
in libredex
13 - 108 2093 61 13
GlobalConfig.cpp
in libredex
156 9 24 1063 61 19
InterDex.h
in opt/interdex
179 8 56 2209 61 22
2648 62 57 707 58 9
RemoveBuilders.cpp
in opt/remove-builders
327 9 108 1875 58 13
InterDexPass.cpp
in opt/interdex
243 5 56 1368 57 18
ConfigFiles.h
in libredex
126 7 58 2093 57 21
EnumTransformer.cpp
in opt/optimize_enums
1133 34 108 1173 56 11
OptimizeEnums.cpp
in opt/optimize_enums
624 17 108 1173 55 13
Inliner.h
in service/method-inliner
302 12 77 912 54 9
IRList.h
in libredex
507 55 17 1526 54 14
SingleImplOptimize.cpp
in opt/singleimpl
604 23 34 2101 54 16
SingleImplAnalyze.cpp
in opt/singleimpl
440 18 57 2206 54 16
297 59 58 2093 54 16
Creators.h
in libredex
213 16 16 2093 53 18
Bridge.cpp
in opt/bridge
354 14 108 2187 53 21
Correlations

File Size vs. Number of Changes: 913 points

opt/builder_pattern/BuilderAnalysis.cpp x: 437 lines of code y: 14 # changes opt/builder_pattern/BuilderAnalysis.h x: 49 lines of code y: 8 # changes opt/builder_pattern/BuilderTransform.cpp x: 218 lines of code y: 17 # changes opt/builder_pattern/BuilderTransform.h x: 35 lines of code y: 11 # changes opt/builder_pattern/RemoveBuilderPattern.cpp x: 356 lines of code y: 21 # changes libredex/ApkResources.cpp x: 1356 lines of code y: 19 # changes libredex/ApkResources.h x: 185 lines of code y: 17 # changes libresource/Serialize.cpp x: 618 lines of code y: 13 # changes libresource/utils/Serialize.h x: 247 lines of code y: 10 # changes libredex/DexAssessments.cpp x: 391 lines of code y: 10 # changes libredex/PassManager.cpp x: 1107 lines of code y: 148 # changes libredex/RedexContext.cpp x: 512 lines of code y: 74 # changes libredex/DexOutput.cpp x: 2485 lines of code y: 169 # changes libredex/DexOutput.h x: 339 lines of code y: 62 # changes tools/bytecode_debugger/InjectDebug.cpp x: 159 lines of code y: 11 # changes tools/common/ToolsCommon.cpp x: 254 lines of code y: 31 # changes tools/redex-all/main.cpp x: 1258 lines of code y: 228 # changes libredex/ProguardMap.cpp x: 575 lines of code y: 47 # changes libredex/ProguardMap.h x: 66 lines of code y: 26 # changes libredex/Creators.h x: 213 lines of code y: 53 # changes libredex/DexClass.cpp x: 1906 lines of code y: 144 # changes libredex/DexClass.h x: 950 lines of code y: 160 # changes libredex/DexLoader.cpp x: 507 lines of code y: 48 # changes libredex/DexLoader.h x: 48 lines of code y: 19 # changes libredex/DexUtil.cpp x: 398 lines of code y: 105 # changes libredex/JarLoader.cpp x: 780 lines of code y: 34 # changes libredex/JarLoader.h x: 29 lines of code y: 15 # changes libredex/RedexContext.h x: 229 lines of code y: 65 # changes opt/instrument/Instrument.cpp x: 747 lines of code y: 80 # changes tools/redex-opt/main.cpp x: 188 lines of code y: 16 # changes tools/redex-tool/DiffMethodSizes.cpp x: 296 lines of code y: 20 # changes tools/tool/Tool.cpp x: 153 lines of code y: 20 # changes tools/tool/ToolUtil.h x: 22 lines of code y: 6 # changes service/class-merging/Model.cpp x: 1219 lines of code y: 39 # changes opt/class-merging/AnonymousClassMergingPass.cpp x: 61 lines of code y: 15 # changes opt/class-merging/ClassMergingPass.cpp x: 227 lines of code y: 23 # changes opt/class-merging/IntraDexClassMergingPass.cpp x: 61 lines of code y: 5 # changes service/class-merging/Model.h x: 265 lines of code y: 32 # changes libredex/Reachability.cpp x: 668 lines of code y: 49 # changes libredex/BundleResources.cpp x: 1256 lines of code y: 18 # changes libredex/RedexResources.h x: 153 lines of code y: 44 # changes libredex/BundleResources.h x: 81 lines of code y: 14 # changes libredex/MethodSimilarityOrderer.cpp x: 204 lines of code y: 12 # changes libresource/ResourceTypes.cpp x: 6041 lines of code y: 27 # changes libresource/androidfw/ResourceTypes.h x: 957 lines of code y: 17 # changes libresource/android/configuration.h x: 148 lines of code y: 3 # changes opt/delsuper/DelSuper.cpp x: 263 lines of code y: 39 # changes libredex/IRAssembler.cpp x: 867 lines of code y: 51 # changes libredex/IRList.cpp x: 836 lines of code y: 46 # changes libredex/IRList.h x: 507 lines of code y: 54 # changes libredex/SourceBlocks.cpp x: 902 lines of code y: 18 # changes opt/virtual_merging/VirtualMerging.cpp x: 1386 lines of code y: 47 # changes service/method-inliner/CFGInliner.cpp x: 428 lines of code y: 35 # changes libredex/ProguardMatcher.cpp x: 769 lines of code y: 98 # changes libredex/MethodSimilarityOrderer.h x: 35 lines of code y: 7 # changes libredex/Timer.cpp x: 27 lines of code y: 13 # changes libredex/Timer.h x: 51 lines of code y: 14 # changes libresource/Visitor.cpp x: 456 lines of code y: 3 # changes libredex/Native.cpp x: 108 lines of code y: 9 # changes service/class-merging/ClassAssemblingUtils.cpp x: 224 lines of code y: 18 # changes service/method-inliner/Inliner.cpp x: 1790 lines of code y: 100 # changes libredex/CallGraph.cpp x: 475 lines of code y: 35 # changes tools/redex-tool/DexSqlDump.cpp x: 369 lines of code y: 25 # changes libredex/CFGMutation.cpp x: 277 lines of code y: 10 # changes libredex/CFGMutation.h x: 244 lines of code y: 13 # changes libredex/ControlFlow.h x: 984 lines of code y: 125 # changes service/local-dce/LocalDce.cpp x: 371 lines of code y: 24 # changes service/method-inliner/RecursionPruner.cpp x: 70 lines of code y: 3 # changes libredex/InstructionLowering.cpp x: 446 lines of code y: 41 # changes opt/instrument/BlockInstrument.cpp x: 1265 lines of code y: 31 # changes libredex/ProguardConfiguration.cpp x: 78 lines of code y: 9 # changes libredex/ProguardConfiguration.h x: 170 lines of code y: 30 # changes libredex/ProguardMatcher.h x: 17 lines of code y: 16 # changes libredex/ProguardParser.cpp x: 1121 lines of code y: 49 # changes libredex/ProguardPrintConfiguration.cpp x: 192 lines of code y: 18 # changes libredex/GlobalConfig.cpp x: 156 lines of code y: 61 # changes libredex/GlobalConfig.h x: 147 lines of code y: 16 # changes libredex/IROpcode.cpp x: 1637 lines of code y: 36 # changes libredex/IROpcode.h x: 121 lines of code y: 34 # changes opt/object-escape-analysis/ObjectEscapeAnalysis.cpp x: 1368 lines of code y: 5 # changes opt/remove-builders/RemoveBuildersHelper.cpp x: 914 lines of code y: 81 # changes libredex/IRCode.h x: 182 lines of code y: 51 # changes libredex/DexStore.cpp x: 287 lines of code y: 36 # changes libredex/DexStore.h x: 231 lines of code y: 49 # changes opt/check_breadcrumbs/CheckBreadcrumbs.cpp x: 827 lines of code y: 41 # changes opt/check_breadcrumbs/CheckBreadcrumbs.h x: 118 lines of code y: 19 # changes opt/vertical_merging/VerticalMerging.cpp x: 655 lines of code y: 35 # changes opt/basic-block/BasicBlockProfile.cpp x: 48 lines of code y: 13 # changes service/type-analysis/TypeAnalysisRuntimeAssert.cpp x: 280 lines of code y: 8 # changes libredex/DexAnnotation.cpp x: 825 lines of code y: 40 # changes opt/object-sensitive-dce/SideEffectSummary.cpp x: 299 lines of code y: 18 # changes service/type-analysis/ResolveMethodRefs.cpp x: 84 lines of code y: 3 # changes libredex/CallGraph.h x: 190 lines of code y: 27 # changes service/type-analysis/GlobalTypeAnalyzer.cpp x: 373 lines of code y: 23 # changes service/type-analysis/GlobalTypeAnalyzer.h x: 70 lines of code y: 14 # changes libredex/IRCode.cpp x: 947 lines of code y: 74 # changes opt/interdex/InterDex.cpp x: 1062 lines of code y: 113 # changes libredex/SourceBlocks.h x: 276 lines of code y: 23 # changes opt/annokill/AnnoKill.cpp x: 667 lines of code y: 52 # changes opt/rebindrefs/ReBindRefs.cpp x: 251 lines of code y: 48 # changes libredex/Walkers.h x: 503 lines of code y: 41 # changes opt/annokill/AnnoKill.h x: 110 lines of code y: 25 # changes opt/singleimpl/SingleImplDefs.h x: 115 lines of code y: 28 # changes opt/singleimpl/SingleImplOptimize.cpp x: 604 lines of code y: 54 # changes service/constant-propagation/ConstantPropagationTransform.cpp x: 954 lines of code y: 37 # changes service/cse/CommonSubexpressionElimination.cpp x: 1468 lines of code y: 33 # changes service/cse/CommonSubexpressionElimination.h x: 136 lines of code y: 19 # changes service/regalloc-fast/LinearScan.cpp x: 146 lines of code y: 11 # changes service/regalloc-fast/LinearScan.h x: 169 lines of code y: 11 # changes service/regalloc-fast/LiveInterval.cpp x: 212 lines of code y: 5 # changes service/regalloc-fast/LiveInterval.h x: 35 lines of code y: 5 # changes service/shrinker/Shrinker.cpp x: 307 lines of code y: 18 # changes opt/verifier/Verifier.cpp x: 152 lines of code y: 22 # changes website/pages/en/index.js x: 122 lines of code y: 5 # changes website/static/css/custom.css x: 77 lines of code y: 5 # changes libredex/ControlFlow.cpp x: 2325 lines of code y: 144 # changes libredex/ProguardLexer.cpp x: 686 lines of code y: 26 # changes libredex/ProguardLexer.h x: 102 lines of code y: 20 # changes libredex/ProguardRegex.cpp x: 157 lines of code y: 30 # changes libredex/ProguardRegex.h x: 12 lines of code y: 10 # changes libredex/SourceBlockConsistencyCheck.cpp x: 188 lines of code y: 3 # changes opt/app_module_usage/AppModuleUsage.cpp x: 381 lines of code y: 16 # changes opt/class-merging/AnonymousClassMergingPass.h x: 16 lines of code y: 6 # changes libredex/Creators.cpp x: 658 lines of code y: 67 # changes service/copy-propagation/CopyPropagation.cpp x: 428 lines of code y: 23 # changes opt/interdex/InterDex.h x: 179 lines of code y: 61 # changes opt/interdex/InterDexPass.cpp x: 243 lines of code y: 57 # changes opt/interdex/InterDexPass.h x: 105 lines of code y: 36 # changes libredex/ConfigFiles.cpp x: 299 lines of code y: 68 # changes libredex/DexPosition.cpp x: 289 lines of code y: 34 # changes libredex/PrintSeeds.cpp x: 109 lines of code y: 18 # changes libredex/ProguardPrintConfiguration.h x: 10 lines of code y: 12 # changes libredex/ProguardReporting.cpp x: 188 lines of code y: 24 # changes libredex/ProguardReporting.h x: 31 lines of code y: 11 # changes opt/final_inline/FinalInlineV2.cpp x: 895 lines of code y: 46 # changes opt/local-dce/LocalDcePass.cpp x: 127 lines of code y: 17 # changes opt/remove-unused-fields/RemoveUnusedFields.cpp x: 266 lines of code y: 26 # changes opt/singleimpl/SingleImplAnalyze.cpp x: 440 lines of code y: 54 # changes service/constant-propagation/ConstantArrayDomain.h x: 154 lines of code y: 12 # changes tools/redex-tool/Verifier.cpp x: 123 lines of code y: 13 # changes libredex/DexTypeEnvironment.h x: 330 lines of code y: 19 # changes libredex/MatchFlow.h x: 148 lines of code y: 10 # changes libredex/PointsToSemantics.h x: 262 lines of code y: 20 # changes libredex/ReflectionAnalysis.cpp x: 1061 lines of code y: 34 # changes libredex/ReflectionAnalysis.h x: 247 lines of code y: 19 # changes opt/object-sensitive-dce/SideEffectSummary.h x: 90 lines of code y: 6 # changes service/escape-analysis/LocalPointersAnalysis.cpp x: 538 lines of code y: 27 # changes service/escape-analysis/LocalPointersAnalysis.h x: 182 lines of code y: 23 # changes opt/throw-propagation/ThrowPropagationPass.cpp x: 276 lines of code y: 13 # changes libredex/DexAnnotation.h x: 522 lines of code y: 36 # changes libredex/HierarchyUtil.cpp x: 29 lines of code y: 5 # changes libredex/IRTypeChecker.cpp x: 1316 lines of code y: 87 # changes libredex/Resolver.h x: 179 lines of code y: 26 # changes libredex/TypeSystem.cpp x: 218 lines of code y: 21 # changes opt/app_module_usage/AppModuleUsage.h x: 54 lines of code y: 12 # changes opt/insert-source-blocks/InsertSourceBlocks.cpp x: 390 lines of code y: 18 # changes opt/outliner/InstructionSequenceOutliner.cpp x: 2648 lines of code y: 58 # changes service/constant-propagation/ConstantPropagationAnalysis.h x: 376 lines of code y: 39 # changes service/dedup-blocks/DedupBlocks.cpp x: 717 lines of code y: 27 # changes service/kotlin-instance-rewrite/KotlinInstanceRewriter.h x: 46 lines of code y: 4 # changes service/type-analysis/WholeProgramState.h x: 135 lines of code y: 15 # changes tools/redex-tool/RedexTool.cpp x: 63 lines of code y: 10 # changes libresource/utils/TypeHelpers.h x: 226 lines of code y: 4 # changes libredex/AggregateException.cpp x: 22 lines of code y: 1 # changes libredex/AggregateException.h x: 13 lines of code y: 1 # changes libredex/KeepReason.cpp x: 61 lines of code y: 8 # changes libredex/KeepReason.h x: 64 lines of code y: 9 # changes libredex/ReferencedState.h x: 297 lines of code y: 54 # changes opt/renameclasses/RenameClassesV2.cpp x: 692 lines of code y: 81 # changes libresource/utils/Visitor.h x: 84 lines of code y: 2 # changes libredex/ConfigFiles.h x: 126 lines of code y: 57 # changes libredex/RedexResources.cpp x: 314 lines of code y: 35 # changes shared/DexDefs.h x: 164 lines of code y: 15 # changes shared/DexEncoding.h x: 197 lines of code y: 11 # changes shared/DexOpcodeDefs.h x: 551 lines of code y: 11 # changes shared/NoDefaultComparator.h x: 57 lines of code y: 1 # changes shared/Util.h x: 66 lines of code y: 12 # changes opt/methodinline/PerfMethodInlinePass.cpp x: 1004 lines of code y: 25 # changes service/method-inliner/MethodInliner.cpp x: 812 lines of code y: 68 # changes libredex/Transform.cpp x: 93 lines of code y: 104 # changes opt/class-merging/ModelSpecGenerator.cpp x: 200 lines of code y: 5 # changes opt/shrinker/ShrinkerPass.cpp x: 98 lines of code y: 4 # changes service/shrinker/Shrinker.h x: 139 lines of code y: 14 # changes libredex/AnnoUtils.cpp x: 165 lines of code y: 12 # changes libredex/DexCallSite.cpp x: 43 lines of code y: 6 # changes libredex/DexCallSite.h x: 44 lines of code y: 5 # changes libredex/DexIdx.cpp x: 144 lines of code y: 19 # changes opt/delinit/DelInit.cpp x: 479 lines of code y: 50 # changes service/type-string-rewriter/TypeStringRewriter.cpp x: 172 lines of code y: 7 # changes libredex/AnnoUtils.h x: 66 lines of code y: 9 # changes libredex/Match.h x: 364 lines of code y: 42 # changes libredex/Show.cpp x: 1568 lines of code y: 99 # changes opt/remove-interfaces/RemoveInterfacePass.cpp x: 467 lines of code y: 34 # changes libredex/ApiLevelChecker.h x: 50 lines of code y: 11 # changes libredex/DexAccess.cpp x: 77 lines of code y: 6 # changes service/method-inliner/Deleter.cpp x: 54 lines of code y: 18 # changes redex.py x: 996 lines of code y: 186 # changes service/constant-propagation/ConstantPropagationAnalysis.cpp x: 1294 lines of code y: 64 # changes service/constant-propagation/ConstructorParams.cpp x: 218 lines of code y: 8 # changes service/constant-propagation/ObjectWithImmutAttr.h x: 355 lines of code y: 11 # changes service/method-inliner/CallSiteSummaries.cpp x: 287 lines of code y: 6 # changes service/copy-propagation/CopyPropagation.h x: 42 lines of code y: 8 # changes service/dataflow/ConstantUses.cpp x: 419 lines of code y: 19 # changes service/dedup-blocks/DedupBlocks.h x: 40 lines of code y: 9 # changes service/regalloc/GraphColoring.cpp x: 782 lines of code y: 6 # changes service/regalloc/GraphColoring.h x: 88 lines of code y: 5 # changes service/regalloc/RegisterAllocation.cpp x: 59 lines of code y: 4 # changes service/regalloc/RegisterAllocation.h x: 12 lines of code y: 3 # changes opt/remove_empty_classes/RemoveEmptyClasses.cpp x: 131 lines of code y: 40 # changes opt/final_inline/FinalInline.cpp x: 569 lines of code y: 77 # changes opt/original_name/OriginalNamePass.cpp x: 86 lines of code y: 29 # changes opt/string_concatenator/StringConcatenator.cpp x: 295 lines of code y: 19 # changes opt/renameclasses/RenameClassesV2.h x: 95 lines of code y: 34 # changes libredex/Reachability.h x: 234 lines of code y: 30 # changes opt/obfuscate/ObfuscateUtils.h x: 603 lines of code y: 48 # changes service/constant-propagation/IPConstantPropagationAnalysis.cpp x: 128 lines of code y: 19 # changes libredex/DexTypeEnvironment.cpp x: 225 lines of code y: 15 # changes libredex/DexHasher.cpp x: 480 lines of code y: 23 # changes opt/peephole/RedundantCheckCastRemover.cpp x: 51 lines of code y: 22 # changes opt/peephole/RedundantCheckCastRemover.h x: 20 lines of code y: 12 # changes libredex/Trace.h x: 223 lines of code y: 146 # changes opt/object-escape-analysis/ObjectEscapeAnalysis.h x: 7 lines of code y: 1 # changes service/class-merging/MergeabilityCheck.cpp x: 207 lines of code y: 9 # changes libredex/GraphVisualizer.cpp x: 585 lines of code y: 15 # changes tools/callgraph-analysis/corelib/loader.py x: 109 lines of code y: 3 # changes service/class-merging/ClassMerging.cpp x: 114 lines of code y: 16 # changes service/class-merging/ClassMerging.h x: 15 lines of code y: 5 # changes service/class-merging/ApproximateShapeMerging.cpp x: 345 lines of code y: 7 # changes service/class-merging/ModelMerger.cpp x: 550 lines of code y: 20 # changes libredex/ABExperimentContext.cpp x: 19 lines of code y: 8 # changes libredex/ABExperimentContext.h x: 22 lines of code y: 12 # changes libredex/ABExperimentContextImpl.cpp x: 72 lines of code y: 8 # changes libredex/ABExperimentContextImpl.h x: 24 lines of code y: 8 # changes opt/dedup-strings/DedupStrings.cpp x: 570 lines of code y: 38 # changes libredex/Purity.cpp x: 788 lines of code y: 21 # changes opt/partial-application/PartialApplication.cpp x: 1041 lines of code y: 10 # changes opt/remove-nullcheck-string-arg/RemoveNullcheckStringArg.cpp x: 286 lines of code y: 15 # changes util/IOUtil.h x: 44 lines of code y: 6 # changes service/method-outliner/OutliningProfileGuidanceImpl.cpp x: 215 lines of code y: 3 # changes service/method-outliner/OutliningProfileGuidanceImpl.h x: 44 lines of code y: 3 # changes opt/constant-propagation/IPConstantPropagation.cpp x: 237 lines of code y: 38 # changes opt/constant-propagation/IPConstantPropagation.h x: 87 lines of code y: 21 # changes service/constant-propagation/DefinitelyAssignedIFields.cpp x: 281 lines of code y: 2 # changes service/constant-propagation/DefinitelyAssignedIFields.h x: 9 lines of code y: 2 # changes service/switch-dispatch/SwitchDispatch.cpp x: 480 lines of code y: 28 # changes opt/virtual_merging/VirtualMerging.h x: 160 lines of code y: 16 # changes service/constant-propagation/ConstantPropagationWholeProgramState.cpp x: 310 lines of code y: 22 # changes service/constant-propagation/ConstantPropagationWholeProgramState.h x: 125 lines of code y: 15 # changes analysis/ip-reflection-analysis/IPReflectionAnalysis.h x: 24 lines of code y: 3 # changes analysis/max-depth/MaxDepthAnalysis.cpp x: 145 lines of code y: 7 # changes analysis/max-depth/MaxDepthAnalysis.h x: 16 lines of code y: 2 # changes cmake_modules/Commons.cmake x: 94 lines of code y: 21 # changes cmake_modules/FindZlib.cmake x: 102 lines of code y: 4 # changes gen_simple_module.py x: 88 lines of code y: 2 # changes java/com/facebook/redex/annotations/InterfaceDispatch.java x: 8 lines of code y: 4 # changes java/com/facebook/redex/annotations/MethodMeta.java x: 11 lines of code y: 4 # changes java/com/facebook/redex/annotations/ModelIdentity.java x: 10 lines of code y: 3 # changes liblocator/locator.cpp x: 69 lines of code y: 7 # changes liblocator/locator.h x: 79 lines of code y: 10 # changes libredex/AnalysisUsage.cpp x: 53 lines of code y: 2 # changes libredex/AnalysisUsage.h x: 37 lines of code y: 3 # changes libredex/ApiLevelChecker.cpp x: 153 lines of code y: 17 # changes libredex/AssetManager.cpp x: 61 lines of code y: 3 # changes libredex/BaseIRAnalyzer.h x: 51 lines of code y: 9 # changes libredex/BigBlocks.cpp x: 111 lines of code y: 4 # changes libredex/BinarySerialization.h x: 70 lines of code y: 4 # changes libredex/ClassHierarchy.h x: 59 lines of code y: 11 # changes libredex/ClassUtil.cpp x: 50 lines of code y: 7 # changes libredex/ConcurrentContainers.h x: 418 lines of code y: 21 # changes libredex/Configurable.cpp x: 488 lines of code y: 21 # changes libredex/Configurable.h x: 294 lines of code y: 21 # changes libredex/CppUtil.h x: 100 lines of code y: 5 # changes libredex/Debug.cpp x: 232 lines of code y: 22 # changes libredex/Debug.h x: 77 lines of code y: 22 # changes libredex/DexAccess.h x: 109 lines of code y: 19 # changes libredex/DexAsm.cpp x: 90 lines of code y: 19 # changes libredex/DexAsm.h x: 69 lines of code y: 16 # changes libredex/DexDebugInstruction.cpp x: 103 lines of code y: 14 # changes libredex/DexDebugInstruction.h x: 85 lines of code y: 12 # changes libredex/DexIdx.h x: 161 lines of code y: 15 # changes libredex/DexInstruction.cpp x: 1110 lines of code y: 44 # changes libredex/DexInstruction.h x: 269 lines of code y: 66 # changes libredex/DexMemberRefs.cpp x: 89 lines of code y: 10 # changes libredex/DexMethodHandle.h x: 24 lines of code y: 2 # changes libredex/DexOpcode.cpp x: 469 lines of code y: 29 # changes libredex/DexOpcode.h x: 60 lines of code y: 27 # changes libredex/DexPosition.h x: 115 lines of code y: 22 # changes libredex/DexStats.h x: 74 lines of code y: 5 # changes libredex/DexUtil.h x: 242 lines of code y: 90 # changes libredex/FbjniMarker.cpp x: 124 lines of code y: 6 # changes libredex/GraphVisualizer.h x: 79 lines of code y: 4 # changes libredex/IODIMetadata.cpp x: 157 lines of code y: 22 # changes libredex/IODIMetadata.h x: 57 lines of code y: 16 # changes libredex/IRInstruction.cpp x: 411 lines of code y: 49 # changes libredex/IRInstruction.h x: 212 lines of code y: 48 # changes libredex/InitCollisionFinder.cpp x: 30 lines of code y: 4 # changes libredex/InlinerConfig.h x: 51 lines of code y: 24 # changes libredex/InstructionAnalyzer.h x: 348 lines of code y: 17 # changes libredex/InteractiveDebugging.cpp x: 152 lines of code y: 4 # changes libredex/JavaParserUtil.cpp x: 121 lines of code y: 3 # changes libredex/JsonWrapper.cpp x: 161 lines of code y: 8 # changes libredex/Match.cpp x: 40 lines of code y: 24 # changes libredex/MatchFlow.cpp x: 87 lines of code y: 7 # changes libredex/MatchFlowDetail.cpp x: 405 lines of code y: 8 # changes libredex/MatchFlowDetail.h x: 147 lines of code y: 6 # changes libredex/MethodDevirtualizer.cpp x: 227 lines of code y: 29 # changes libredex/MethodOverrideGraph.cpp x: 272 lines of code y: 17 # changes libredex/MethodOverrideGraph.h x: 33 lines of code y: 10 # changes libredex/MethodProfiles.cpp x: 440 lines of code y: 25 # changes libredex/MethodProfiles.h x: 131 lines of code y: 22 # changes libredex/MethodUtil.cpp x: 516 lines of code y: 13 # changes libredex/MethodUtil.h x: 74 lines of code y: 13 # changes libredex/MonitorCount.cpp x: 194 lines of code y: 8 # changes libredex/Mutators.cpp x: 80 lines of code y: 30 # changes libredex/Mutators.h x: 9 lines of code y: 9 # changes libredex/Native.h x: 71 lines of code y: 6 # changes libredex/OptData.cpp x: 403 lines of code y: 28 # changes libredex/OptData.h x: 131 lines of code y: 11 # changes libredex/OptDataDefs.h x: 25 lines of code y: 10 # changes libredex/Pass.h x: 58 lines of code y: 36 # changes libredex/PassManager.h x: 114 lines of code y: 62 # changes libredex/PluginRegistry.cpp x: 18 lines of code y: 7 # changes libredex/PointsToSemantics.cpp x: 1342 lines of code y: 49 # changes libredex/PostLowering.cpp x: 29 lines of code y: 9 # changes libredex/PrintSeeds.h x: 11 lines of code y: 9 # changes libredex/PriorityThreadPool.h x: 127 lines of code y: 10 # changes libredex/PriorityThreadPoolDAGScheduler.h x: 172 lines of code y: 3 # changes libredex/ProguardLineRange.cpp x: 24 lines of code y: 7 # changes libredex/Purity.h x: 116 lines of code y: 15 # changes libredex/RandomForest.h x: 179 lines of code y: 3 # changes libredex/ReachableClasses.cpp x: 594 lines of code y: 96 # changes libredex/ReachableClasses.h x: 63 lines of code y: 38 # changes libredex/RedexOptions.cpp x: 106 lines of code y: 16 # changes libredex/RedexOptions.h x: 44 lines of code y: 15 # changes libredex/RefChecker.cpp x: 196 lines of code y: 10 # changes libredex/Resolver.cpp x: 155 lines of code y: 23 # changes libredex/Show.h x: 110 lines of code y: 33 # changes libredex/ShowCFG.h x: 70 lines of code y: 2 # changes libredex/SingletonIterable.h x: 42 lines of code y: 2 # changes libredex/Trace.cpp x: 201 lines of code y: 31 # changes libredex/Transform.h x: 13 lines of code y: 61 # changes libredex/TypeInference.cpp x: 1009 lines of code y: 35 # changes libredex/TypeInference.h x: 118 lines of code y: 18 # changes libredex/TypeUtil.cpp x: 440 lines of code y: 26 # changes libredex/TypeUtil.h x: 64 lines of code y: 20 # changes libredex/UnknownVirtuals.cpp x: 91 lines of code y: 3 # changes libredex/VirtualScope.cpp x: 641 lines of code y: 44 # changes libredex/VirtualScope.h x: 183 lines of code y: 37 # changes libredex/WorkQueue.h x: 149 lines of code y: 29 # changes libresource/CompatWindows.h x: 10 lines of code y: 7 # changes opt/access-marking/AccessMarking.cpp x: 179 lines of code y: 42 # changes opt/access-marking/AccessMarking.h x: 30 lines of code y: 14 # changes opt/basic-block/BasicBlockProfile.h x: 7 lines of code y: 6 # changes opt/branch-prefix-hoisting/BranchPrefixHoisting.cpp x: 459 lines of code y: 28 # changes opt/bridge/Bridge.cpp x: 354 lines of code y: 53 # changes opt/bridge/Bridge.h x: 7 lines of code y: 10 # changes opt/check-recursion/CheckRecursion.cpp x: 102 lines of code y: 8 # changes opt/class-splitting/ClassSplitting.cpp x: 746 lines of code y: 35 # changes opt/class-splitting/ClassSplitting.h x: 59 lines of code y: 13 # changes opt/copy-propagation/CopyPropagationPass.cpp x: 40 lines of code y: 32 # changes opt/cse/CommonSubexpressionEliminationPass.cpp x: 129 lines of code y: 16 # changes opt/dedup-strings/DedupStrings.h x: 89 lines of code y: 13 # changes opt/dedup_blocks/DedupBlocksPass.cpp x: 60 lines of code y: 50 # changes opt/dedup_blocks/DedupBlocksPass.h x: 20 lines of code y: 13 # changes opt/delinit/DelInit.h x: 12 lines of code y: 11 # changes opt/delsuper/DelSuper.h x: 8 lines of code y: 11 # changes opt/evaluate_type_checks/EvaluateTypeChecks.cpp x: 431 lines of code y: 15 # changes opt/final_inline/FinalInline.h x: 58 lines of code y: 24 # changes opt/init-classes/InitClassLoweringPass.cpp x: 369 lines of code y: 2 # changes opt/interdex/DexStructure.cpp x: 367 lines of code y: 21 # changes opt/interdex/DexStructure.h x: 168 lines of code y: 14 # changes opt/kotlin-lambda/KotlinObjectInliner.cpp x: 499 lines of code y: 2 # changes opt/layout-reachability/LayoutReachabilityPass.h x: 8 lines of code y: 8 # changes opt/merge_interface/MergeInterface.cpp x: 526 lines of code y: 22 # changes opt/methodinline/MethodInlinePass.cpp x: 8 lines of code y: 5 # changes opt/obfuscate/Obfuscate.cpp x: 208 lines of code y: 40 # changes opt/obfuscate/VirtualRenamer.cpp x: 428 lines of code y: 41 # changes opt/object-sensitive-dce/UsedVarsAnalysis.cpp x: 214 lines of code y: 12 # changes opt/optimize_enums/EnumAnalyzeGeneratedMethods.cpp x: 180 lines of code y: 13 # changes opt/optimize_enums/EnumClinitAnalysis.cpp x: 278 lines of code y: 19 # changes opt/optimize_enums/EnumConfig.cpp x: 171 lines of code y: 16 # changes opt/optimize_enums/EnumInSwitch.cpp x: 205 lines of code y: 10 # changes opt/optimize_enums/EnumTransformer.cpp x: 1133 lines of code y: 56 # changes opt/optimize_enums/EnumUpcastAnalysis.cpp x: 622 lines of code y: 41 # changes opt/optimize_enums/OptimizeEnums.cpp x: 624 lines of code y: 55 # changes opt/optimize_enums/OptimizeEnumsAnalysis.cpp x: 133 lines of code y: 10 # changes opt/original_name/OriginalNamePass.h x: 21 lines of code y: 14 # changes opt/outliner/OutlinerTypeAnalysis.cpp x: 993 lines of code y: 15 # changes opt/peephole/Peephole.cpp x: 1480 lines of code y: 71 # changes opt/print-kotlin-stats/PrintKotlinStats.cpp x: 207 lines of code y: 6 # changes opt/reduce-array-literals/ReduceArrayLiterals.cpp x: 556 lines of code y: 31 # changes opt/reduce-gotos/ReduceGotos.cpp x: 384 lines of code y: 24 # changes opt/regalloc/RegAlloc.cpp x: 47 lines of code y: 45 # changes opt/regalloc/RegAlloc.h x: 22 lines of code y: 24 # changes opt/remove-apilevel-checks/RemoveApiLevelChecks.cpp x: 239 lines of code y: 8 # changes opt/remove-builders/RemoveBuilders.cpp x: 327 lines of code y: 58 # changes opt/remove-builders/RemoveBuildersHelper.h x: 93 lines of code y: 43 # changes opt/remove-recursive-locks/RemoveRecursiveLocks.cpp x: 700 lines of code y: 10 # changes opt/remove-uninstantiables/RemoveUninstantiablesPass.cpp x: 469 lines of code y: 18 # changes opt/remove-unreachable/RemoveUnreachable.cpp x: 251 lines of code y: 45 # changes opt/remove-unreachable/TypeAnalysisAwareRemoveUnreachable.cpp x: 237 lines of code y: 9 # changes opt/remove-unused-args/RemoveUnusedArgs.cpp x: 578 lines of code y: 24 # changes opt/remove-unused-args/RemoveUnusedArgs.h x: 78 lines of code y: 11 # changes opt/remove_gotos/RemoveGotos.cpp x: 121 lines of code y: 28 # changes opt/remove_redundant_check_casts/CheckCastAnalysis.cpp x: 480 lines of code y: 25 # changes opt/remove_redundant_check_casts/CheckCastAnalysis.h x: 47 lines of code y: 10 # changes opt/resolve-refs/ResolveRefsPass.cpp x: 290 lines of code y: 24 # changes opt/result-propagation/ResultPropagation.cpp x: 465 lines of code y: 26 # changes opt/result-propagation/ResultPropagation.h x: 104 lines of code y: 13 # changes opt/shorten-srcstrings/Shorten.cpp x: 129 lines of code y: 26 # changes opt/singleimpl/SingleImpl.h x: 37 lines of code y: 15 # changes opt/singleimpl/SingleImplStats.cpp x: 192 lines of code y: 13 # changes opt/split_huge_switches/SplitHugeSwitchPass.cpp x: 748 lines of code y: 13 # changes opt/staticrelo/StaticReloV2.cpp x: 209 lines of code y: 18 # changes opt/stringbuilder-outliner/StringBuilderOutliner.cpp x: 339 lines of code y: 22 # changes opt/strip-debug-info/StripDebugInfo.cpp x: 152 lines of code y: 28 # changes opt/strip-debug-info/StripDebugInfo.h x: 75 lines of code y: 22 # changes opt/synth/Synth.cpp x: 883 lines of code y: 68 # changes opt/synth/Synth.h x: 18 lines of code y: 18 # changes opt/track_resources/TrackResources.cpp x: 145 lines of code y: 32 # changes opt/type-analysis/CallGraphFileGenerationPass.cpp x: 139 lines of code y: 2 # changes opt/type-analysis/TypeAnalysisCallGraphGenerationPass.cpp x: 126 lines of code y: 8 # changes opt/unreferenced_interfaces/UnreferencedInterfaces.cpp x: 235 lines of code y: 21 # changes opt/up-code-motion/UpCodeMotion.cpp x: 286 lines of code y: 17 # changes proto/config.proto x: 187 lines of code y: 2 # changes pyredex/bintools.py x: 205 lines of code y: 3 # changes pyredex/unpacker.py x: 897 lines of code y: 34 # changes pyredex/utils.py x: 294 lines of code y: 28 # changes service/api-levels/ApiLevelsUtils.cpp x: 335 lines of code y: 27 # changes service/api-levels/ApiLevelsUtils.h x: 34 lines of code y: 16 # changes service/class-merging/MergerType.cpp x: 105 lines of code y: 11 # changes service/class-merging/MergerType.h x: 183 lines of code y: 8 # changes service/class-merging/ModelMethodMerger.cpp x: 760 lines of code y: 14 # changes service/constant-propagation/ConstantEnvironment.h x: 180 lines of code y: 25 # changes service/constant-propagation/ConstantPropagationTransform.h x: 180 lines of code y: 24 # changes service/constant-propagation/SignDomain.cpp x: 119 lines of code y: 11 # changes service/constant-propagation/SignedConstantDomain.h x: 152 lines of code y: 9 # changes service/copy-propagation/AliasedRegisters.cpp x: 474 lines of code y: 12 # changes service/cross-dex-ref-minimizer/CrossDexRefMinimizer.cpp x: 351 lines of code y: 6 # changes service/dataflow/LiveRange.cpp x: 143 lines of code y: 17 # changes service/init-classes/InitClassesWithSideEffects.cpp x: 113 lines of code y: 2 # changes service/kotlin-instance-rewrite/KotlinInstanceRewriter.cpp x: 196 lines of code y: 5 # changes service/local-dce/LocalDce.h x: 73 lines of code y: 11 # changes service/loop-info/LoopInfo.cpp x: 134 lines of code y: 5 # changes service/method-dedup/ConstantLifting.cpp x: 173 lines of code y: 24 # changes service/method-dedup/ConstantValue.cpp x: 239 lines of code y: 26 # changes service/method-dedup/NormalizeConstructor.cpp x: 414 lines of code y: 12 # changes service/method-inliner/CFGInliner.h x: 68 lines of code y: 18 # changes service/method-inliner/ConstructorAnalysis.cpp x: 249 lines of code y: 8 # changes service/method-inliner/LegacyInliner.cpp x: 286 lines of code y: 2 # changes service/method-inliner/ObjectInlinePlugin.cpp x: 197 lines of code y: 16 # changes service/method-merger/MethodMerger.cpp x: 144 lines of code y: 15 # changes service/reduce-boolean-branches/ReduceBooleanBranches.cpp x: 339 lines of code y: 3 # changes service/reference-update/TypeReference.cpp x: 509 lines of code y: 47 # changes service/reference-update/TypeReference.h x: 41 lines of code y: 18 # changes service/regalloc/Interference.cpp x: 251 lines of code y: 2 # changes service/regalloc/Interference.h x: 167 lines of code y: 2 # changes service/regalloc/RegisterType.cpp x: 568 lines of code y: 4 # changes service/regalloc/Split.cpp x: 356 lines of code y: 2 # changes service/switch-partitioning/SwitchEquivFinder.cpp x: 373 lines of code y: 25 # changes service/switch-partitioning/SwitchMethodPartitioning.cpp x: 178 lines of code y: 14 # changes service/type-analysis/LocalTypeAnalyzer.cpp x: 418 lines of code y: 20 # changes service/type-analysis/LocalTypeAnalyzer.h x: 89 lines of code y: 14 # changes service/type-analysis/TypeAnalysisTransform.h x: 77 lines of code y: 19 # changes service/type-analysis/WholeProgramState.cpp x: 360 lines of code y: 17 # changes shared/QuickData.cpp x: 146 lines of code y: 13 # changes sparta/include/Analyzer.h x: 209 lines of code y: 7 # changes sparta/include/DisjointUnionAbstractDomain.h x: 240 lines of code y: 5 # changes sparta/include/FiniteAbstractDomain.h x: 268 lines of code y: 5 # changes sparta/include/HashedAbstractEnvironment.h x: 280 lines of code y: 4 # changes sparta/include/HashedAbstractPartition.h x: 222 lines of code y: 5 # changes sparta/include/HashedSetAbstractDomain.h x: 121 lines of code y: 4 # changes sparta/include/MonotonicFixpointIterator.h x: 456 lines of code y: 10 # changes sparta/include/PatriciaTreeMap.h x: 960 lines of code y: 19 # changes sparta/include/PatriciaTreeSet.h x: 801 lines of code y: 9 # changes sparta/include/PatriciaTreeUtil.h x: 36 lines of code y: 4 # changes sparta/include/S_Expression.h x: 528 lines of code y: 5 # changes sparta/include/SmallSortedSetAbstractDomain.h x: 142 lines of code y: 2 # changes sparta/include/SparseSetAbstractDomain.h x: 170 lines of code y: 4 # changes sparta/include/SpartaWorkQueue.h x: 272 lines of code y: 10 # changes sparta/include/WeakPartialOrdering.h x: 419 lines of code y: 10 # changes sparta/include/WeakTopologicalOrdering.h x: 240 lines of code y: 7 # changes tools/common/DexCommon.cpp x: 141 lines of code y: 8 # changes tools/common/Formatters.cpp x: 325 lines of code y: 10 # changes tools/hprof/dump_classes_from_hprof.py x: 1094 lines of code y: 11 # changes tools/oatmeal/OatmealUtil.h x: 152 lines of code y: 14 # changes tools/oatmeal/dex.cpp x: 642 lines of code y: 13 # changes tools/oatmeal/dump-oat.cpp x: 2798 lines of code y: 45 # changes tools/oatmeal/dump-oat.h x: 136 lines of code y: 28 # changes tools/oatmeal/elf-writer.cpp x: 626 lines of code y: 25 # changes tools/oatmeal/elf-writer.h x: 99 lines of code y: 12 # changes tools/python/dex.py x: 4085 lines of code y: 35 # changes tools/python/file_extract.py x: 793 lines of code y: 13 # changes tools/python/pgi/analyze_pgi_logs.py x: 367 lines of code y: 6 # changes tools/python/symbolicator/logcat.py x: 122 lines of code y: 11 # changes tools/redex-tool/AnalyzeThrows.cpp x: 151 lines of code y: 21 # changes tools/redex-tool/VizMflow.cpp x: 66 lines of code y: 15 # changes tools/redexdump/DumpTables.cpp x: 731 lines of code y: 18 # changes tools/redexdump/RedexDump.cpp x: 207 lines of code y: 15 # changes util/MallocDebug.cpp x: 218 lines of code y: 11 # changes Makefile.inc x: 134 lines of code y: 18 # changes proto/Resources.proto x: 519 lines of code y: 2 # changes cmake_modules/FindJsonCpp.cmake x: 370 lines of code y: 3 # changes proto/Configuration.proto x: 162 lines of code y: 1 # changes libresource/Unicode.cpp x: 448 lines of code y: 5 # changes libresource/VectorImpl.cpp x: 528 lines of code y: 6 # changes libresource/String8.cpp x: 507 lines of code y: 3 # changes libresource/androidfw/ByteBucketArray.h x: 61 lines of code y: 2 # changes libresource/utils/KeyedVector.h x: 131 lines of code y: 3 # changes libresource/utils/RefBase.h x: 380 lines of code y: 5 # changes libresource/utils/SortedVector.h x: 163 lines of code y: 3 # changes libresource/utils/String8.h x: 237 lines of code y: 3 # changes libresource/utils/Vector.h x: 240 lines of code y: 4 # changes libresource/utils/VectorImpl.h x: 103 lines of code y: 2 # changes
228.0
# changes
  min: 1.0
  average: 16.17
  25th percentile: 4.0
  median: 9.0
  75th percentile: 19.0
  max: 228.0
0 6041.0
lines of code
min: 1.0 | average: 213.54 | 25th percentile: 30.0 | median: 85.0 | 75th percentile: 228.0 | max: 6041.0

Number of Contributors vs. Number of Changes: 913 points

opt/builder_pattern/BuilderAnalysis.cpp x: 7 # contributors y: 14 # changes opt/builder_pattern/BuilderAnalysis.h x: 5 # contributors y: 8 # changes opt/builder_pattern/BuilderTransform.cpp x: 8 # contributors y: 17 # changes opt/builder_pattern/BuilderTransform.h x: 6 # contributors y: 11 # changes opt/builder_pattern/RemoveBuilderPattern.cpp x: 7 # contributors y: 21 # changes libredex/ApkResources.cpp x: 6 # contributors y: 19 # changes libredex/ApkResources.h x: 4 # contributors y: 17 # changes libresource/Serialize.cpp x: 5 # contributors y: 13 # changes libresource/utils/Serialize.h x: 6 # contributors y: 10 # changes libredex/DexAssessments.cpp x: 3 # contributors y: 10 # changes libredex/PassManager.cpp x: 30 # contributors y: 148 # changes libredex/RedexContext.cpp x: 23 # contributors y: 74 # changes libredex/DexOutput.cpp x: 39 # contributors y: 169 # changes libredex/DexOutput.h x: 25 # contributors y: 62 # changes tools/bytecode_debugger/InjectDebug.cpp x: 5 # contributors y: 11 # changes tools/common/ToolsCommon.cpp x: 13 # contributors y: 31 # changes tools/redex-all/main.cpp x: 44 # contributors y: 228 # changes libredex/ProguardMap.cpp x: 21 # contributors y: 47 # changes libredex/ProguardMap.h x: 15 # contributors y: 26 # changes libredex/Creators.h x: 18 # contributors y: 53 # changes libredex/DexClass.cpp x: 33 # contributors y: 144 # changes libredex/DexClass.h x: 38 # contributors y: 160 # changes libredex/DexLoader.cpp x: 19 # contributors y: 48 # changes libredex/DexLoader.h x: 12 # contributors y: 19 # changes libredex/DexUtil.cpp x: 37 # contributors y: 105 # changes libredex/JarLoader.cpp x: 18 # contributors y: 34 # changes libredex/JarLoader.h x: 11 # contributors y: 15 # changes libredex/RedexContext.h x: 23 # contributors y: 65 # changes opt/instrument/Instrument.cpp x: 17 # contributors y: 80 # changes tools/redex-opt/main.cpp x: 6 # contributors y: 16 # changes tools/redex-tool/DiffMethodSizes.cpp x: 11 # contributors y: 20 # changes tools/tool/Tool.cpp x: 13 # contributors y: 20 # changes tools/tool/ToolUtil.h x: 5 # contributors y: 6 # changes service/class-merging/Model.cpp x: 5 # contributors y: 39 # changes opt/class-merging/AnonymousClassMergingPass.cpp x: 4 # contributors y: 15 # changes opt/class-merging/ClassMergingPass.cpp x: 5 # contributors y: 23 # changes opt/class-merging/IntraDexClassMergingPass.cpp x: 3 # contributors y: 5 # changes service/class-merging/Model.h x: 6 # contributors y: 32 # changes libredex/Reachability.cpp x: 15 # contributors y: 49 # changes libredex/BundleResources.cpp x: 5 # contributors y: 18 # changes libredex/RedexResources.h x: 17 # contributors y: 44 # changes libredex/BundleResources.h x: 4 # contributors y: 14 # changes libredex/MethodSimilarityOrderer.cpp x: 5 # contributors y: 12 # changes libresource/ResourceTypes.cpp x: 10 # contributors y: 27 # changes libresource/androidfw/ResourceTypes.h x: 7 # contributors y: 17 # changes libresource/android/configuration.h x: 3 # contributors y: 3 # changes opt/delsuper/DelSuper.cpp x: 18 # contributors y: 39 # changes libredex/IRAssembler.cpp x: 13 # contributors y: 51 # changes libredex/IRList.cpp x: 17 # contributors y: 46 # changes libredex/IRList.h x: 14 # contributors y: 54 # changes libredex/SourceBlocks.cpp x: 4 # contributors y: 18 # changes opt/virtual_merging/VirtualMerging.cpp x: 10 # contributors y: 47 # changes service/method-inliner/CFGInliner.cpp x: 9 # contributors y: 35 # changes libredex/ProguardMatcher.cpp x: 16 # contributors y: 98 # changes libredex/MethodSimilarityOrderer.h x: 3 # contributors y: 7 # changes libredex/Timer.cpp x: 9 # contributors y: 13 # changes libredex/Timer.h x: 8 # contributors y: 14 # changes libresource/Visitor.cpp x: 1 # contributors y: 3 # changes libredex/Native.cpp x: 4 # contributors y: 9 # changes service/class-merging/ClassAssemblingUtils.cpp x: 7 # contributors y: 18 # changes service/method-inliner/Inliner.cpp x: 15 # contributors y: 100 # changes libredex/CallGraph.cpp x: 12 # contributors y: 35 # changes tools/redex-tool/DexSqlDump.cpp x: 10 # contributors y: 25 # changes libredex/CFGMutation.h x: 7 # contributors y: 13 # changes libredex/ControlFlow.h x: 21 # contributors y: 125 # changes service/local-dce/LocalDce.cpp x: 7 # contributors y: 24 # changes libredex/InstructionLowering.cpp x: 14 # contributors y: 41 # changes opt/instrument/BlockInstrument.cpp x: 3 # contributors y: 31 # changes libredex/ProguardConfiguration.h x: 10 # contributors y: 30 # changes libredex/ProguardMatcher.h x: 7 # contributors y: 16 # changes libredex/ProguardParser.cpp x: 12 # contributors y: 49 # changes libredex/ProguardPrintConfiguration.cpp x: 9 # contributors y: 18 # changes libredex/GlobalConfig.cpp x: 19 # contributors y: 61 # changes libredex/GlobalConfig.h x: 8 # contributors y: 16 # changes libredex/IROpcode.cpp x: 17 # contributors y: 36 # changes libredex/IROpcode.h x: 16 # contributors y: 34 # changes opt/object-escape-analysis/ObjectEscapeAnalysis.cpp x: 1 # contributors y: 5 # changes opt/remove-builders/RemoveBuildersHelper.cpp x: 15 # contributors y: 81 # changes libredex/IRCode.h x: 17 # contributors y: 51 # changes libredex/DexStore.cpp x: 13 # contributors y: 36 # changes libredex/DexStore.h x: 18 # contributors y: 49 # changes opt/check_breadcrumbs/CheckBreadcrumbs.cpp x: 18 # contributors y: 41 # changes opt/check_breadcrumbs/CheckBreadcrumbs.h x: 13 # contributors y: 19 # changes opt/vertical_merging/VerticalMerging.cpp x: 10 # contributors y: 35 # changes libredex/DexAnnotation.cpp x: 15 # contributors y: 40 # changes opt/object-sensitive-dce/SideEffectSummary.cpp x: 8 # contributors y: 18 # changes libredex/CallGraph.h x: 12 # contributors y: 27 # changes service/type-analysis/GlobalTypeAnalyzer.cpp x: 9 # contributors y: 23 # changes libredex/IRCode.cpp x: 16 # contributors y: 74 # changes opt/interdex/InterDex.cpp x: 33 # contributors y: 113 # changes opt/annokill/AnnoKill.cpp x: 20 # contributors y: 52 # changes opt/rebindrefs/ReBindRefs.cpp x: 18 # contributors y: 48 # changes opt/annokill/AnnoKill.h x: 13 # contributors y: 25 # changes opt/singleimpl/SingleImpl.cpp x: 17 # contributors y: 34 # changes opt/singleimpl/SingleImplDefs.h x: 13 # contributors y: 28 # changes opt/singleimpl/SingleImplOptimize.cpp x: 16 # contributors y: 54 # changes service/constant-propagation/ConstantPropagationTransform.cpp x: 9 # contributors y: 37 # changes service/cse/CommonSubexpressionElimination.cpp x: 9 # contributors y: 33 # changes service/cse/CommonSubexpressionElimination.h x: 8 # contributors y: 19 # changes service/regalloc-fast/LinearScan.cpp x: 4 # contributors y: 11 # changes service/regalloc-fast/LinearScan.h x: 3 # contributors y: 11 # changes opt/verifier/Verifier.cpp x: 12 # contributors y: 22 # changes website/pages/en/index.js x: 4 # contributors y: 5 # changes libredex/ControlFlow.cpp x: 21 # contributors y: 144 # changes libredex/ProguardLexer.cpp x: 10 # contributors y: 26 # changes libredex/ProguardLexer.h x: 9 # contributors y: 20 # changes libredex/ProguardRegex.cpp x: 9 # contributors y: 30 # changes opt/app_module_usage/AppModuleUsage.cpp x: 4 # contributors y: 16 # changes opt/class-merging/AnonymousClassMergingPass.h x: 3 # contributors y: 6 # changes libredex/Creators.cpp x: 22 # contributors y: 67 # changes service/copy-propagation/CopyPropagation.cpp x: 8 # contributors y: 23 # changes opt/interdex/InterDex.h x: 22 # contributors y: 61 # changes opt/interdex/InterDexPass.cpp x: 18 # contributors y: 57 # changes opt/interdex/InterDexPass.h x: 11 # contributors y: 36 # changes libredex/ConfigFiles.cpp x: 25 # contributors y: 68 # changes libredex/DexPosition.cpp x: 9 # contributors y: 34 # changes libredex/ProguardPrintConfiguration.h x: 7 # contributors y: 12 # changes libredex/ProguardReporting.cpp x: 10 # contributors y: 24 # changes libredex/ProguardReporting.h x: 8 # contributors y: 11 # changes opt/final_inline/FinalInlineV2.cpp x: 13 # contributors y: 46 # changes opt/local-dce/LocalDcePass.cpp x: 5 # contributors y: 17 # changes service/constant-propagation/ConstantArrayDomain.h x: 6 # contributors y: 12 # changes tools/redex-tool/Verifier.cpp x: 10 # contributors y: 13 # changes libredex/DexTypeEnvironment.h x: 3 # contributors y: 19 # changes libredex/PointsToSemantics.h x: 8 # contributors y: 20 # changes libredex/ReflectionAnalysis.cpp x: 12 # contributors y: 34 # changes libredex/ReflectionAnalysis.h x: 7 # contributors y: 19 # changes service/escape-analysis/LocalPointersAnalysis.cpp x: 9 # contributors y: 27 # changes libredex/DexAnnotation.h x: 15 # contributors y: 36 # changes libredex/IRTypeChecker.cpp x: 20 # contributors y: 87 # changes libredex/Resolver.h x: 14 # contributors y: 26 # changes libredex/TypeSystem.cpp x: 11 # contributors y: 21 # changes opt/app_module_usage/AppModuleUsage.h x: 4 # contributors y: 12 # changes opt/outliner/InstructionSequenceOutliner.cpp x: 9 # contributors y: 58 # changes service/constant-propagation/ConstantPropagationAnalysis.h x: 12 # contributors y: 39 # changes service/dedup-blocks/DedupBlocks.cpp x: 8 # contributors y: 27 # changes service/kotlin-instance-rewrite/KotlinInstanceRewriter.h x: 3 # contributors y: 4 # changes service/type-analysis/WholeProgramState.h x: 5 # contributors y: 15 # changes tools/redex-tool/RedexTool.cpp x: 7 # contributors y: 10 # changes libresource/utils/TypeHelpers.h x: 4 # contributors y: 4 # changes libredex/AggregateException.cpp x: 1 # contributors y: 1 # changes libredex/KeepReason.cpp x: 4 # contributors y: 8 # changes opt/renameclasses/RenameClassesV2.cpp x: 24 # contributors y: 81 # changes libresource/utils/Visitor.h x: 1 # contributors y: 2 # changes libredex/ConfigFiles.h x: 21 # contributors y: 57 # changes shared/DexDefs.h x: 12 # contributors y: 15 # changes shared/DexEncoding.h x: 9 # contributors y: 11 # changes opt/methodinline/PerfMethodInlinePass.cpp x: 5 # contributors y: 25 # changes service/method-inliner/MethodInliner.cpp x: 13 # contributors y: 68 # changes libredex/Transform.cpp x: 23 # contributors y: 104 # changes opt/shrinker/ShrinkerPass.cpp x: 2 # contributors y: 4 # changes opt/delinit/DelInit.cpp x: 22 # contributors y: 50 # changes libredex/AnnoUtils.h x: 6 # contributors y: 9 # changes libredex/Match.h x: 15 # contributors y: 42 # changes libredex/Show.cpp x: 25 # contributors y: 99 # changes libredex/ApiLevelChecker.h x: 7 # contributors y: 11 # changes redex.py x: 44 # contributors y: 186 # changes service/constant-propagation/ConstantPropagationAnalysis.cpp x: 20 # contributors y: 64 # changes service/constant-propagation/ConstructorParams.cpp x: 6 # contributors y: 8 # changes service/dataflow/ConstantUses.h x: 2 # contributors y: 6 # changes service/dedup-blocks/DedupBlocks.h x: 5 # contributors y: 9 # changes service/regalloc/GraphColoring.cpp x: 4 # contributors y: 6 # changes opt/remove_empty_classes/RemoveEmptyClasses.cpp x: 17 # contributors y: 40 # changes opt/final_inline/FinalInline.cpp x: 25 # contributors y: 77 # changes opt/original_name/OriginalNamePass.cpp x: 14 # contributors y: 29 # changes opt/renameclasses/RenameClassesV2.h x: 15 # contributors y: 34 # changes libredex/Reachability.h x: 12 # contributors y: 30 # changes opt/obfuscate/ObfuscateUtils.h x: 16 # contributors y: 48 # changes service/constant-propagation/IPConstantPropagationAnalysis.cpp x: 9 # contributors y: 19 # changes libredex/DexTypeEnvironment.cpp x: 3 # contributors y: 15 # changes opt/peephole/RedundantCheckCastRemover.cpp x: 11 # contributors y: 22 # changes libredex/Trace.h x: 45 # contributors y: 146 # changes service/method-inliner/Inliner.h x: 9 # contributors y: 54 # changes tools/callgraph-analysis/corelib/loader.py x: 2 # contributors y: 3 # changes service/class-merging/ApproximateShapeMerging.cpp x: 4 # contributors y: 7 # changes service/class-merging/ModelMerger.cpp x: 6 # contributors y: 20 # changes libredex/ABExperimentContextImpl.h x: 3 # contributors y: 8 # changes opt/dedup-strings/DedupStrings.cpp x: 8 # contributors y: 38 # changes opt/constant-propagation/IPConstantPropagation.cpp x: 13 # contributors y: 38 # changes service/switch-dispatch/SwitchDispatch.cpp x: 9 # contributors y: 28 # changes libredex/IRTypeChecker.h x: 10 # contributors y: 21 # changes service/constant-propagation/ConstantPropagationWholeProgramState.h x: 7 # contributors y: 15 # changes analysis/max-depth/MaxDepthAnalysis.h x: 2 # contributors y: 2 # changes liblocator/locator.cpp x: 5 # contributors y: 7 # changes libredex/ConcurrentContainers.h x: 8 # contributors y: 21 # changes libredex/Debug.cpp x: 7 # contributors y: 22 # changes libredex/Debug.h x: 8 # contributors y: 22 # changes libredex/DexAsm.h x: 9 # contributors y: 16 # changes libredex/DexDebugInstruction.cpp x: 9 # contributors y: 14 # changes libredex/DexDebugInstruction.h x: 8 # contributors y: 12 # changes libredex/DexInstruction.cpp x: 14 # contributors y: 44 # changes libredex/DexInstruction.h x: 22 # contributors y: 66 # changes libredex/DexOpcode.cpp x: 11 # contributors y: 29 # changes libredex/DexPosition.h x: 10 # contributors y: 22 # changes libredex/DexStats.h x: 5 # contributors y: 5 # changes libredex/DexUtil.h x: 32 # contributors y: 90 # changes libredex/IODIMetadata.cpp x: 6 # contributors y: 22 # changes libredex/IRInstruction.cpp x: 14 # contributors y: 49 # changes libredex/InlinerConfig.h x: 6 # contributors y: 24 # changes libredex/InstructionAnalyzer.h x: 10 # contributors y: 17 # changes libredex/Match.cpp x: 11 # contributors y: 24 # changes libredex/MatchFlow.cpp x: 2 # contributors y: 7 # changes libredex/MethodDevirtualizer.cpp x: 13 # contributors y: 29 # changes libredex/MethodDevirtualizer.h x: 9 # contributors y: 15 # changes libredex/MethodOverrideGraph.cpp x: 6 # contributors y: 17 # changes libredex/MethodOverrideGraph.h x: 4 # contributors y: 10 # changes libredex/MethodProfiles.cpp x: 8 # contributors y: 25 # changes libredex/Mutators.cpp x: 13 # contributors y: 30 # changes libredex/OptData.cpp x: 11 # contributors y: 28 # changes libredex/OptDataDefs.h x: 8 # contributors y: 10 # changes libredex/Pass.h x: 16 # contributors y: 36 # changes libredex/PassManager.h x: 22 # contributors y: 62 # changes libredex/ReachableClasses.cpp x: 30 # contributors y: 96 # changes libredex/ReachableClasses.h x: 14 # contributors y: 38 # changes libredex/RedexOptions.h x: 8 # contributors y: 15 # changes libredex/RefChecker.cpp x: 5 # contributors y: 10 # changes libredex/Resolver.cpp x: 11 # contributors y: 23 # changes libredex/Show.h x: 15 # contributors y: 33 # changes libredex/Trace.cpp x: 15 # contributors y: 31 # changes libredex/Transform.h x: 13 # contributors y: 61 # changes libredex/TypeUtil.cpp x: 11 # contributors y: 26 # changes libredex/Vinfo.cpp x: 7 # contributors y: 9 # changes libredex/VirtualScope.h x: 12 # contributors y: 37 # changes libredex/WorkQueue.h x: 12 # contributors y: 29 # changes libresource/CompatWindows.h x: 6 # contributors y: 7 # changes opt/access-marking/AccessMarking.h x: 10 # contributors y: 14 # changes opt/bridge/Bridge.cpp x: 21 # contributors y: 53 # changes opt/copy-propagation/CopyPropagationPass.cpp x: 10 # contributors y: 32 # changes opt/dedup_blocks/DedupBlocksPass.cpp x: 16 # contributors y: 50 # changes opt/evaluate_type_checks/EvaluateTypeChecks.cpp x: 6 # contributors y: 15 # changes opt/final_inline/FinalInline.h x: 14 # contributors y: 24 # changes opt/final_inline/FinalInlineV2.h x: 12 # contributors y: 21 # changes opt/insert-source-blocks/InsertSourceBlocks.h x: 2 # contributors y: 10 # changes opt/interdex/DexStructure.h x: 5 # contributors y: 14 # changes opt/methodinline/PGIForest.h x: 2 # contributors y: 5 # changes opt/obfuscate/Obfuscate.h x: 10 # contributors y: 12 # changes opt/obfuscate/VirtualRenamer.cpp x: 12 # contributors y: 41 # changes opt/optimize_enums/EnumAnalyzeGeneratedMethods.cpp x: 6 # contributors y: 13 # changes opt/optimize_enums/EnumTransformer.cpp x: 11 # contributors y: 56 # changes opt/optimize_enums/EnumUpcastAnalysis.cpp x: 10 # contributors y: 41 # changes opt/optimize_enums/OptimizeEnums.cpp x: 13 # contributors y: 55 # changes opt/outliner/InstructionSequenceOutliner.h x: 3 # contributors y: 13 # changes opt/peephole/Peephole.cpp x: 29 # contributors y: 71 # changes opt/print-members/PrintMembers.h x: 8 # contributors y: 9 # changes opt/rebindrefs/ReBindRefs.h x: 10 # contributors y: 16 # changes opt/reduce-gotos/ReduceGotos.cpp x: 8 # contributors y: 24 # changes opt/regalloc/RegAlloc.cpp x: 10 # contributors y: 45 # changes opt/remove-builders/RemoveBuilders.cpp x: 13 # contributors y: 58 # changes opt/remove-builders/RemoveBuildersHelper.h x: 9 # contributors y: 43 # changes opt/remove-unreachable/RemoveUnreachable.cpp x: 18 # contributors y: 45 # changes opt/remove-unreachable/RemoveUnreachable.h x: 16 # contributors y: 22 # changes opt/remove_empty_classes/RemoveEmptyClasses.h x: 7 # contributors y: 8 # changes opt/remove_redundant_check_casts/CheckCastAnalysis.cpp x: 7 # contributors y: 25 # changes opt/singleimpl/SingleImplStats.cpp x: 8 # contributors y: 13 # changes opt/staticrelo/StaticReloV2.cpp x: 6 # contributors y: 18 # changes opt/strip-debug-info/StripDebugInfo.cpp x: 16 # contributors y: 28 # changes opt/strip-debug-info/StripDebugInfo.h x: 14 # contributors y: 22 # changes opt/synth/Synth.h x: 14 # contributors y: 18 # changes opt/track_resources/TrackResources.cpp x: 15 # contributors y: 32 # changes opt/track_resources/TrackResources.h x: 13 # contributors y: 16 # changes opt/up-code-motion/UpCodeMotion.cpp x: 9 # contributors y: 17 # changes service/api-levels/ApiLevelsUtils.cpp x: 6 # contributors y: 27 # changes service/class-merging/ModelMethodMerger.cpp x: 6 # contributors y: 14 # changes service/method-dedup/ConstantValue.cpp x: 8 # contributors y: 26 # changes service/reference-update/MethodReference.cpp x: 13 # contributors y: 24 # changes service/reference-update/TypeReference.cpp x: 13 # contributors y: 47 # changes service/switch-partitioning/SwitchEquivFinder.cpp x: 9 # contributors y: 25 # changes service/type-analysis/LocalTypeAnalyzer.cpp x: 5 # contributors y: 20 # changes service/type-analysis/LocalTypeAnalyzer.h x: 3 # contributors y: 14 # changes service/type-analysis/TypeAnalysisTransform.h x: 4 # contributors y: 19 # changes tools/oatmeal/dex.cpp x: 11 # contributors y: 13 # changes tools/oatmeal/dump-oat.cpp x: 13 # contributors y: 45 # changes tools/oatmeal/dump-oat.h x: 10 # contributors y: 28 # changes tools/oatmeal/elf-writer.cpp x: 12 # contributors y: 25 # changes tools/oatmeal/elf-writer.h x: 9 # contributors y: 12 # changes tools/python/dex.py x: 15 # contributors y: 35 # changes tools/redexdump/DumpTables.cpp x: 13 # contributors y: 18 # changes libresource/VectorImpl.cpp x: 6 # contributors y: 6 # changes
228.0
# changes
  min: 1.0
  average: 16.17
  25th percentile: 4.0
  median: 9.0
  75th percentile: 19.0
  max: 228.0
0 45.0
# contributors
min: 1.0 | average: 6.61 | 25th percentile: 3.0 | median: 5.0 | 75th percentile: 8.0 | max: 45.0