sometsome 3.10.49 → 3.10.50.36

Sign up to get free protection for your applications and to get access to all the features.
Files changed (733) hide show
  1. checksums.yaml +4 -4
  2. metadata +13 -963
  3. data/lib/hola.rb +0 -5
  4. data/lib/proguard4.7/README +0 -33
  5. data/lib/proguard4.7/bin/proguard.bat +0 -14
  6. data/lib/proguard4.7/bin/proguard.sh +0 -11
  7. data/lib/proguard4.7/bin/proguardgui.bat +0 -14
  8. data/lib/proguard4.7/bin/proguardgui.sh +0 -15
  9. data/lib/proguard4.7/bin/retrace.bat +0 -14
  10. data/lib/proguard4.7/bin/retrace.sh +0 -12
  11. data/lib/proguard4.7/build/build.sh +0 -94
  12. data/lib/proguard4.7/build/build.xml +0 -171
  13. data/lib/proguard4.7/build/makefile +0 -94
  14. data/lib/proguard4.7/docs/FAQ.html +0 -253
  15. data/lib/proguard4.7/docs/GPL.html +0 -406
  16. data/lib/proguard4.7/docs/GPL_exception.html +0 -56
  17. data/lib/proguard4.7/docs/acknowledgements.html +0 -76
  18. data/lib/proguard4.7/docs/alternatives.html +0 -699
  19. data/lib/proguard4.7/docs/checkmark.gif +0 -0
  20. data/lib/proguard4.7/docs/downloads.html +0 -623
  21. data/lib/proguard4.7/docs/drop1.gif +0 -0
  22. data/lib/proguard4.7/docs/drop2.gif +0 -0
  23. data/lib/proguard4.7/docs/drop3.gif +0 -0
  24. data/lib/proguard4.7/docs/favicon.ico +0 -0
  25. data/lib/proguard4.7/docs/feedback.html +0 -120
  26. data/lib/proguard4.7/docs/index.html +0 -92
  27. data/lib/proguard4.7/docs/license.html +0 -60
  28. data/lib/proguard4.7/docs/main.html +0 -102
  29. data/lib/proguard4.7/docs/manual/ant.html +0 -634
  30. data/lib/proguard4.7/docs/manual/attention.gif +0 -0
  31. data/lib/proguard4.7/docs/manual/examples.html +0 -1504
  32. data/lib/proguard4.7/docs/manual/gui.html +0 -479
  33. data/lib/proguard4.7/docs/manual/index.html +0 -51
  34. data/lib/proguard4.7/docs/manual/introduction.html +0 -173
  35. data/lib/proguard4.7/docs/manual/limitations.html +0 -69
  36. data/lib/proguard4.7/docs/manual/optimizations.html +0 -172
  37. data/lib/proguard4.7/docs/manual/refcard.html +0 -486
  38. data/lib/proguard4.7/docs/manual/retrace/examples.html +0 -345
  39. data/lib/proguard4.7/docs/manual/retrace/index.html +0 -37
  40. data/lib/proguard4.7/docs/manual/retrace/introduction.html +0 -79
  41. data/lib/proguard4.7/docs/manual/retrace/usage.html +0 -127
  42. data/lib/proguard4.7/docs/manual/sections.html +0 -60
  43. data/lib/proguard4.7/docs/manual/style.css +0 -105
  44. data/lib/proguard4.7/docs/manual/troubleshooting.html +0 -729
  45. data/lib/proguard4.7/docs/manual/usage.html +0 -1243
  46. data/lib/proguard4.7/docs/manual/wtk.html +0 -70
  47. data/lib/proguard4.7/docs/quality.html +0 -56
  48. data/lib/proguard4.7/docs/results.html +0 -170
  49. data/lib/proguard4.7/docs/saikoalogo.png +0 -0
  50. data/lib/proguard4.7/docs/screenshot_console.gif +0 -0
  51. data/lib/proguard4.7/docs/screenshot_console_small.gif +0 -0
  52. data/lib/proguard4.7/docs/screenshot_gui1.gif +0 -0
  53. data/lib/proguard4.7/docs/screenshot_gui2.gif +0 -0
  54. data/lib/proguard4.7/docs/screenshot_gui3.gif +0 -0
  55. data/lib/proguard4.7/docs/screenshot_gui4.gif +0 -0
  56. data/lib/proguard4.7/docs/screenshot_gui5.gif +0 -0
  57. data/lib/proguard4.7/docs/screenshot_gui6.gif +0 -0
  58. data/lib/proguard4.7/docs/screenshot_gui7.gif +0 -0
  59. data/lib/proguard4.7/docs/screenshot_gui8.gif +0 -0
  60. data/lib/proguard4.7/docs/screenshots.html +0 -67
  61. data/lib/proguard4.7/docs/screenshots_gui_small.gif +0 -0
  62. data/lib/proguard4.7/docs/sections.html +0 -64
  63. data/lib/proguard4.7/docs/sflogo.png +0 -0
  64. data/lib/proguard4.7/docs/steel.gif +0 -0
  65. data/lib/proguard4.7/docs/style.css +0 -223
  66. data/lib/proguard4.7/docs/testimonials.html +0 -133
  67. data/lib/proguard4.7/docs/title.gif +0 -0
  68. data/lib/proguard4.7/docs/title.html +0 -17
  69. data/lib/proguard4.7/examples/android.pro +0 -149
  70. data/lib/proguard4.7/examples/annotations/examples.pro +0 -60
  71. data/lib/proguard4.7/examples/annotations/examples/Applet.java +0 -22
  72. data/lib/proguard4.7/examples/annotations/examples/Application.java +0 -20
  73. data/lib/proguard4.7/examples/annotations/examples/Bean.java +0 -56
  74. data/lib/proguard4.7/examples/annotations/examples/NativeCallBack.java +0 -44
  75. data/lib/proguard4.7/examples/annotations/lib/annotations.jar +0 -0
  76. data/lib/proguard4.7/examples/annotations/lib/annotations.pro +0 -118
  77. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/Keep.java +0 -18
  78. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepApplication.java +0 -18
  79. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMemberNames.java +0 -18
  80. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMembers.java +0 -18
  81. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepGettersSetters.java +0 -18
  82. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepImplementations.java +0 -18
  83. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepName.java +0 -18
  84. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMemberNames.java +0 -18
  85. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMembers.java +0 -18
  86. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicGettersSetters.java +0 -18
  87. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicImplementations.java +0 -18
  88. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMemberNames.java +0 -18
  89. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMembers.java +0 -19
  90. data/lib/proguard4.7/examples/ant/android-8.xml +0 -177
  91. data/lib/proguard4.7/examples/ant/applets.xml +0 -88
  92. data/lib/proguard4.7/examples/ant/applications1.xml +0 -15
  93. data/lib/proguard4.7/examples/ant/applications2.xml +0 -74
  94. data/lib/proguard4.7/examples/ant/applications3.xml +0 -98
  95. data/lib/proguard4.7/examples/ant/library.xml +0 -102
  96. data/lib/proguard4.7/examples/ant/midlets.xml +0 -52
  97. data/lib/proguard4.7/examples/ant/proguard.xml +0 -78
  98. data/lib/proguard4.7/examples/ant/servlets.xml +0 -88
  99. data/lib/proguard4.7/examples/applets.pro +0 -69
  100. data/lib/proguard4.7/examples/applications.pro +0 -75
  101. data/lib/proguard4.7/examples/dictionaries/compact.txt +0 -18
  102. data/lib/proguard4.7/examples/dictionaries/keywords.txt +0 -58
  103. data/lib/proguard4.7/examples/dictionaries/shakespeare.txt +0 -23
  104. data/lib/proguard4.7/examples/dictionaries/windows.txt +0 -209
  105. data/lib/proguard4.7/examples/library.pro +0 -79
  106. data/lib/proguard4.7/examples/midlets.pro +0 -67
  107. data/lib/proguard4.7/examples/proguard.pro +0 -57
  108. data/lib/proguard4.7/examples/proguardall.pro +0 -62
  109. data/lib/proguard4.7/examples/proguardgui.pro +0 -50
  110. data/lib/proguard4.7/examples/retrace.pro +0 -43
  111. data/lib/proguard4.7/examples/scala.pro +0 -132
  112. data/lib/proguard4.7/examples/servlets.pro +0 -70
  113. data/lib/proguard4.7/lib/proguard.jar +0 -0
  114. data/lib/proguard4.7/lib/proguardgui.jar +0 -0
  115. data/lib/proguard4.7/lib/retrace.jar +0 -0
  116. data/lib/proguard4.7/src/proguard/ArgumentWordReader.java +0 -111
  117. data/lib/proguard4.7/src/proguard/ClassPath.java +0 -94
  118. data/lib/proguard4.7/src/proguard/ClassPathEntry.java +0 -282
  119. data/lib/proguard4.7/src/proguard/ClassSpecification.java +0 -259
  120. data/lib/proguard4.7/src/proguard/ClassSpecificationVisitorFactory.java +0 -503
  121. data/lib/proguard4.7/src/proguard/Configuration.java +0 -328
  122. data/lib/proguard4.7/src/proguard/ConfigurationConstants.java +0 -123
  123. data/lib/proguard4.7/src/proguard/ConfigurationParser.java +0 -1285
  124. data/lib/proguard4.7/src/proguard/ConfigurationWriter.java +0 -651
  125. data/lib/proguard4.7/src/proguard/DataEntryReaderFactory.java +0 -141
  126. data/lib/proguard4.7/src/proguard/DataEntryWriterFactory.java +0 -150
  127. data/lib/proguard4.7/src/proguard/DescriptorKeepChecker.java +0 -169
  128. data/lib/proguard4.7/src/proguard/DuplicateClassPrinter.java +0 -63
  129. data/lib/proguard4.7/src/proguard/FileWordReader.java +0 -55
  130. data/lib/proguard4.7/src/proguard/FullyQualifiedClassNameChecker.java +0 -191
  131. data/lib/proguard4.7/src/proguard/GPL.java +0 -197
  132. data/lib/proguard4.7/src/proguard/Initializer.java +0 -424
  133. data/lib/proguard4.7/src/proguard/InputReader.java +0 -233
  134. data/lib/proguard4.7/src/proguard/KeepClassMemberChecker.java +0 -87
  135. data/lib/proguard4.7/src/proguard/KeepClassSpecification.java +0 -137
  136. data/lib/proguard4.7/src/proguard/LineWordReader.java +0 -74
  137. data/lib/proguard4.7/src/proguard/MANIFEST.MF +0 -2
  138. data/lib/proguard4.7/src/proguard/MemberSpecification.java +0 -114
  139. data/lib/proguard4.7/src/proguard/OutputWriter.java +0 -296
  140. data/lib/proguard4.7/src/proguard/ParseException.java +0 -51
  141. data/lib/proguard4.7/src/proguard/ProGuard.java +0 -512
  142. data/lib/proguard4.7/src/proguard/SeedPrinter.java +0 -97
  143. data/lib/proguard4.7/src/proguard/SubclassedClassFilter.java +0 -62
  144. data/lib/proguard4.7/src/proguard/Targeter.java +0 -88
  145. data/lib/proguard4.7/src/proguard/UpToDateChecker.java +0 -232
  146. data/lib/proguard4.7/src/proguard/WordReader.java +0 -387
  147. data/lib/proguard4.7/src/proguard/ant/ClassPathElement.java +0 -191
  148. data/lib/proguard4.7/src/proguard/ant/ClassSpecificationElement.java +0 -258
  149. data/lib/proguard4.7/src/proguard/ant/ConfigurationElement.java +0 -53
  150. data/lib/proguard4.7/src/proguard/ant/ConfigurationTask.java +0 -441
  151. data/lib/proguard4.7/src/proguard/ant/FilterElement.java +0 -85
  152. data/lib/proguard4.7/src/proguard/ant/KeepSpecificationElement.java +0 -87
  153. data/lib/proguard4.7/src/proguard/ant/MemberSpecificationElement.java +0 -218
  154. data/lib/proguard4.7/src/proguard/ant/ProGuardTask.java +0 -352
  155. data/lib/proguard4.7/src/proguard/ant/package.html +0 -3
  156. data/lib/proguard4.7/src/proguard/ant/task.properties +0 -2
  157. data/lib/proguard4.7/src/proguard/classfile/ClassConstants.java +0 -316
  158. data/lib/proguard4.7/src/proguard/classfile/ClassPool.java +0 -152
  159. data/lib/proguard4.7/src/proguard/classfile/Clazz.java +0 -261
  160. data/lib/proguard4.7/src/proguard/classfile/Field.java +0 -32
  161. data/lib/proguard4.7/src/proguard/classfile/LibraryClass.java +0 -548
  162. data/lib/proguard4.7/src/proguard/classfile/LibraryField.java +0 -77
  163. data/lib/proguard4.7/src/proguard/classfile/LibraryMember.java +0 -108
  164. data/lib/proguard4.7/src/proguard/classfile/LibraryMethod.java +0 -83
  165. data/lib/proguard4.7/src/proguard/classfile/Member.java +0 -57
  166. data/lib/proguard4.7/src/proguard/classfile/Method.java +0 -32
  167. data/lib/proguard4.7/src/proguard/classfile/ProgramClass.java +0 -572
  168. data/lib/proguard4.7/src/proguard/classfile/ProgramField.java +0 -93
  169. data/lib/proguard4.7/src/proguard/classfile/ProgramMember.java +0 -168
  170. data/lib/proguard4.7/src/proguard/classfile/ProgramMethod.java +0 -99
  171. data/lib/proguard4.7/src/proguard/classfile/VisitorAccepter.java +0 -47
  172. data/lib/proguard4.7/src/proguard/classfile/attribute/Attribute.java +0 -142
  173. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodInfo.java +0 -89
  174. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodsAttribute.java +0 -95
  175. data/lib/proguard4.7/src/proguard/classfile/attribute/CodeAttribute.java +0 -202
  176. data/lib/proguard4.7/src/proguard/classfile/attribute/ConstantValueAttribute.java +0 -62
  177. data/lib/proguard4.7/src/proguard/classfile/attribute/DeprecatedAttribute.java +0 -66
  178. data/lib/proguard4.7/src/proguard/classfile/attribute/EnclosingMethodAttribute.java +0 -132
  179. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionInfo.java +0 -100
  180. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionsAttribute.java +0 -80
  181. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesAttribute.java +0 -80
  182. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesInfo.java +0 -119
  183. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberInfo.java +0 -50
  184. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberTableAttribute.java +0 -100
  185. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableInfo.java +0 -99
  186. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTableAttribute.java +0 -79
  187. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeInfo.java +0 -107
  188. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeTableAttribute.java +0 -79
  189. data/lib/proguard4.7/src/proguard/classfile/attribute/SignatureAttribute.java +0 -100
  190. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceDirAttribute.java +0 -62
  191. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceFileAttribute.java +0 -62
  192. data/lib/proguard4.7/src/proguard/classfile/attribute/SyntheticAttribute.java +0 -66
  193. data/lib/proguard4.7/src/proguard/classfile/attribute/UnknownAttribute.java +0 -82
  194. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/Annotation.java +0 -143
  195. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationDefaultAttribute.java +0 -73
  196. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationElementValue.java +0 -76
  197. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationsAttribute.java +0 -100
  198. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ArrayElementValue.java +0 -82
  199. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ClassElementValue.java +0 -95
  200. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ConstantElementValue.java +0 -71
  201. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ElementValue.java +0 -126
  202. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/EnumConstantElementValue.java +0 -99
  203. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ParameterAnnotationsAttribute.java +0 -83
  204. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleAnnotationsAttribute.java +0 -70
  205. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleParameterAnnotationsAttribute.java +0 -62
  206. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleAnnotationsAttribute.java +0 -70
  207. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleParameterAnnotationsAttribute.java +0 -62
  208. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/package.html +0 -4
  209. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AllAnnotationVisitor.java +0 -100
  210. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotatedClassVisitor.java +0 -62
  211. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationToMemberVisitor.java +0 -62
  212. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationTypeFilter.java +0 -102
  213. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationVisitor.java +0 -40
  214. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/ElementValueVisitor.java +0 -51
  215. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/package.html +0 -3
  216. data/lib/proguard4.7/src/proguard/classfile/attribute/package.html +0 -3
  217. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/DoubleType.java +0 -66
  218. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FloatType.java +0 -66
  219. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FullFrame.java +0 -202
  220. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/IntegerType.java +0 -66
  221. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LessZeroFrame.java +0 -103
  222. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LongType.java +0 -66
  223. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/MoreZeroFrame.java +0 -161
  224. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/NullType.java +0 -66
  225. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/ObjectType.java +0 -107
  226. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameOneFrame.java +0 -115
  227. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameZeroFrame.java +0 -74
  228. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapAttribute.java +0 -91
  229. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapFrame.java +0 -117
  230. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapTableAttribute.java +0 -93
  231. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/TopType.java +0 -66
  232. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedThisType.java +0 -66
  233. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedType.java +0 -106
  234. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationType.java +0 -103
  235. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationTypeFactory.java +0 -112
  236. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/StackMapFrameVisitor.java +0 -40
  237. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/VerificationTypeVisitor.java +0 -65
  238. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java +0 -117
  239. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java +0 -55
  240. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java +0 -55
  241. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java +0 -55
  242. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java +0 -368
  243. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeVisitor.java +0 -90
  244. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java +0 -40
  245. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java +0 -37
  246. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java +0 -38
  247. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java +0 -38
  248. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java +0 -38
  249. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java +0 -38
  250. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java +0 -365
  251. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java +0 -293
  252. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java +0 -360
  253. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/StackSizeComputer.java +0 -378
  254. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/package.html +0 -3
  255. data/lib/proguard4.7/src/proguard/classfile/constant/ClassConstant.java +0 -105
  256. data/lib/proguard4.7/src/proguard/classfile/constant/Constant.java +0 -68
  257. data/lib/proguard4.7/src/proguard/classfile/constant/DoubleConstant.java +0 -82
  258. data/lib/proguard4.7/src/proguard/classfile/constant/FieldrefConstant.java +0 -71
  259. data/lib/proguard4.7/src/proguard/classfile/constant/FloatConstant.java +0 -82
  260. data/lib/proguard4.7/src/proguard/classfile/constant/IntegerConstant.java +0 -82
  261. data/lib/proguard4.7/src/proguard/classfile/constant/InterfaceMethodrefConstant.java +0 -71
  262. data/lib/proguard4.7/src/proguard/classfile/constant/InvokeDynamicConstant.java +0 -148
  263. data/lib/proguard4.7/src/proguard/classfile/constant/LongConstant.java +0 -82
  264. data/lib/proguard4.7/src/proguard/classfile/constant/MethodHandleConstant.java +0 -124
  265. data/lib/proguard4.7/src/proguard/classfile/constant/MethodTypeConstant.java +0 -93
  266. data/lib/proguard4.7/src/proguard/classfile/constant/MethodrefConstant.java +0 -71
  267. data/lib/proguard4.7/src/proguard/classfile/constant/NameAndTypeConstant.java +0 -119
  268. data/lib/proguard4.7/src/proguard/classfile/constant/RefConstant.java +0 -130
  269. data/lib/proguard4.7/src/proguard/classfile/constant/StringConstant.java +0 -135
  270. data/lib/proguard4.7/src/proguard/classfile/constant/Utf8Constant.java +0 -285
  271. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/AllConstantVisitor.java +0 -53
  272. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/BootstrapMethodHandleTraveler.java +0 -100
  273. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantTagFilter.java +0 -86
  274. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantVisitor.java +0 -49
  275. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ExceptClassConstantFilter.java +0 -69
  276. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/MethodrefTraveler.java +0 -60
  277. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/package.html +0 -3
  278. data/lib/proguard4.7/src/proguard/classfile/editor/AccessFixer.java +0 -180
  279. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationAdder.java +0 -153
  280. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationsAttributeEditor.java +0 -67
  281. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeAdder.java +0 -457
  282. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeSorter.java +0 -89
  283. data/lib/proguard4.7/src/proguard/classfile/editor/AttributesEditor.java +0 -269
  284. data/lib/proguard4.7/src/proguard/classfile/editor/BridgeMethodFixer.java +0 -117
  285. data/lib/proguard4.7/src/proguard/classfile/editor/ClassEditor.java +0 -255
  286. data/lib/proguard4.7/src/proguard/classfile/editor/ClassElementSorter.java +0 -52
  287. data/lib/proguard4.7/src/proguard/classfile/editor/ClassMemberSorter.java +0 -69
  288. data/lib/proguard4.7/src/proguard/classfile/editor/ClassReferenceFixer.java +0 -546
  289. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeComposer.java +0 -843
  290. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditor.java +0 -1104
  291. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditorResetter.java +0 -60
  292. data/lib/proguard4.7/src/proguard/classfile/editor/ComparableConstant.java +0 -249
  293. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantAdder.java +0 -239
  294. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolEditor.java +0 -782
  295. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolRemapper.java +0 -662
  296. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolShrinker.java +0 -578
  297. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolSorter.java +0 -123
  298. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValueAdder.java +0 -217
  299. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValuesEditor.java +0 -238
  300. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionAdder.java +0 -65
  301. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionInfoAdder.java +0 -67
  302. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionsAttributeEditor.java +0 -68
  303. data/lib/proguard4.7/src/proguard/classfile/editor/InnerClassesAccessFixer.java +0 -83
  304. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionAdder.java +0 -76
  305. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionWriter.java +0 -278
  306. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceAdder.java +0 -62
  307. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceSorter.java +0 -152
  308. data/lib/proguard4.7/src/proguard/classfile/editor/InterfacesEditor.java +0 -122
  309. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberInfoAdder.java +0 -59
  310. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberTableAttributeEditor.java +0 -67
  311. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableInfoAdder.java +0 -67
  312. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTableAttributeEditor.java +0 -67
  313. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeInfoAdder.java +0 -68
  314. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeTableAttributeEditor.java +0 -68
  315. data/lib/proguard4.7/src/proguard/classfile/editor/MemberAdder.java +0 -288
  316. data/lib/proguard4.7/src/proguard/classfile/editor/MemberReferenceFixer.java +0 -447
  317. data/lib/proguard4.7/src/proguard/classfile/editor/MethodInvocationFixer.java +0 -243
  318. data/lib/proguard4.7/src/proguard/classfile/editor/NameAndTypeShrinker.java +0 -188
  319. data/lib/proguard4.7/src/proguard/classfile/editor/NamedAttributeDeleter.java +0 -54
  320. data/lib/proguard4.7/src/proguard/classfile/editor/ParameterAnnotationsAttributeEditor.java +0 -71
  321. data/lib/proguard4.7/src/proguard/classfile/editor/StackSizeUpdater.java +0 -54
  322. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassAdder.java +0 -59
  323. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassToAdder.java +0 -60
  324. data/lib/proguard4.7/src/proguard/classfile/editor/Utf8Shrinker.java +0 -455
  325. data/lib/proguard4.7/src/proguard/classfile/editor/VariableCleaner.java +0 -267
  326. data/lib/proguard4.7/src/proguard/classfile/editor/VariableEditor.java +0 -130
  327. data/lib/proguard4.7/src/proguard/classfile/editor/VariableRemapper.java +0 -156
  328. data/lib/proguard4.7/src/proguard/classfile/editor/VariableSizeUpdater.java +0 -105
  329. data/lib/proguard4.7/src/proguard/classfile/editor/package.html +0 -3
  330. data/lib/proguard4.7/src/proguard/classfile/instruction/BranchInstruction.java +0 -180
  331. data/lib/proguard4.7/src/proguard/classfile/instruction/ConstantInstruction.java +0 -309
  332. data/lib/proguard4.7/src/proguard/classfile/instruction/Instruction.java +0 -920
  333. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionConstants.java +0 -449
  334. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionFactory.java +0 -300
  335. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionUtil.java +0 -67
  336. data/lib/proguard4.7/src/proguard/classfile/instruction/LookUpSwitchInstruction.java +0 -135
  337. data/lib/proguard4.7/src/proguard/classfile/instruction/SimpleInstruction.java +0 -255
  338. data/lib/proguard4.7/src/proguard/classfile/instruction/SwitchInstruction.java +0 -83
  339. data/lib/proguard4.7/src/proguard/classfile/instruction/TableSwitchInstruction.java +0 -139
  340. data/lib/proguard4.7/src/proguard/classfile/instruction/VariableInstruction.java +0 -372
  341. data/lib/proguard4.7/src/proguard/classfile/instruction/package.html +0 -9
  342. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/AllInstructionVisitor.java +0 -56
  343. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionCounter.java +0 -59
  344. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionVisitor.java +0 -42
  345. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/MultiInstructionVisitor.java +0 -131
  346. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/package.html +0 -3
  347. data/lib/proguard4.7/src/proguard/classfile/io/LibraryClassReader.java +0 -383
  348. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassReader.java +0 -919
  349. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassWriter.java +0 -735
  350. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataInput.java +0 -223
  351. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataOutput.java +0 -224
  352. data/lib/proguard4.7/src/proguard/classfile/io/package.html +0 -3
  353. data/lib/proguard4.7/src/proguard/classfile/package.html +0 -15
  354. data/lib/proguard4.7/src/proguard/classfile/util/AccessUtil.java +0 -105
  355. data/lib/proguard4.7/src/proguard/classfile/util/ClassReferenceInitializer.java +0 -559
  356. data/lib/proguard4.7/src/proguard/classfile/util/ClassSubHierarchyInitializer.java +0 -77
  357. data/lib/proguard4.7/src/proguard/classfile/util/ClassSuperHierarchyInitializer.java +0 -163
  358. data/lib/proguard4.7/src/proguard/classfile/util/ClassUtil.java +0 -1227
  359. data/lib/proguard4.7/src/proguard/classfile/util/DescriptorClassEnumeration.java +0 -236
  360. data/lib/proguard4.7/src/proguard/classfile/util/DynamicClassReferenceInitializer.java +0 -485
  361. data/lib/proguard4.7/src/proguard/classfile/util/DynamicMemberReferenceInitializer.java +0 -944
  362. data/lib/proguard4.7/src/proguard/classfile/util/ExternalTypeEnumeration.java +0 -106
  363. data/lib/proguard4.7/src/proguard/classfile/util/InstructionSequenceMatcher.java +0 -754
  364. data/lib/proguard4.7/src/proguard/classfile/util/InternalTypeEnumeration.java +0 -204
  365. data/lib/proguard4.7/src/proguard/classfile/util/MemberFinder.java +0 -197
  366. data/lib/proguard4.7/src/proguard/classfile/util/MethodLinker.java +0 -160
  367. data/lib/proguard4.7/src/proguard/classfile/util/SimplifiedVisitor.java +0 -834
  368. data/lib/proguard4.7/src/proguard/classfile/util/StringReferenceInitializer.java +0 -90
  369. data/lib/proguard4.7/src/proguard/classfile/util/StringSharer.java +0 -172
  370. data/lib/proguard4.7/src/proguard/classfile/util/WarningPrinter.java +0 -136
  371. data/lib/proguard4.7/src/proguard/classfile/util/package.html +0 -3
  372. data/lib/proguard4.7/src/proguard/classfile/visitor/AllClassVisitor.java +0 -47
  373. data/lib/proguard4.7/src/proguard/classfile/visitor/AllFieldVisitor.java +0 -55
  374. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMemberVisitor.java +0 -57
  375. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMethodVisitor.java +0 -55
  376. data/lib/proguard4.7/src/proguard/classfile/visitor/BottomClassFilter.java +0 -69
  377. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassAccessFilter.java +0 -88
  378. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCleaner.java +0 -275
  379. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCollector.java +0 -58
  380. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCounter.java +0 -56
  381. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassHierarchyTraveler.java +0 -91
  382. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassNameFilter.java +0 -112
  383. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolFiller.java +0 -55
  384. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolVisitor.java +0 -37
  385. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPresenceFilter.java +0 -93
  386. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPrinter.java +0 -1011
  387. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionFilter.java +0 -85
  388. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionSetter.java +0 -83
  389. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVisitor.java +0 -36
  390. data/lib/proguard4.7/src/proguard/classfile/visitor/ConcreteClassDownTraveler.java +0 -100
  391. data/lib/proguard4.7/src/proguard/classfile/visitor/DotClassClassVisitor.java +0 -89
  392. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassFilter.java +0 -69
  393. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassesFilter.java +0 -90
  394. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionCounter.java +0 -52
  395. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionExcludedOffsetFilter.java +0 -64
  396. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerConstantVisitor.java +0 -62
  397. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerFilter.java +0 -70
  398. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionOffsetFilter.java +0 -64
  399. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionRangeFilter.java +0 -68
  400. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassConstantFilter.java +0 -69
  401. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassFilter.java +0 -71
  402. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementingClassConstantFilter.java +0 -70
  403. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryClassFilter.java +0 -60
  404. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryMemberFilter.java +0 -73
  405. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberAccessFilter.java +0 -122
  406. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberClassAccessFilter.java +0 -106
  407. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCollector.java +0 -59
  408. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCounter.java +0 -72
  409. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberDescriptorFilter.java +0 -113
  410. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberNameFilter.java +0 -113
  411. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberToClassVisitor.java +0 -90
  412. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberVisitor.java +0 -40
  413. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationFilter.java +0 -70
  414. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationTraveler.java +0 -128
  415. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassPoolVisitor.java +0 -88
  416. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassVisitor.java +0 -97
  417. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiMemberVisitor.java +0 -113
  418. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedClassVisitor.java +0 -49
  419. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedFieldVisitor.java +0 -61
  420. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedMethodVisitor.java +0 -61
  421. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramClassFilter.java +0 -60
  422. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramMemberFilter.java +0 -73
  423. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedClassVisitor.java +0 -255
  424. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedMemberVisitor.java +0 -73
  425. data/lib/proguard4.7/src/proguard/classfile/visitor/SimilarMemberVisitor.java +0 -125
  426. data/lib/proguard4.7/src/proguard/classfile/visitor/SimpleClassPrinter.java +0 -167
  427. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassFilter.java +0 -91
  428. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassTraveler.java +0 -60
  429. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableClassVisitor.java +0 -78
  430. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableMemberVisitor.java +0 -96
  431. data/lib/proguard4.7/src/proguard/classfile/visitor/package.html +0 -40
  432. data/lib/proguard4.7/src/proguard/evaluation/BasicBranchUnit.java +0 -126
  433. data/lib/proguard4.7/src/proguard/evaluation/BasicInvocationUnit.java +0 -425
  434. data/lib/proguard4.7/src/proguard/evaluation/BranchUnit.java +0 -63
  435. data/lib/proguard4.7/src/proguard/evaluation/ClassConstantValueFactory.java +0 -53
  436. data/lib/proguard4.7/src/proguard/evaluation/ConstantValueFactory.java +0 -113
  437. data/lib/proguard4.7/src/proguard/evaluation/InvocationUnit.java +0 -62
  438. data/lib/proguard4.7/src/proguard/evaluation/Processor.java +0 -908
  439. data/lib/proguard4.7/src/proguard/evaluation/Stack.java +0 -560
  440. data/lib/proguard4.7/src/proguard/evaluation/TracedStack.java +0 -342
  441. data/lib/proguard4.7/src/proguard/evaluation/TracedVariables.java +0 -199
  442. data/lib/proguard4.7/src/proguard/evaluation/Variables.java +0 -347
  443. data/lib/proguard4.7/src/proguard/evaluation/value/Category1Value.java +0 -41
  444. data/lib/proguard4.7/src/proguard/evaluation/value/Category2Value.java +0 -41
  445. data/lib/proguard4.7/src/proguard/evaluation/value/ComparisonValue.java +0 -69
  446. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeDoubleValue.java +0 -81
  447. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeFloatValue.java +0 -81
  448. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeIntegerValue.java +0 -87
  449. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeLongValue.java +0 -87
  450. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedByteValue.java +0 -64
  451. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedCharacterValue.java +0 -64
  452. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedDoubleValue.java +0 -64
  453. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedFloatValue.java +0 -64
  454. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedIntegerValue.java +0 -64
  455. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedLongValue.java +0 -64
  456. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedShortValue.java +0 -64
  457. data/lib/proguard4.7/src/proguard/evaluation/value/DoubleValue.java +0 -359
  458. data/lib/proguard4.7/src/proguard/evaluation/value/FloatValue.java +0 -359
  459. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedDoubleValue.java +0 -67
  460. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedFloatValue.java +0 -67
  461. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedIntegerValue.java +0 -67
  462. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedLongValue.java +0 -67
  463. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedReferenceValue.java +0 -102
  464. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedValueFactory.java +0 -75
  465. data/lib/proguard4.7/src/proguard/evaluation/value/InstructionOffsetValue.java +0 -307
  466. data/lib/proguard4.7/src/proguard/evaluation/value/IntegerValue.java +0 -1002
  467. data/lib/proguard4.7/src/proguard/evaluation/value/LongValue.java +0 -554
  468. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedDoubleValue.java +0 -71
  469. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedFloatValue.java +0 -71
  470. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedIntegerValue.java +0 -71
  471. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedLongValue.java +0 -71
  472. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularDoubleValue.java +0 -216
  473. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularFloatValue.java +0 -216
  474. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularIntegerValue.java +0 -383
  475. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularLongValue.java +0 -271
  476. data/lib/proguard4.7/src/proguard/evaluation/value/ReferenceValue.java +0 -540
  477. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificDoubleValue.java +0 -186
  478. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificFloatValue.java +0 -186
  479. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificIntegerValue.java +0 -354
  480. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificLongValue.java +0 -259
  481. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificValueFactory.java +0 -97
  482. data/lib/proguard4.7/src/proguard/evaluation/value/TopValue.java +0 -79
  483. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownDoubleValue.java +0 -125
  484. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownFloatValue.java +0 -125
  485. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownIntegerValue.java +0 -216
  486. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownLongValue.java +0 -160
  487. data/lib/proguard4.7/src/proguard/evaluation/value/Value.java +0 -169
  488. data/lib/proguard4.7/src/proguard/evaluation/value/ValueFactory.java +0 -193
  489. data/lib/proguard4.7/src/proguard/evaluation/value/package.html +0 -3
  490. data/lib/proguard4.7/src/proguard/gui/ClassPathPanel.java +0 -441
  491. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationDialog.java +0 -546
  492. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationsPanel.java +0 -231
  493. data/lib/proguard4.7/src/proguard/gui/ExtensionFileFilter.java +0 -78
  494. data/lib/proguard4.7/src/proguard/gui/FilterBuilder.java +0 -208
  495. data/lib/proguard4.7/src/proguard/gui/FilterDialog.java +0 -320
  496. data/lib/proguard4.7/src/proguard/gui/GUIResources.java +0 -56
  497. data/lib/proguard4.7/src/proguard/gui/GUIResources.properties +0 -643
  498. data/lib/proguard4.7/src/proguard/gui/KeepSpecificationsPanel.java +0 -81
  499. data/lib/proguard4.7/src/proguard/gui/ListPanel.java +0 -341
  500. data/lib/proguard4.7/src/proguard/gui/MANIFEST.MF +0 -3
  501. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationDialog.java +0 -509
  502. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationsPanel.java +0 -304
  503. data/lib/proguard4.7/src/proguard/gui/MessageDialogRunnable.java +0 -90
  504. data/lib/proguard4.7/src/proguard/gui/OptimizationsDialog.java +0 -251
  505. data/lib/proguard4.7/src/proguard/gui/ProGuardGUI.java +0 -1777
  506. data/lib/proguard4.7/src/proguard/gui/ProGuardRunnable.java +0 -154
  507. data/lib/proguard4.7/src/proguard/gui/ReTraceRunnable.java +0 -149
  508. data/lib/proguard4.7/src/proguard/gui/SwingUtil.java +0 -82
  509. data/lib/proguard4.7/src/proguard/gui/TabbedPane.java +0 -229
  510. data/lib/proguard4.7/src/proguard/gui/TextAreaOutputStream.java +0 -81
  511. data/lib/proguard4.7/src/proguard/gui/arrow.gif +0 -0
  512. data/lib/proguard4.7/src/proguard/gui/boilerplate.pro +0 -410
  513. data/lib/proguard4.7/src/proguard/gui/default.pro +0 -318
  514. data/lib/proguard4.7/src/proguard/gui/package.html +0 -3
  515. data/lib/proguard4.7/src/proguard/gui/splash/BufferedSprite.java +0 -145
  516. data/lib/proguard4.7/src/proguard/gui/splash/CircleSprite.java +0 -74
  517. data/lib/proguard4.7/src/proguard/gui/splash/ClipSprite.java +0 -85
  518. data/lib/proguard4.7/src/proguard/gui/splash/ColorSprite.java +0 -65
  519. data/lib/proguard4.7/src/proguard/gui/splash/CompositeSprite.java +0 -56
  520. data/lib/proguard4.7/src/proguard/gui/splash/ConstantColor.java +0 -51
  521. data/lib/proguard4.7/src/proguard/gui/splash/ConstantDouble.java +0 -49
  522. data/lib/proguard4.7/src/proguard/gui/splash/ConstantFont.java +0 -46
  523. data/lib/proguard4.7/src/proguard/gui/splash/ConstantInt.java +0 -49
  524. data/lib/proguard4.7/src/proguard/gui/splash/ConstantString.java +0 -49
  525. data/lib/proguard4.7/src/proguard/gui/splash/ConstantTiming.java +0 -57
  526. data/lib/proguard4.7/src/proguard/gui/splash/FontSprite.java +0 -65
  527. data/lib/proguard4.7/src/proguard/gui/splash/ImageSprite.java +0 -76
  528. data/lib/proguard4.7/src/proguard/gui/splash/LinearColor.java +0 -72
  529. data/lib/proguard4.7/src/proguard/gui/splash/LinearDouble.java +0 -55
  530. data/lib/proguard4.7/src/proguard/gui/splash/LinearInt.java +0 -55
  531. data/lib/proguard4.7/src/proguard/gui/splash/LinearTiming.java +0 -55
  532. data/lib/proguard4.7/src/proguard/gui/splash/OverrideGraphics2D.java +0 -598
  533. data/lib/proguard4.7/src/proguard/gui/splash/RectangleSprite.java +0 -114
  534. data/lib/proguard4.7/src/proguard/gui/splash/SawToothTiming.java +0 -53
  535. data/lib/proguard4.7/src/proguard/gui/splash/ShadowedSprite.java +0 -109
  536. data/lib/proguard4.7/src/proguard/gui/splash/SineTiming.java +0 -53
  537. data/lib/proguard4.7/src/proguard/gui/splash/SmoothTiming.java +0 -66
  538. data/lib/proguard4.7/src/proguard/gui/splash/SplashPanel.java +0 -235
  539. data/lib/proguard4.7/src/proguard/gui/splash/Sprite.java +0 -41
  540. data/lib/proguard4.7/src/proguard/gui/splash/TextSprite.java +0 -89
  541. data/lib/proguard4.7/src/proguard/gui/splash/TimeSwitchSprite.java +0 -75
  542. data/lib/proguard4.7/src/proguard/gui/splash/Timing.java +0 -34
  543. data/lib/proguard4.7/src/proguard/gui/splash/TypeWriterString.java +0 -71
  544. data/lib/proguard4.7/src/proguard/gui/splash/VariableColor.java +0 -36
  545. data/lib/proguard4.7/src/proguard/gui/splash/VariableDouble.java +0 -34
  546. data/lib/proguard4.7/src/proguard/gui/splash/VariableFont.java +0 -36
  547. data/lib/proguard4.7/src/proguard/gui/splash/VariableInt.java +0 -34
  548. data/lib/proguard4.7/src/proguard/gui/splash/VariableSizeFont.java +0 -65
  549. data/lib/proguard4.7/src/proguard/gui/splash/VariableString.java +0 -34
  550. data/lib/proguard4.7/src/proguard/gui/splash/package.html +0 -4
  551. data/lib/proguard4.7/src/proguard/gui/vtitle.png +0 -0
  552. data/lib/proguard4.7/src/proguard/io/CascadingDataEntryWriter.java +0 -94
  553. data/lib/proguard4.7/src/proguard/io/ClassFilter.java +0 -59
  554. data/lib/proguard4.7/src/proguard/io/ClassReader.java +0 -115
  555. data/lib/proguard4.7/src/proguard/io/ClassRewriter.java +0 -80
  556. data/lib/proguard4.7/src/proguard/io/DataEntry.java +0 -62
  557. data/lib/proguard4.7/src/proguard/io/DataEntryClassWriter.java +0 -85
  558. data/lib/proguard4.7/src/proguard/io/DataEntryCopier.java +0 -247
  559. data/lib/proguard4.7/src/proguard/io/DataEntryDirectoryFilter.java +0 -40
  560. data/lib/proguard4.7/src/proguard/io/DataEntryFilter.java +0 -38
  561. data/lib/proguard4.7/src/proguard/io/DataEntryNameFilter.java +0 -54
  562. data/lib/proguard4.7/src/proguard/io/DataEntryObfuscator.java +0 -150
  563. data/lib/proguard4.7/src/proguard/io/DataEntryParentFilter.java +0 -51
  564. data/lib/proguard4.7/src/proguard/io/DataEntryPump.java +0 -43
  565. data/lib/proguard4.7/src/proguard/io/DataEntryReader.java +0 -38
  566. data/lib/proguard4.7/src/proguard/io/DataEntryRenamer.java +0 -104
  567. data/lib/proguard4.7/src/proguard/io/DataEntryRewriter.java +0 -148
  568. data/lib/proguard4.7/src/proguard/io/DataEntryWriter.java +0 -73
  569. data/lib/proguard4.7/src/proguard/io/DirectoryFilter.java +0 -58
  570. data/lib/proguard4.7/src/proguard/io/DirectoryPump.java +0 -78
  571. data/lib/proguard4.7/src/proguard/io/DirectoryWriter.java +0 -165
  572. data/lib/proguard4.7/src/proguard/io/FileDataEntry.java +0 -96
  573. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryReader.java +0 -90
  574. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryWriter.java +0 -125
  575. data/lib/proguard4.7/src/proguard/io/Finisher.java +0 -37
  576. data/lib/proguard4.7/src/proguard/io/JarReader.java +0 -75
  577. data/lib/proguard4.7/src/proguard/io/JarWriter.java +0 -235
  578. data/lib/proguard4.7/src/proguard/io/ManifestRewriter.java +0 -216
  579. data/lib/proguard4.7/src/proguard/io/NameFilter.java +0 -83
  580. data/lib/proguard4.7/src/proguard/io/ParentDataEntryWriter.java +0 -75
  581. data/lib/proguard4.7/src/proguard/io/RenamedDataEntry.java +0 -83
  582. data/lib/proguard4.7/src/proguard/io/ZipDataEntry.java +0 -98
  583. data/lib/proguard4.7/src/proguard/io/package.html +0 -4
  584. data/lib/proguard4.7/src/proguard/obfuscate/AttributeShrinker.java +0 -120
  585. data/lib/proguard4.7/src/proguard/obfuscate/AttributeUsageMarker.java +0 -71
  586. data/lib/proguard4.7/src/proguard/obfuscate/ClassObfuscator.java +0 -533
  587. data/lib/proguard4.7/src/proguard/obfuscate/ClassRenamer.java +0 -109
  588. data/lib/proguard4.7/src/proguard/obfuscate/DictionaryNameFactory.java +0 -189
  589. data/lib/proguard4.7/src/proguard/obfuscate/MapCleaner.java +0 -57
  590. data/lib/proguard4.7/src/proguard/obfuscate/MappingKeeper.java +0 -177
  591. data/lib/proguard4.7/src/proguard/obfuscate/MappingPrinter.java +0 -147
  592. data/lib/proguard4.7/src/proguard/obfuscate/MappingProcessor.java +0 -79
  593. data/lib/proguard4.7/src/proguard/obfuscate/MappingReader.java +0 -199
  594. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCleaner.java +0 -60
  595. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCollector.java +0 -106
  596. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameConflictFixer.java +0 -159
  597. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameFilter.java +0 -120
  598. data/lib/proguard4.7/src/proguard/obfuscate/MemberObfuscator.java +0 -230
  599. data/lib/proguard4.7/src/proguard/obfuscate/MemberSpecialNameFilter.java +0 -101
  600. data/lib/proguard4.7/src/proguard/obfuscate/MultiMappingProcessor.java +0 -96
  601. data/lib/proguard4.7/src/proguard/obfuscate/NameFactory.java +0 -34
  602. data/lib/proguard4.7/src/proguard/obfuscate/NameFactoryResetter.java +0 -59
  603. data/lib/proguard4.7/src/proguard/obfuscate/NameMarker.java +0 -166
  604. data/lib/proguard4.7/src/proguard/obfuscate/NumericNameFactory.java +0 -49
  605. data/lib/proguard4.7/src/proguard/obfuscate/Obfuscator.java +0 -445
  606. data/lib/proguard4.7/src/proguard/obfuscate/ParameterNameMarker.java +0 -128
  607. data/lib/proguard4.7/src/proguard/obfuscate/SimpleNameFactory.java +0 -156
  608. data/lib/proguard4.7/src/proguard/obfuscate/SourceFileRenamer.java +0 -84
  609. data/lib/proguard4.7/src/proguard/obfuscate/SpecialNameFactory.java +0 -83
  610. data/lib/proguard4.7/src/proguard/obfuscate/package.html +0 -3
  611. data/lib/proguard4.7/src/proguard/optimize/BootstrapMethodArgumentShrinker.java +0 -103
  612. data/lib/proguard4.7/src/proguard/optimize/ChangedCodePrinter.java +0 -297
  613. data/lib/proguard4.7/src/proguard/optimize/ConstantMemberFilter.java +0 -77
  614. data/lib/proguard4.7/src/proguard/optimize/ConstantParameterFilter.java +0 -79
  615. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerFixer.java +0 -215
  616. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerInvocationFixer.java +0 -161
  617. data/lib/proguard4.7/src/proguard/optimize/KeepMarker.java +0 -95
  618. data/lib/proguard4.7/src/proguard/optimize/KeptClassFilter.java +0 -69
  619. data/lib/proguard4.7/src/proguard/optimize/KeptMemberFilter.java +0 -88
  620. data/lib/proguard4.7/src/proguard/optimize/MemberDescriptorSpecializer.java +0 -138
  621. data/lib/proguard4.7/src/proguard/optimize/MethodDescriptorShrinker.java +0 -317
  622. data/lib/proguard4.7/src/proguard/optimize/MethodStaticizer.java +0 -87
  623. data/lib/proguard4.7/src/proguard/optimize/OptimizationInfoMemberFilter.java +0 -94
  624. data/lib/proguard4.7/src/proguard/optimize/Optimizer.java +0 -963
  625. data/lib/proguard4.7/src/proguard/optimize/ParameterShrinker.java +0 -146
  626. data/lib/proguard4.7/src/proguard/optimize/TailRecursionSimplifier.java +0 -356
  627. data/lib/proguard4.7/src/proguard/optimize/WriteOnlyFieldFilter.java +0 -65
  628. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationShrinker.java +0 -2082
  629. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationSimplifier.java +0 -973
  630. data/lib/proguard4.7/src/proguard/optimize/evaluation/LivenessAnalyzer.java +0 -526
  631. data/lib/proguard4.7/src/proguard/optimize/evaluation/LoadingInvocationUnit.java +0 -195
  632. data/lib/proguard4.7/src/proguard/optimize/evaluation/PartialEvaluator.java +0 -1282
  633. data/lib/proguard4.7/src/proguard/optimize/evaluation/StoringInvocationUnit.java +0 -207
  634. data/lib/proguard4.7/src/proguard/optimize/evaluation/TracedBranchUnit.java +0 -59
  635. data/lib/proguard4.7/src/proguard/optimize/evaluation/VariableOptimizer.java +0 -345
  636. data/lib/proguard4.7/src/proguard/optimize/evaluation/package.html +0 -4
  637. data/lib/proguard4.7/src/proguard/optimize/info/AccessMethodMarker.java +0 -202
  638. data/lib/proguard4.7/src/proguard/optimize/info/BackwardBranchMarker.java +0 -90
  639. data/lib/proguard4.7/src/proguard/optimize/info/CatchExceptionMarker.java +0 -69
  640. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassFilter.java +0 -63
  641. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassMarker.java +0 -64
  642. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfo.java +0 -165
  643. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfoSetter.java +0 -47
  644. data/lib/proguard4.7/src/proguard/optimize/info/DotClassFilter.java +0 -63
  645. data/lib/proguard4.7/src/proguard/optimize/info/DotClassMarker.java +0 -96
  646. data/lib/proguard4.7/src/proguard/optimize/info/ExceptionInstructionChecker.java +0 -193
  647. data/lib/proguard4.7/src/proguard/optimize/info/FieldOptimizationInfo.java +0 -204
  648. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassFilter.java +0 -63
  649. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassMarker.java +0 -93
  650. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassFilter.java +0 -62
  651. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassMarker.java +0 -93
  652. data/lib/proguard4.7/src/proguard/optimize/info/MemberOptimizationInfoSetter.java +0 -59
  653. data/lib/proguard4.7/src/proguard/optimize/info/MethodInvocationMarker.java +0 -107
  654. data/lib/proguard4.7/src/proguard/optimize/info/MethodOptimizationInfo.java +0 -302
  655. data/lib/proguard4.7/src/proguard/optimize/info/NoSideEffectMethodMarker.java +0 -91
  656. data/lib/proguard4.7/src/proguard/optimize/info/NonPrivateMemberMarker.java +0 -171
  657. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberContainingClassMarker.java +0 -85
  658. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberInvokingClassMarker.java +0 -129
  659. data/lib/proguard4.7/src/proguard/optimize/info/ParameterUsageMarker.java +0 -285
  660. data/lib/proguard4.7/src/proguard/optimize/info/ReadWriteFieldMarker.java +0 -163
  661. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectInstructionChecker.java +0 -245
  662. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectMethodMarker.java +0 -175
  663. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassFilter.java +0 -62
  664. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassMarker.java +0 -65
  665. data/lib/proguard4.7/src/proguard/optimize/info/SuperInvocationMarker.java +0 -93
  666. data/lib/proguard4.7/src/proguard/optimize/info/VariableUsageMarker.java +0 -96
  667. data/lib/proguard4.7/src/proguard/optimize/info/package.html +0 -4
  668. data/lib/proguard4.7/src/proguard/optimize/package.html +0 -4
  669. data/lib/proguard4.7/src/proguard/optimize/peephole/BranchTargetFinder.java +0 -687
  670. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassFinalizer.java +0 -84
  671. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassMerger.java +0 -576
  672. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoCommonCodeReplacer.java +0 -266
  673. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoGotoReplacer.java +0 -115
  674. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoReturnReplacer.java +0 -115
  675. data/lib/proguard4.7/src/proguard/optimize/peephole/HorizontalClassMerger.java +0 -90
  676. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceConstants.java +0 -4424
  677. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceReplacer.java +0 -420
  678. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequencesReplacer.java +0 -138
  679. data/lib/proguard4.7/src/proguard/optimize/peephole/MemberPrivatizer.java +0 -103
  680. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodFinalizer.java +0 -93
  681. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodInliner.java +0 -597
  682. data/lib/proguard4.7/src/proguard/optimize/peephole/NopRemover.java +0 -89
  683. data/lib/proguard4.7/src/proguard/optimize/peephole/PeepholeOptimizer.java +0 -103
  684. data/lib/proguard4.7/src/proguard/optimize/peephole/ReachableCodeMarker.java +0 -262
  685. data/lib/proguard4.7/src/proguard/optimize/peephole/RetargetedInnerClassAttributeRemover.java +0 -170
  686. data/lib/proguard4.7/src/proguard/optimize/peephole/TargetClassChanger.java +0 -455
  687. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableCodeRemover.java +0 -143
  688. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableExceptionRemover.java +0 -163
  689. data/lib/proguard4.7/src/proguard/optimize/peephole/VariableShrinker.java +0 -129
  690. data/lib/proguard4.7/src/proguard/optimize/peephole/VerticalClassMerger.java +0 -88
  691. data/lib/proguard4.7/src/proguard/optimize/peephole/package.html +0 -3
  692. data/lib/proguard4.7/src/proguard/package.html +0 -5
  693. data/lib/proguard4.7/src/proguard/preverify/CodePreverifier.java +0 -611
  694. data/lib/proguard4.7/src/proguard/preverify/CodeSubroutineInliner.java +0 -406
  695. data/lib/proguard4.7/src/proguard/preverify/Preverifier.java +0 -73
  696. data/lib/proguard4.7/src/proguard/preverify/SubroutineInliner.java +0 -73
  697. data/lib/proguard4.7/src/proguard/retrace/MANIFEST.MF +0 -3
  698. data/lib/proguard4.7/src/proguard/retrace/ReTrace.java +0 -749
  699. data/lib/proguard4.7/src/proguard/retrace/package.html +0 -4
  700. data/lib/proguard4.7/src/proguard/shrink/AnnotationUsageMarker.java +0 -333
  701. data/lib/proguard4.7/src/proguard/shrink/ClassShrinker.java +0 -458
  702. data/lib/proguard4.7/src/proguard/shrink/InnerUsageMarker.java +0 -174
  703. data/lib/proguard4.7/src/proguard/shrink/InterfaceUsageMarker.java +0 -152
  704. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMark.java +0 -183
  705. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMarker.java +0 -277
  706. data/lib/proguard4.7/src/proguard/shrink/ShortestUsagePrinter.java +0 -210
  707. data/lib/proguard4.7/src/proguard/shrink/Shrinker.java +0 -181
  708. data/lib/proguard4.7/src/proguard/shrink/UsageMarker.java +0 -1036
  709. data/lib/proguard4.7/src/proguard/shrink/UsagePrinter.java +0 -177
  710. data/lib/proguard4.7/src/proguard/shrink/UsedClassFilter.java +0 -74
  711. data/lib/proguard4.7/src/proguard/shrink/UsedMemberFilter.java +0 -93
  712. data/lib/proguard4.7/src/proguard/shrink/package.html +0 -3
  713. data/lib/proguard4.7/src/proguard/util/AndMatcher.java +0 -49
  714. data/lib/proguard4.7/src/proguard/util/ClassNameParser.java +0 -216
  715. data/lib/proguard4.7/src/proguard/util/ConstantMatcher.java +0 -48
  716. data/lib/proguard4.7/src/proguard/util/EmptyStringMatcher.java +0 -36
  717. data/lib/proguard4.7/src/proguard/util/ExtensionMatcher.java +0 -63
  718. data/lib/proguard4.7/src/proguard/util/FileNameParser.java +0 -121
  719. data/lib/proguard4.7/src/proguard/util/FixedStringMatcher.java +0 -56
  720. data/lib/proguard4.7/src/proguard/util/ListMatcher.java +0 -69
  721. data/lib/proguard4.7/src/proguard/util/ListParser.java +0 -137
  722. data/lib/proguard4.7/src/proguard/util/ListUtil.java +0 -180
  723. data/lib/proguard4.7/src/proguard/util/NameParser.java +0 -106
  724. data/lib/proguard4.7/src/proguard/util/NotMatcher.java +0 -46
  725. data/lib/proguard4.7/src/proguard/util/OrMatcher.java +0 -49
  726. data/lib/proguard4.7/src/proguard/util/SettableMatcher.java +0 -46
  727. data/lib/proguard4.7/src/proguard/util/StringMatcher.java +0 -38
  728. data/lib/proguard4.7/src/proguard/util/StringParser.java +0 -35
  729. data/lib/proguard4.7/src/proguard/util/VariableStringMatcher.java +0 -126
  730. data/lib/proguard4.7/src/proguard/util/package.html +0 -3
  731. data/lib/proguard4.7/src/proguard/wtk/ProGuardObfuscator.java +0 -141
  732. data/lib/proguard4.7/src/proguard/wtk/default.pro +0 -114
  733. data/lib/proguard4.7/src/proguard/wtk/package.html +0 -3
@@ -1,87 +0,0 @@
1
- /*
2
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
3
- * of Java bytecode.
4
- *
5
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; either version 2 of the License, or (at your option)
10
- * any later version.
11
- *
12
- * This program is distributed in the hope that it will be useful, but WITHOUT
13
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15
- * more details.
16
- *
17
- * You should have received a copy of the GNU General Public License along
18
- * with this program; if not, write to the Free Software Foundation, Inc.,
19
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- */
21
- package proguard.optimize;
22
-
23
- import proguard.classfile.*;
24
- import proguard.classfile.attribute.visitor.AttributeVisitor;
25
- import proguard.classfile.editor.MethodInvocationFixer;
26
- import proguard.classfile.util.SimplifiedVisitor;
27
- import proguard.classfile.visitor.MemberVisitor;
28
- import proguard.optimize.info.ParameterUsageMarker;
29
- import proguard.optimize.peephole.VariableShrinker;
30
-
31
- /**
32
- * This MemberVisitor makes all methods that it visits static, if their 'this'
33
- * parameters are unused.
34
- *
35
- * @see ParameterUsageMarker
36
- * @see MethodInvocationFixer
37
- * @see VariableShrinker
38
- * @author Eric Lafortune
39
- */
40
- public class MethodStaticizer
41
- extends SimplifiedVisitor
42
- implements MemberVisitor,
43
- AttributeVisitor
44
- {
45
- private final MemberVisitor extraStaticMemberVisitor;
46
-
47
-
48
- /**
49
- * Creates a new MethodStaticizer.
50
- */
51
- public MethodStaticizer()
52
- {
53
- this(null);
54
- }
55
-
56
-
57
- /**
58
- * Creates a new MethodStaticizer with an extra visitor.
59
- * @param extraStaticMemberVisitor an optional extra visitor for all
60
- * methods that have been made static.
61
- */
62
- public MethodStaticizer(MemberVisitor extraStaticMemberVisitor)
63
- {
64
- this.extraStaticMemberVisitor = extraStaticMemberVisitor;
65
- }
66
-
67
-
68
- // Implementations for MemberVisitor.
69
-
70
- public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod)
71
- {
72
- // Is the 'this' parameter being used?
73
- if (!ParameterUsageMarker.isParameterUsed(programMethod, 0))
74
- {
75
- // Make the method static.
76
- programMethod.u2accessFlags =
77
- (programMethod.getAccessFlags() & ~ClassConstants.INTERNAL_ACC_FINAL) |
78
- ClassConstants.INTERNAL_ACC_STATIC;
79
-
80
- // Visit the method, if required.
81
- if (extraStaticMemberVisitor != null)
82
- {
83
- extraStaticMemberVisitor.visitProgramMethod(programClass, programMethod);
84
- }
85
- }
86
- }
87
- }
@@ -1,94 +0,0 @@
1
- /*
2
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
3
- * of Java bytecode.
4
- *
5
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; either version 2 of the License, or (at your option)
10
- * any later version.
11
- *
12
- * This program is distributed in the hope that it will be useful, but WITHOUT
13
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15
- * more details.
16
- *
17
- * You should have received a copy of the GNU General Public License along
18
- * with this program; if not, write to the Free Software Foundation, Inc.,
19
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- */
21
- package proguard.optimize;
22
-
23
- import proguard.classfile.*;
24
- import proguard.classfile.visitor.MemberVisitor;
25
- import proguard.optimize.info.*;
26
-
27
- /**
28
- * This <code>MemberVisitor</code> delegates its visits to another given
29
- * <code>MemberVisitor</code>, but only when the visited member has optimization
30
- * info.
31
- *
32
- * @see FieldOptimizationInfo
33
- * @see MethodOptimizationInfo
34
- * @author Eric Lafortune
35
- */
36
- public class OptimizationInfoMemberFilter
37
- implements MemberVisitor
38
- {
39
- private final MemberVisitor memberVisitor;
40
-
41
-
42
- /**
43
- * Creates a new OptimizationInfoMemberFilter.
44
- * @param memberVisitor the <code>MemberVisitor</code> to which visits will
45
- * be delegated.
46
- */
47
- public OptimizationInfoMemberFilter(MemberVisitor memberVisitor)
48
- {
49
- this.memberVisitor = memberVisitor;
50
- }
51
-
52
-
53
- // Implementations for MemberVisitor.
54
-
55
-
56
- public void visitProgramField(ProgramClass programClass, ProgramField programField)
57
- {
58
- // Does the field have optimization info?
59
- if (FieldOptimizationInfo.getFieldOptimizationInfo(programField) != null)
60
- {
61
- memberVisitor.visitProgramField(programClass, programField);
62
- }
63
- }
64
-
65
-
66
- public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField)
67
- {
68
- // Does the field have optimization info?
69
- if (FieldOptimizationInfo.getFieldOptimizationInfo(libraryField) != null)
70
- {
71
- memberVisitor.visitLibraryField(libraryClass, libraryField);
72
- }
73
- }
74
-
75
-
76
- public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod)
77
- {
78
- // Does the method have optimization info?
79
- if (MethodOptimizationInfo.getMethodOptimizationInfo(programMethod) != null)
80
- {
81
- memberVisitor.visitProgramMethod(programClass, programMethod);
82
- }
83
- }
84
-
85
-
86
- public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod)
87
- {
88
- // Does the method have optimization info?
89
- if (MethodOptimizationInfo.getMethodOptimizationInfo(libraryMethod) != null)
90
- {
91
- memberVisitor.visitLibraryMethod(libraryClass, libraryMethod);
92
- }
93
- }
94
- }
@@ -1,963 +0,0 @@
1
- /*
2
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
3
- * of Java bytecode.
4
- *
5
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; either version 2 of the License, or (at your option)
10
- * any later version.
11
- *
12
- * This program is distributed in the hope that it will be useful, but WITHOUT
13
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15
- * more details.
16
- *
17
- * You should have received a copy of the GNU General Public License along
18
- * with this program; if not, write to the Free Software Foundation, Inc.,
19
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- */
21
- package proguard.optimize;
22
-
23
- import proguard.*;
24
- import proguard.classfile.*;
25
- import proguard.classfile.attribute.visitor.*;
26
- import proguard.classfile.constant.Constant;
27
- import proguard.classfile.constant.visitor.*;
28
- import proguard.classfile.editor.*;
29
- import proguard.classfile.instruction.visitor.*;
30
- import proguard.classfile.util.MethodLinker;
31
- import proguard.classfile.visitor.*;
32
- import proguard.evaluation.*;
33
- import proguard.evaluation.value.*;
34
- import proguard.optimize.evaluation.*;
35
- import proguard.optimize.info.*;
36
- import proguard.optimize.peephole.*;
37
- import proguard.util.*;
38
-
39
- import java.io.IOException;
40
- import java.util.*;
41
-
42
- /**
43
- * This class optimizes class pools according to a given configuration.
44
- *
45
- * @author Eric Lafortune
46
- */
47
- public class Optimizer
48
- {
49
- private static final String CLASS_MARKING_FINAL = "class/marking/final";
50
- private static final String CLASS_MERGING_VERTICAL = "class/merging/vertical";
51
- private static final String CLASS_MERGING_HORIZONTAL = "class/merging/horizontal";
52
- private static final String FIELD_REMOVAL_WRITEONLY = "field/removal/writeonly";
53
- private static final String FIELD_MARKING_PRIVATE = "field/marking/private";
54
- private static final String FIELD_PROPAGATION_VALUE = "field/propagation/value";
55
- private static final String METHOD_MARKING_PRIVATE = "method/marking/private";
56
- private static final String METHOD_MARKING_STATIC = "method/marking/static";
57
- private static final String METHOD_MARKING_FINAL = "method/marking/final";
58
- private static final String METHOD_REMOVAL_PARAMETER = "method/removal/parameter";
59
- private static final String METHOD_PROPAGATION_PARAMETER = "method/propagation/parameter";
60
- private static final String METHOD_PROPAGATION_RETURNVALUE = "method/propagation/returnvalue";
61
- private static final String METHOD_INLINING_SHORT = "method/inlining/short";
62
- private static final String METHOD_INLINING_UNIQUE = "method/inlining/unique";
63
- private static final String METHOD_INLINING_TAILRECURSION = "method/inlining/tailrecursion";
64
- private static final String CODE_MERGING = "code/merging";
65
- private static final String CODE_SIMPLIFICATION_VARIABLE = "code/simplification/variable";
66
- private static final String CODE_SIMPLIFICATION_ARITHMETIC = "code/simplification/arithmetic";
67
- private static final String CODE_SIMPLIFICATION_CAST = "code/simplification/cast";
68
- private static final String CODE_SIMPLIFICATION_FIELD = "code/simplification/field";
69
- private static final String CODE_SIMPLIFICATION_BRANCH = "code/simplification/branch";
70
- private static final String CODE_SIMPLIFICATION_STRING = "code/simplification/string";
71
- private static final String CODE_SIMPLIFICATION_ADVANCED = "code/simplification/advanced";
72
- private static final String CODE_REMOVAL_ADVANCED = "code/removal/advanced";
73
- private static final String CODE_REMOVAL_SIMPLE = "code/removal/simple";
74
- private static final String CODE_REMOVAL_VARIABLE = "code/removal/variable";
75
- private static final String CODE_REMOVAL_EXCEPTION = "code/removal/exception";
76
- private static final String CODE_ALLOCATION_VARIABLE = "code/allocation/variable";
77
-
78
-
79
- public static final String[] OPTIMIZATION_NAMES = new String[]
80
- {
81
- CLASS_MARKING_FINAL,
82
- CLASS_MERGING_VERTICAL,
83
- CLASS_MERGING_HORIZONTAL,
84
- FIELD_REMOVAL_WRITEONLY,
85
- FIELD_MARKING_PRIVATE,
86
- FIELD_PROPAGATION_VALUE,
87
- METHOD_MARKING_PRIVATE,
88
- METHOD_MARKING_STATIC,
89
- METHOD_MARKING_FINAL,
90
- METHOD_REMOVAL_PARAMETER,
91
- METHOD_PROPAGATION_PARAMETER,
92
- METHOD_PROPAGATION_RETURNVALUE,
93
- METHOD_INLINING_SHORT,
94
- METHOD_INLINING_UNIQUE,
95
- METHOD_INLINING_TAILRECURSION,
96
- CODE_MERGING,
97
- CODE_SIMPLIFICATION_VARIABLE,
98
- CODE_SIMPLIFICATION_ARITHMETIC,
99
- CODE_SIMPLIFICATION_CAST,
100
- CODE_SIMPLIFICATION_FIELD,
101
- CODE_SIMPLIFICATION_BRANCH,
102
- CODE_SIMPLIFICATION_STRING,
103
- CODE_SIMPLIFICATION_ADVANCED,
104
- CODE_REMOVAL_ADVANCED,
105
- CODE_REMOVAL_SIMPLE,
106
- CODE_REMOVAL_VARIABLE,
107
- CODE_REMOVAL_EXCEPTION,
108
- CODE_ALLOCATION_VARIABLE,
109
- };
110
-
111
-
112
- private final Configuration configuration;
113
-
114
-
115
- /**
116
- * Creates a new Optimizer.
117
- */
118
- public Optimizer(Configuration configuration)
119
- {
120
- this.configuration = configuration;
121
- }
122
-
123
-
124
- /**
125
- * Performs optimization of the given program class pool.
126
- */
127
- public boolean execute(ClassPool programClassPool,
128
- ClassPool libraryClassPool) throws IOException
129
- {
130
- // Check if we have at least some keep commands.
131
- if (configuration.keep == null &&
132
- configuration.applyMapping == null &&
133
- configuration.printMapping == null)
134
- {
135
- throw new IOException("You have to specify '-keep' options for the optimization step.");
136
- }
137
-
138
- // Create a matcher for filtering optimizations.
139
- StringMatcher filter = configuration.optimizations != null ?
140
- new ListParser(new NameParser()).parse(configuration.optimizations) :
141
- new ConstantMatcher(true);
142
-
143
- boolean classMarkingFinal = filter.matches(CLASS_MARKING_FINAL);
144
- boolean classMergingVertical = filter.matches(CLASS_MERGING_VERTICAL);
145
- boolean classMergingHorizontal = filter.matches(CLASS_MERGING_HORIZONTAL);
146
- boolean fieldRemovalWriteonly = filter.matches(FIELD_REMOVAL_WRITEONLY);
147
- boolean fieldMarkingPrivate = filter.matches(FIELD_MARKING_PRIVATE);
148
- boolean fieldPropagationValue = filter.matches(FIELD_PROPAGATION_VALUE);
149
- boolean methodMarkingPrivate = filter.matches(METHOD_MARKING_PRIVATE);
150
- boolean methodMarkingStatic = filter.matches(METHOD_MARKING_STATIC);
151
- boolean methodMarkingFinal = filter.matches(METHOD_MARKING_FINAL);
152
- boolean methodRemovalParameter = filter.matches(METHOD_REMOVAL_PARAMETER);
153
- boolean methodPropagationParameter = filter.matches(METHOD_PROPAGATION_PARAMETER);
154
- boolean methodPropagationReturnvalue = filter.matches(METHOD_PROPAGATION_RETURNVALUE);
155
- boolean methodInliningShort = filter.matches(METHOD_INLINING_SHORT);
156
- boolean methodInliningUnique = filter.matches(METHOD_INLINING_UNIQUE);
157
- boolean methodInliningTailrecursion = filter.matches(METHOD_INLINING_TAILRECURSION);
158
- boolean codeMerging = filter.matches(CODE_MERGING);
159
- boolean codeSimplificationVariable = filter.matches(CODE_SIMPLIFICATION_VARIABLE);
160
- boolean codeSimplificationArithmetic = filter.matches(CODE_SIMPLIFICATION_ARITHMETIC);
161
- boolean codeSimplificationCast = filter.matches(CODE_SIMPLIFICATION_CAST);
162
- boolean codeSimplificationField = filter.matches(CODE_SIMPLIFICATION_FIELD);
163
- boolean codeSimplificationBranch = filter.matches(CODE_SIMPLIFICATION_BRANCH);
164
- boolean codeSimplificationString = filter.matches(CODE_SIMPLIFICATION_STRING);
165
- boolean codeSimplificationAdvanced = filter.matches(CODE_SIMPLIFICATION_ADVANCED);
166
- boolean codeRemovalAdvanced = filter.matches(CODE_REMOVAL_ADVANCED);
167
- boolean codeRemovalSimple = filter.matches(CODE_REMOVAL_SIMPLE);
168
- boolean codeRemovalVariable = filter.matches(CODE_REMOVAL_VARIABLE);
169
- boolean codeRemovalException = filter.matches(CODE_REMOVAL_EXCEPTION);
170
- boolean codeAllocationVariable = filter.matches(CODE_ALLOCATION_VARIABLE);
171
-
172
- // Create counters to count the numbers of optimizations.
173
- ClassCounter classMarkingFinalCounter = new ClassCounter();
174
- ClassCounter classMergingVerticalCounter = new ClassCounter();
175
- ClassCounter classMergingHorizontalCounter = new ClassCounter();
176
- MemberCounter fieldRemovalWriteonlyCounter = new MemberCounter();
177
- MemberCounter fieldMarkingPrivateCounter = new MemberCounter();
178
- MemberCounter fieldPropagationValueCounter = new MemberCounter();
179
- MemberCounter methodMarkingPrivateCounter = new MemberCounter();
180
- MemberCounter methodMarkingStaticCounter = new MemberCounter();
181
- MemberCounter methodMarkingFinalCounter = new MemberCounter();
182
- MemberCounter methodRemovalParameterCounter = new MemberCounter();
183
- MemberCounter methodPropagationParameterCounter = new MemberCounter();
184
- MemberCounter methodPropagationReturnvalueCounter = new MemberCounter();
185
- InstructionCounter methodInliningShortCounter = new InstructionCounter();
186
- InstructionCounter methodInliningUniqueCounter = new InstructionCounter();
187
- InstructionCounter methodInliningTailrecursionCounter = new InstructionCounter();
188
- InstructionCounter codeMergingCounter = new InstructionCounter();
189
- InstructionCounter codeSimplificationVariableCounter = new InstructionCounter();
190
- InstructionCounter codeSimplificationArithmeticCounter = new InstructionCounter();
191
- InstructionCounter codeSimplificationCastCounter = new InstructionCounter();
192
- InstructionCounter codeSimplificationFieldCounter = new InstructionCounter();
193
- InstructionCounter codeSimplificationBranchCounter = new InstructionCounter();
194
- InstructionCounter codeSimplificationStringCounter = new InstructionCounter();
195
- InstructionCounter codeSimplificationAdvancedCounter = new InstructionCounter();
196
- InstructionCounter deletedCounter = new InstructionCounter();
197
- InstructionCounter addedCounter = new InstructionCounter();
198
- MemberCounter codeRemovalVariableCounter = new MemberCounter();
199
- ExceptionCounter codeRemovalExceptionCounter = new ExceptionCounter();
200
- MemberCounter codeAllocationVariableCounter = new MemberCounter();
201
- MemberCounter initializerFixCounter1 = new MemberCounter();
202
- MemberCounter initializerFixCounter2 = new MemberCounter();
203
-
204
- // Some optimizations are required by other optimizations.
205
- codeSimplificationAdvanced =
206
- codeSimplificationAdvanced ||
207
- fieldPropagationValue ||
208
- methodPropagationParameter ||
209
- methodPropagationReturnvalue;
210
-
211
- codeRemovalAdvanced =
212
- codeRemovalAdvanced ||
213
- fieldRemovalWriteonly ||
214
- methodMarkingStatic ||
215
- methodRemovalParameter;
216
-
217
- codeRemovalSimple =
218
- codeRemovalSimple ||
219
- codeSimplificationBranch;
220
-
221
- codeRemovalException =
222
- codeRemovalException ||
223
- codeRemovalAdvanced ||
224
- codeRemovalSimple;
225
-
226
- // Clean up any old visitor info.
227
- programClassPool.classesAccept(new ClassCleaner());
228
- libraryClassPool.classesAccept(new ClassCleaner());
229
-
230
- // Link all methods that should get the same optimization info.
231
- programClassPool.classesAccept(new BottomClassFilter(
232
- new MethodLinker()));
233
- libraryClassPool.classesAccept(new BottomClassFilter(
234
- new MethodLinker()));
235
-
236
- // Create a visitor for marking the seeds.
237
- KeepMarker keepMarker = new KeepMarker();
238
- ClassPoolVisitor classPoolvisitor =
239
- ClassSpecificationVisitorFactory.createClassPoolVisitor(configuration.keep,
240
- keepMarker,
241
- keepMarker,
242
- false,
243
- true,
244
- false);
245
- // Mark the seeds.
246
- programClassPool.accept(classPoolvisitor);
247
- libraryClassPool.accept(classPoolvisitor);
248
-
249
- // All library classes and library class members remain unchanged.
250
- libraryClassPool.classesAccept(keepMarker);
251
- libraryClassPool.classesAccept(new AllMemberVisitor(keepMarker));
252
-
253
- // We also keep all classes that are involved in .class constructs.
254
- programClassPool.classesAccept(
255
- new AllMethodVisitor(
256
- new AllAttributeVisitor(
257
- new AllInstructionVisitor(
258
- new DotClassClassVisitor(keepMarker)))));
259
-
260
- // We also keep all classes that are accessed dynamically.
261
- programClassPool.classesAccept(
262
- new AllConstantVisitor(
263
- new ConstantTagFilter(ClassConstants.CONSTANT_String,
264
- new ReferencedClassVisitor(keepMarker))));
265
-
266
- // We also keep all class members that are accessed dynamically.
267
- programClassPool.classesAccept(
268
- new AllConstantVisitor(
269
- new ConstantTagFilter(ClassConstants.CONSTANT_String,
270
- new ReferencedMemberVisitor(keepMarker))));
271
-
272
- // We also keep all bootstrap method signatures.
273
- programClassPool.classesAccept(
274
- new ClassVersionFilter(ClassConstants.INTERNAL_CLASS_VERSION_1_7,
275
- new AllAttributeVisitor(
276
- new AttributeNameFilter(ClassConstants.ATTR_BootstrapMethods,
277
- new AllBootstrapMethodInfoVisitor(
278
- new BootstrapMethodHandleTraveler(
279
- new MethodrefTraveler(
280
- new ReferencedMemberVisitor(keepMarker))))))));
281
-
282
- // Attach some optimization info to all classes and class members, so
283
- // it can be filled out later.
284
- programClassPool.classesAccept(new ClassOptimizationInfoSetter());
285
-
286
- programClassPool.classesAccept(new AllMemberVisitor(
287
- new MemberOptimizationInfoSetter()));
288
-
289
- if (configuration.assumeNoSideEffects != null)
290
- {
291
- // Create a visitor for marking methods that don't have any side effects.
292
- NoSideEffectMethodMarker noSideEffectMethodMarker = new NoSideEffectMethodMarker();
293
- ClassPoolVisitor noClassPoolvisitor =
294
- ClassSpecificationVisitorFactory.createClassPoolVisitor(configuration.assumeNoSideEffects,
295
- null,
296
- noSideEffectMethodMarker);
297
-
298
- // Mark the seeds.
299
- programClassPool.accept(noClassPoolvisitor);
300
- libraryClassPool.accept(noClassPoolvisitor);
301
- }
302
-
303
- if (classMarkingFinal)
304
- {
305
- // Make classes final, whereever possible.
306
- programClassPool.classesAccept(
307
- new ClassFinalizer(classMarkingFinalCounter));
308
- }
309
-
310
- if (methodMarkingFinal)
311
- {
312
- // Make methods final, whereever possible.
313
- programClassPool.classesAccept(
314
- new AllMethodVisitor(
315
- new MethodFinalizer(methodMarkingFinalCounter)));
316
- }
317
-
318
- if (fieldRemovalWriteonly)
319
- {
320
- // Mark all fields that are write-only.
321
- programClassPool.classesAccept(
322
- new AllMethodVisitor(
323
- new AllAttributeVisitor(
324
- new AllInstructionVisitor(
325
- new ReadWriteFieldMarker()))));
326
-
327
- // Count the write-only fields.
328
- programClassPool.classesAccept(
329
- new AllFieldVisitor(
330
- new WriteOnlyFieldFilter(fieldRemovalWriteonlyCounter)));
331
- }
332
- else
333
- {
334
- // Mark all fields as read/write.
335
- programClassPool.classesAccept(
336
- new AllFieldVisitor(
337
- new ReadWriteFieldMarker()));
338
- }
339
-
340
- // Mark all used parameters, including the 'this' parameters.
341
- programClassPool.classesAccept(
342
- new AllMethodVisitor(
343
- new OptimizationInfoMemberFilter(
344
- new ParameterUsageMarker(!methodMarkingStatic,
345
- !methodRemovalParameter))));
346
-
347
- // Mark all classes that have static initializers.
348
- programClassPool.classesAccept(new StaticInitializerContainingClassMarker());
349
-
350
- // Mark all methods that have side effects.
351
- programClassPool.accept(new SideEffectMethodMarker());
352
-
353
- // System.out.println("Optimizer.execute: before evaluation simplification");
354
- // programClassPool.classAccept("abc/Def", new NamedMethodVisitor("abc", null, new ClassPrinter()));
355
-
356
- // Perform partial evaluation for filling out fields, method parameters,
357
- // and method return values.
358
- ValueFactory valueFactory = new IdentifiedValueFactory();
359
-
360
- if (fieldPropagationValue ||
361
- methodPropagationParameter ||
362
- methodPropagationReturnvalue)
363
- {
364
- // Fill out fields, method parameters, and return values, so they
365
- // can be propagated.
366
- InvocationUnit storingInvocationUnit =
367
- new StoringInvocationUnit(valueFactory,
368
- fieldPropagationValue,
369
- methodPropagationParameter,
370
- methodPropagationReturnvalue);
371
-
372
- programClassPool.classesAccept(
373
- new AllMethodVisitor(
374
- new AllAttributeVisitor(
375
- new PartialEvaluator(valueFactory, storingInvocationUnit, false))));
376
-
377
- if (fieldPropagationValue)
378
- {
379
- // Count the constant fields.
380
- programClassPool.classesAccept(
381
- new AllFieldVisitor(
382
- new ConstantMemberFilter(fieldPropagationValueCounter)));
383
- }
384
-
385
- if (methodPropagationParameter)
386
- {
387
- // Count the constant method parameters.
388
- programClassPool.classesAccept(
389
- new AllMethodVisitor(
390
- new ConstantParameterFilter(methodPropagationParameterCounter)));
391
- }
392
-
393
- if (methodPropagationReturnvalue)
394
- {
395
- // Count the constant method return values.
396
- programClassPool.classesAccept(
397
- new AllMethodVisitor(
398
- new ConstantMemberFilter(methodPropagationReturnvalueCounter)));
399
- }
400
- }
401
-
402
- InvocationUnit loadingInvocationUnit =
403
- new LoadingInvocationUnit(valueFactory,
404
- fieldPropagationValue,
405
- methodPropagationParameter,
406
- methodPropagationReturnvalue);
407
-
408
- if (codeSimplificationAdvanced)
409
- {
410
- // Simplify based on partial evaluation, propagating constant
411
- // field values, method parameter values, and return values.
412
- programClassPool.classesAccept(
413
- new AllMethodVisitor(
414
- new AllAttributeVisitor(
415
- new EvaluationSimplifier(
416
- new PartialEvaluator(valueFactory, loadingInvocationUnit, false),
417
- codeSimplificationAdvancedCounter))));
418
- }
419
-
420
- if (codeRemovalAdvanced)
421
- {
422
- // Remove code based on partial evaluation, also removing unused
423
- // parameters from method invocations, and making methods static
424
- // if possible.
425
- programClassPool.classesAccept(
426
- new AllMethodVisitor(
427
- new AllAttributeVisitor(
428
- new EvaluationShrinker(
429
- new PartialEvaluator(valueFactory, loadingInvocationUnit, !codeSimplificationAdvanced),
430
- deletedCounter, addedCounter))));
431
- }
432
-
433
- if (methodRemovalParameter)
434
- {
435
- // Shrink the parameters in the method descriptors.
436
- programClassPool.classesAccept(
437
- new AllMethodVisitor(
438
- new OptimizationInfoMemberFilter(
439
- new MethodDescriptorShrinker())));
440
- }
441
-
442
- if (methodMarkingStatic)
443
- {
444
- // Make all non-static methods that don't require the 'this'
445
- // parameter static.
446
- programClassPool.classesAccept(
447
- new AllMethodVisitor(
448
- new OptimizationInfoMemberFilter(
449
- new MemberAccessFilter(0, ClassConstants.INTERNAL_ACC_STATIC,
450
- new MethodStaticizer(methodMarkingStaticCounter)))));
451
- }
452
-
453
- if (methodRemovalParameter)
454
- {
455
- // Fix all references to class members.
456
- // This operation also updates the stack sizes.
457
- programClassPool.classesAccept(
458
- new MemberReferenceFixer());
459
-
460
- // Remove unused bootstrap method arguments.
461
- programClassPool.classesAccept(
462
- new AllAttributeVisitor(
463
- new AllBootstrapMethodInfoVisitor(
464
- new BootstrapMethodArgumentShrinker())));
465
- }
466
-
467
- if (methodRemovalParameter ||
468
- methodMarkingPrivate ||
469
- methodMarkingStatic)
470
- {
471
- // Remove all unused parameters from the byte code, shifting all
472
- // remaining variables.
473
- // This operation also updates the local variable frame sizes.
474
- programClassPool.classesAccept(
475
- new AllMethodVisitor(
476
- new AllAttributeVisitor(
477
- new ParameterShrinker(methodRemovalParameterCounter))));
478
- }
479
- else if (codeRemovalAdvanced)
480
- {
481
- // Just update the local variable frame sizes.
482
- programClassPool.classesAccept(
483
- new AllMethodVisitor(
484
- new AllAttributeVisitor(
485
- new StackSizeUpdater())));
486
- }
487
-
488
- if (methodRemovalParameter &&
489
- methodRemovalParameterCounter.getCount() > 0)
490
- {
491
- // Tweak the descriptors of duplicate initializers, due to removed
492
- // method parameters.
493
- programClassPool.classesAccept(
494
- new AllMethodVisitor(
495
- new DuplicateInitializerFixer(initializerFixCounter1)));
496
-
497
- if (initializerFixCounter1.getCount() > 0)
498
- {
499
- // Fix all invocations of tweaked initializers.
500
- programClassPool.classesAccept(
501
- new AllMethodVisitor(
502
- new AllAttributeVisitor(
503
- new DuplicateInitializerInvocationFixer(addedCounter))));
504
-
505
- // Fix all references to tweaked initializers.
506
- programClassPool.classesAccept(new MemberReferenceFixer());
507
- }
508
- }
509
-
510
- //// Specializing the class member descriptors seems to increase the
511
- //// class file size, on average.
512
- //// Specialize all class member descriptors.
513
- //programClassPool.classesAccept(new AllMemberVisitor(
514
- // new OptimizationInfoMemberFilter(
515
- // new MemberDescriptorSpecializer())));
516
- //
517
- //// Fix all references to classes, for MemberDescriptorSpecializer.
518
- //programClassPool.classesAccept(new AllMemberVisitor(
519
- // new OptimizationInfoMemberFilter(
520
- // new ClassReferenceFixer(true))));
521
-
522
- // Mark all classes with package visible members.
523
- // Mark all exception catches of methods.
524
- // Count all method invocations.
525
- // Mark super invocations and other access of methods.
526
- programClassPool.classesAccept(
527
- new MultiClassVisitor(
528
- new ClassVisitor[]
529
- {
530
- new PackageVisibleMemberContainingClassMarker(),
531
- new AllConstantVisitor(
532
- new PackageVisibleMemberInvokingClassMarker()),
533
- new AllMethodVisitor(
534
- new MultiMemberVisitor(
535
- new MemberVisitor[]
536
- {
537
- new AllAttributeVisitor(
538
- new MultiAttributeVisitor(
539
- new AttributeVisitor[]
540
- {
541
- new CatchExceptionMarker(),
542
- new AllInstructionVisitor(
543
- new MultiInstructionVisitor(
544
- new InstructionVisitor[]
545
- {
546
- new InstantiationClassMarker(),
547
- new InstanceofClassMarker(),
548
- new DotClassMarker(),
549
- new MethodInvocationMarker(),
550
- new SuperInvocationMarker(),
551
- new BackwardBranchMarker(),
552
- new AccessMethodMarker(),
553
- })),
554
- new AllExceptionInfoVisitor(
555
- new ExceptionHandlerConstantVisitor(
556
- new ReferencedClassVisitor(
557
- new CaughtClassMarker()))),
558
- })),
559
- })),
560
- }));
561
-
562
- if (classMergingVertical)
563
- {
564
- // Merge classes into their superclasses or interfaces.
565
- programClassPool.classesAccept(
566
- new VerticalClassMerger(configuration.allowAccessModification,
567
- configuration.mergeInterfacesAggressively,
568
- classMergingVerticalCounter));
569
- }
570
-
571
- if (classMergingHorizontal)
572
- {
573
- // Merge classes into their sibling classes.
574
- programClassPool.classesAccept(
575
- new HorizontalClassMerger(configuration.allowAccessModification,
576
- configuration.mergeInterfacesAggressively,
577
- classMergingHorizontalCounter));
578
- }
579
-
580
- if (classMergingVerticalCounter .getCount() > 0 ||
581
- classMergingHorizontalCounter.getCount() > 0)
582
- {
583
- // Clean up inner class attributes to avoid loops.
584
- programClassPool.classesAccept(new RetargetedInnerClassAttributeRemover());
585
-
586
- // Update references to merged classes.
587
- programClassPool.classesAccept(new TargetClassChanger());
588
- programClassPool.classesAccept(new ClassReferenceFixer(true));
589
- programClassPool.classesAccept(new MemberReferenceFixer());
590
-
591
- if (configuration.allowAccessModification)
592
- {
593
- // Fix the access flags of referenced merged classes and their
594
- // class members.
595
- programClassPool.classesAccept(
596
- new AllConstantVisitor(
597
- new AccessFixer()));
598
- }
599
-
600
- // Fix the access flags of the inner classes information.
601
- programClassPool.classesAccept(
602
- new AllAttributeVisitor(
603
- new AllInnerClassesInfoVisitor(
604
- new InnerClassesAccessFixer())));
605
-
606
- // Tweak the descriptors of duplicate initializers, due to merged
607
- // parameter classes.
608
- programClassPool.classesAccept(
609
- new AllMethodVisitor(
610
- new DuplicateInitializerFixer(initializerFixCounter2)));
611
-
612
- if (initializerFixCounter2.getCount() > 0)
613
- {
614
- // Fix all invocations of tweaked initializers.
615
- programClassPool.classesAccept(
616
- new AllMethodVisitor(
617
- new AllAttributeVisitor(
618
- new DuplicateInitializerInvocationFixer(addedCounter))));
619
-
620
- // Fix all references to tweaked initializers.
621
- programClassPool.classesAccept(new MemberReferenceFixer());
622
- }
623
- }
624
-
625
- if (methodInliningUnique)
626
- {
627
- // Inline methods that are only invoked once.
628
- programClassPool.classesAccept(
629
- new AllMethodVisitor(
630
- new AllAttributeVisitor(
631
- new MethodInliner(configuration.microEdition,
632
- configuration.allowAccessModification,
633
- true,
634
- methodInliningUniqueCounter))));
635
- }
636
-
637
- if (methodInliningShort)
638
- {
639
- // Inline short methods.
640
- programClassPool.classesAccept(
641
- new AllMethodVisitor(
642
- new AllAttributeVisitor(
643
- new MethodInliner(configuration.microEdition,
644
- configuration.allowAccessModification,
645
- false,
646
- methodInliningShortCounter))));
647
- }
648
-
649
- if (methodInliningTailrecursion)
650
- {
651
- // Simplify tail recursion calls.
652
- programClassPool.classesAccept(
653
- new AllMethodVisitor(
654
- new AllAttributeVisitor(
655
- new TailRecursionSimplifier(methodInliningTailrecursionCounter))));
656
- }
657
-
658
- if (fieldMarkingPrivate ||
659
- methodMarkingPrivate)
660
- {
661
- // Mark all class members that can not be made private.
662
- programClassPool.classesAccept(
663
- new NonPrivateMemberMarker());
664
- }
665
-
666
- if (fieldMarkingPrivate)
667
- {
668
- // Make all non-private fields private, whereever possible.
669
- programClassPool.classesAccept(
670
- new ClassAccessFilter(0, ClassConstants.INTERNAL_ACC_INTERFACE,
671
- new AllFieldVisitor(
672
- new MemberAccessFilter(0, ClassConstants.INTERNAL_ACC_PRIVATE,
673
- new MemberPrivatizer(fieldMarkingPrivateCounter)))));
674
- }
675
-
676
- if (methodMarkingPrivate)
677
- {
678
- // Make all non-private methods private, whereever possible.
679
- programClassPool.classesAccept(
680
- new ClassAccessFilter(0, ClassConstants.INTERNAL_ACC_INTERFACE,
681
- new AllMethodVisitor(
682
- new MemberAccessFilter(0, ClassConstants.INTERNAL_ACC_PRIVATE,
683
- new MemberPrivatizer(methodMarkingPrivateCounter)))));
684
- }
685
-
686
- if ((methodInliningUniqueCounter .getCount() > 0 ||
687
- methodInliningShortCounter .getCount() > 0 ||
688
- methodInliningTailrecursionCounter.getCount() > 0) &&
689
- configuration.allowAccessModification)
690
- {
691
- // Fix the access flags of referenced classes and class members,
692
- // for MethodInliner.
693
- programClassPool.classesAccept(
694
- new AllConstantVisitor(
695
- new AccessFixer()));
696
- }
697
-
698
- if (methodRemovalParameterCounter .getCount() > 0 ||
699
- classMergingVerticalCounter .getCount() > 0 ||
700
- classMergingHorizontalCounter .getCount() > 0 ||
701
- methodMarkingPrivateCounter .getCount() > 0 )
702
- {
703
- // Fix invocations of interface methods, of methods that have become
704
- // non-abstract or private, and of methods that have moved to a
705
- // different package.
706
- programClassPool.classesAccept(
707
- new AllMemberVisitor(
708
- new AllAttributeVisitor(
709
- new MethodInvocationFixer())));
710
- }
711
-
712
- if (codeMerging)
713
- {
714
- // Share common blocks of code at branches.
715
- programClassPool.classesAccept(
716
- new AllMethodVisitor(
717
- new AllAttributeVisitor(
718
- new GotoCommonCodeReplacer(codeMergingCounter))));
719
- }
720
-
721
- // Create a branch target marker and a code attribute editor that can
722
- // be reused for all code attributes.
723
- BranchTargetFinder branchTargetFinder = new BranchTargetFinder();
724
- CodeAttributeEditor codeAttributeEditor = new CodeAttributeEditor();
725
-
726
- List peepholeOptimizations = new ArrayList();
727
- if (codeSimplificationVariable)
728
- {
729
- // Peephole optimizations involving local variables.
730
- peepholeOptimizations.add(
731
- new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS,
732
- InstructionSequenceConstants.VARIABLE,
733
- branchTargetFinder, codeAttributeEditor, codeSimplificationVariableCounter));
734
- }
735
-
736
- if (codeSimplificationArithmetic)
737
- {
738
- // Peephole optimizations involving arithmetic operations.
739
- peepholeOptimizations.add(
740
- new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS,
741
- InstructionSequenceConstants.ARITHMETIC,
742
- branchTargetFinder, codeAttributeEditor, codeSimplificationArithmeticCounter));
743
- }
744
-
745
- if (codeSimplificationCast)
746
- {
747
- // Peephole optimizations involving cast operations.
748
- peepholeOptimizations.add(
749
- new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS,
750
- InstructionSequenceConstants.CAST,
751
- branchTargetFinder, codeAttributeEditor, codeSimplificationCastCounter));
752
- }
753
-
754
- if (codeSimplificationField)
755
- {
756
- // Peephole optimizations involving fields.
757
- peepholeOptimizations.add(
758
- new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS,
759
- InstructionSequenceConstants.FIELD,
760
- branchTargetFinder, codeAttributeEditor, codeSimplificationFieldCounter));
761
- }
762
-
763
- if (codeSimplificationBranch)
764
- {
765
- // Peephole optimizations involving branches.
766
- peepholeOptimizations.add(
767
- new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS,
768
- InstructionSequenceConstants.BRANCH,
769
- branchTargetFinder, codeAttributeEditor, codeSimplificationBranchCounter));
770
-
771
- // Include optimization of branches to branches and returns.
772
- peepholeOptimizations.add(
773
- new GotoGotoReplacer(codeAttributeEditor, codeSimplificationBranchCounter));
774
- peepholeOptimizations.add(
775
- new GotoReturnReplacer(codeAttributeEditor, codeSimplificationBranchCounter));
776
- }
777
-
778
- if (codeSimplificationString)
779
- {
780
- // Peephole optimizations involving branches.
781
- peepholeOptimizations.add(
782
- new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS,
783
- InstructionSequenceConstants.STRING,
784
- branchTargetFinder, codeAttributeEditor, codeSimplificationStringCounter));
785
- }
786
-
787
- if (!peepholeOptimizations.isEmpty())
788
- {
789
- // Convert the list into an array.
790
- InstructionVisitor[] peepholeOptimizationsArray =
791
- new InstructionVisitor[peepholeOptimizations.size()];
792
- peepholeOptimizations.toArray(peepholeOptimizationsArray);
793
-
794
- // Perform the peephole optimisations.
795
- programClassPool.classesAccept(
796
- new AllMethodVisitor(
797
- new AllAttributeVisitor(
798
- new PeepholeOptimizer(branchTargetFinder, codeAttributeEditor,
799
- new MultiInstructionVisitor(
800
- peepholeOptimizationsArray)))));
801
- }
802
-
803
- if (codeRemovalException)
804
- {
805
- // Remove unnecessary exception handlers.
806
- programClassPool.classesAccept(
807
- new AllMethodVisitor(
808
- new AllAttributeVisitor(
809
- new UnreachableExceptionRemover(codeRemovalExceptionCounter))));
810
- }
811
-
812
- if (codeRemovalSimple)
813
- {
814
- // Remove unreachable code.
815
- programClassPool.classesAccept(
816
- new AllMethodVisitor(
817
- new AllAttributeVisitor(
818
- new UnreachableCodeRemover(deletedCounter))));
819
- }
820
-
821
- if (codeRemovalVariable)
822
- {
823
- // Remove all unused local variables.
824
- programClassPool.classesAccept(
825
- new AllMethodVisitor(
826
- new AllAttributeVisitor(
827
- new VariableShrinker(codeRemovalVariableCounter))));
828
- }
829
-
830
- if (codeAllocationVariable)
831
- {
832
- // Optimize the variables.
833
- programClassPool.classesAccept(
834
- new AllMethodVisitor(
835
- new AllAttributeVisitor(
836
- new VariableOptimizer(false, codeAllocationVariableCounter))));
837
- }
838
-
839
-
840
- // Remove unused constants.
841
- programClassPool.classesAccept(
842
- new ConstantPoolShrinker());
843
-
844
- int classMarkingFinalCount = classMarkingFinalCounter .getCount();
845
- int classMergingVerticalCount = classMergingVerticalCounter .getCount();
846
- int classMergingHorizontalCount = classMergingHorizontalCounter .getCount();
847
- int fieldRemovalWriteonlyCount = fieldRemovalWriteonlyCounter .getCount();
848
- int fieldMarkingPrivateCount = fieldMarkingPrivateCounter .getCount();
849
- int fieldPropagationValueCount = fieldPropagationValueCounter .getCount();
850
- int methodMarkingPrivateCount = methodMarkingPrivateCounter .getCount();
851
- int methodMarkingStaticCount = methodMarkingStaticCounter .getCount();
852
- int methodMarkingFinalCount = methodMarkingFinalCounter .getCount();
853
- int methodRemovalParameterCount = methodRemovalParameterCounter .getCount() - methodMarkingStaticCounter.getCount() - initializerFixCounter1.getCount() - initializerFixCounter2.getCount();
854
- int methodPropagationParameterCount = methodPropagationParameterCounter .getCount();
855
- int methodPropagationReturnvalueCount = methodPropagationReturnvalueCounter.getCount();
856
- int methodInliningShortCount = methodInliningShortCounter .getCount();
857
- int methodInliningUniqueCount = methodInliningUniqueCounter .getCount();
858
- int methodInliningTailrecursionCount = methodInliningTailrecursionCounter .getCount();
859
- int codeMergingCount = codeMergingCounter .getCount();
860
- int codeSimplificationVariableCount = codeSimplificationVariableCounter .getCount();
861
- int codeSimplificationArithmeticCount = codeSimplificationArithmeticCounter.getCount();
862
- int codeSimplificationCastCount = codeSimplificationCastCounter .getCount();
863
- int codeSimplificationFieldCount = codeSimplificationFieldCounter .getCount();
864
- int codeSimplificationBranchCount = codeSimplificationBranchCounter .getCount();
865
- int codeSimplificationStringCount = codeSimplificationStringCounter .getCount();
866
- int codeSimplificationAdvancedCount = codeSimplificationAdvancedCounter .getCount();
867
- int codeRemovalCount = deletedCounter .getCount() - addedCounter.getCount();
868
- int codeRemovalVariableCount = codeRemovalVariableCounter .getCount();
869
- int codeRemovalExceptionCount = codeRemovalExceptionCounter .getCount();
870
- int codeAllocationVariableCount = codeAllocationVariableCounter .getCount();
871
-
872
- // Forget about constant fields, parameters, and return values, if they
873
- // didn't lead to any useful optimizations. We want to avoid fruitless
874
- // additional optimization passes.
875
- if (codeSimplificationAdvancedCount == 0)
876
- {
877
- fieldPropagationValueCount = 0;
878
- methodPropagationParameterCount = 0;
879
- methodPropagationReturnvalueCount = 0;
880
- }
881
-
882
- if (configuration.verbose)
883
- {
884
- System.out.println(" Number of finalized classes: " + classMarkingFinalCount + disabled(classMarkingFinal));
885
- System.out.println(" Number of vertically merged classes: " + classMergingVerticalCount + disabled(classMergingVertical));
886
- System.out.println(" Number of horizontally merged classes: " + classMergingHorizontalCount + disabled(classMergingHorizontal));
887
- System.out.println(" Number of removed write-only fields: " + fieldRemovalWriteonlyCount + disabled(fieldRemovalWriteonly));
888
- System.out.println(" Number of privatized fields: " + fieldMarkingPrivateCount + disabled(fieldMarkingPrivate));
889
- System.out.println(" Number of inlined constant fields: " + fieldPropagationValueCount + disabled(fieldPropagationValue));
890
- System.out.println(" Number of privatized methods: " + methodMarkingPrivateCount + disabled(methodMarkingPrivate));
891
- System.out.println(" Number of staticized methods: " + methodMarkingStaticCount + disabled(methodMarkingStatic));
892
- System.out.println(" Number of finalized methods: " + methodMarkingFinalCount + disabled(methodMarkingFinal));
893
- System.out.println(" Number of removed method parameters: " + methodRemovalParameterCount + disabled(methodRemovalParameter));
894
- System.out.println(" Number of inlined constant parameters: " + methodPropagationParameterCount + disabled(methodPropagationParameter));
895
- System.out.println(" Number of inlined constant return values: " + methodPropagationReturnvalueCount + disabled(methodPropagationReturnvalue));
896
- System.out.println(" Number of inlined short method calls: " + methodInliningShortCount + disabled(methodInliningShort));
897
- System.out.println(" Number of inlined unique method calls: " + methodInliningUniqueCount + disabled(methodInliningUnique));
898
- System.out.println(" Number of inlined tail recursion calls: " + methodInliningTailrecursionCount + disabled(methodInliningTailrecursion));
899
- System.out.println(" Number of merged code blocks: " + codeMergingCount + disabled(codeMerging));
900
- System.out.println(" Number of variable peephole optimizations: " + codeSimplificationVariableCount + disabled(codeSimplificationVariable));
901
- System.out.println(" Number of arithmetic peephole optimizations: " + codeSimplificationArithmeticCount + disabled(codeSimplificationArithmetic));
902
- System.out.println(" Number of cast peephole optimizations: " + codeSimplificationCastCount + disabled(codeSimplificationCast));
903
- System.out.println(" Number of field peephole optimizations: " + codeSimplificationFieldCount + disabled(codeSimplificationField));
904
- System.out.println(" Number of branch peephole optimizations: " + codeSimplificationBranchCount + disabled(codeSimplificationBranch));
905
- System.out.println(" Number of string peephole optimizations: " + codeSimplificationStringCount + disabled(codeSimplificationString));
906
- System.out.println(" Number of simplified instructions: " + codeSimplificationAdvancedCount + disabled(codeSimplificationAdvanced));
907
- System.out.println(" Number of removed instructions: " + codeRemovalCount + disabled(codeRemovalAdvanced));
908
- System.out.println(" Number of removed local variables: " + codeRemovalVariableCount + disabled(codeRemovalVariable));
909
- System.out.println(" Number of removed exception blocks: " + codeRemovalExceptionCount + disabled(codeRemovalException));
910
- System.out.println(" Number of optimized local variable frames: " + codeAllocationVariableCount + disabled(codeAllocationVariable));
911
- }
912
-
913
- return classMarkingFinalCount > 0 ||
914
- classMergingVerticalCount > 0 ||
915
- classMergingHorizontalCount > 0 ||
916
- fieldRemovalWriteonlyCount > 0 ||
917
- fieldMarkingPrivateCount > 0 ||
918
- methodMarkingPrivateCount > 0 ||
919
- methodMarkingStaticCount > 0 ||
920
- methodMarkingFinalCount > 0 ||
921
- fieldPropagationValueCount > 0 ||
922
- methodRemovalParameterCount > 0 ||
923
- methodPropagationParameterCount > 0 ||
924
- methodPropagationReturnvalueCount > 0 ||
925
- methodInliningShortCount > 0 ||
926
- methodInliningUniqueCount > 0 ||
927
- methodInliningTailrecursionCount > 0 ||
928
- codeMergingCount > 0 ||
929
- codeSimplificationVariableCount > 0 ||
930
- codeSimplificationArithmeticCount > 0 ||
931
- codeSimplificationCastCount > 0 ||
932
- codeSimplificationFieldCount > 0 ||
933
- codeSimplificationBranchCount > 0 ||
934
- codeSimplificationStringCount > 0 ||
935
- codeSimplificationAdvancedCount > 0 ||
936
- codeRemovalCount > 0 ||
937
- codeRemovalVariableCount > 0 ||
938
- codeRemovalExceptionCount > 0 ||
939
- codeAllocationVariableCount > 0;
940
- }
941
-
942
-
943
- /**
944
- * Returns a String indicating whether the given flag is enabled or
945
- * disabled.
946
- */
947
- private String disabled(boolean flag)
948
- {
949
- return flag ? "" : " (disabled)";
950
- }
951
-
952
-
953
- /**
954
- * Returns a String indicating whether the given flags are enabled or
955
- * disabled.
956
- */
957
- private String disabled(boolean flag1, boolean flag2)
958
- {
959
- return flag1 && flag2 ? "" :
960
- flag1 || flag2 ? " (partially disabled)" :
961
- " (disabled)";
962
- }
963
- }