sometsome 1.0.2 → 3.10.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. checksums.yaml +4 -4
  2. data/lib/proguard4.7/README +33 -0
  3. data/lib/proguard4.7/bin/proguard.bat +14 -0
  4. data/lib/proguard4.7/bin/proguard.sh +11 -0
  5. data/lib/proguard4.7/bin/proguardgui.bat +14 -0
  6. data/lib/proguard4.7/bin/proguardgui.sh +15 -0
  7. data/lib/proguard4.7/bin/retrace.bat +14 -0
  8. data/lib/proguard4.7/bin/retrace.sh +12 -0
  9. data/lib/proguard4.7/build/build.sh +94 -0
  10. data/lib/proguard4.7/build/build.xml +171 -0
  11. data/lib/proguard4.7/build/makefile +94 -0
  12. data/lib/proguard4.7/docs/FAQ.html +253 -0
  13. data/lib/proguard4.7/docs/GPL.html +406 -0
  14. data/lib/proguard4.7/docs/GPL_exception.html +56 -0
  15. data/lib/proguard4.7/docs/acknowledgements.html +76 -0
  16. data/lib/proguard4.7/docs/alternatives.html +699 -0
  17. data/lib/proguard4.7/docs/checkmark.gif +0 -0
  18. data/lib/proguard4.7/docs/downloads.html +623 -0
  19. data/lib/proguard4.7/docs/drop1.gif +0 -0
  20. data/lib/proguard4.7/docs/drop2.gif +0 -0
  21. data/lib/proguard4.7/docs/drop3.gif +0 -0
  22. data/lib/proguard4.7/docs/favicon.ico +0 -0
  23. data/lib/proguard4.7/docs/feedback.html +120 -0
  24. data/lib/proguard4.7/docs/index.html +92 -0
  25. data/lib/proguard4.7/docs/license.html +60 -0
  26. data/lib/proguard4.7/docs/main.html +102 -0
  27. data/lib/proguard4.7/docs/manual/ant.html +634 -0
  28. data/lib/proguard4.7/docs/manual/attention.gif +0 -0
  29. data/lib/proguard4.7/docs/manual/examples.html +1504 -0
  30. data/lib/proguard4.7/docs/manual/gui.html +479 -0
  31. data/lib/proguard4.7/docs/manual/index.html +51 -0
  32. data/lib/proguard4.7/docs/manual/introduction.html +173 -0
  33. data/lib/proguard4.7/docs/manual/limitations.html +69 -0
  34. data/lib/proguard4.7/docs/manual/optimizations.html +172 -0
  35. data/lib/proguard4.7/docs/manual/refcard.html +486 -0
  36. data/lib/proguard4.7/docs/manual/retrace/examples.html +345 -0
  37. data/lib/proguard4.7/docs/manual/retrace/index.html +37 -0
  38. data/lib/proguard4.7/docs/manual/retrace/introduction.html +79 -0
  39. data/lib/proguard4.7/docs/manual/retrace/usage.html +127 -0
  40. data/lib/proguard4.7/docs/manual/sections.html +60 -0
  41. data/lib/proguard4.7/docs/manual/style.css +105 -0
  42. data/lib/proguard4.7/docs/manual/troubleshooting.html +729 -0
  43. data/lib/proguard4.7/docs/manual/usage.html +1243 -0
  44. data/lib/proguard4.7/docs/manual/wtk.html +70 -0
  45. data/lib/proguard4.7/docs/quality.html +56 -0
  46. data/lib/proguard4.7/docs/results.html +170 -0
  47. data/lib/proguard4.7/docs/saikoalogo.png +0 -0
  48. data/lib/proguard4.7/docs/screenshot_console.gif +0 -0
  49. data/lib/proguard4.7/docs/screenshot_console_small.gif +0 -0
  50. data/lib/proguard4.7/docs/screenshot_gui1.gif +0 -0
  51. data/lib/proguard4.7/docs/screenshot_gui2.gif +0 -0
  52. data/lib/proguard4.7/docs/screenshot_gui3.gif +0 -0
  53. data/lib/proguard4.7/docs/screenshot_gui4.gif +0 -0
  54. data/lib/proguard4.7/docs/screenshot_gui5.gif +0 -0
  55. data/lib/proguard4.7/docs/screenshot_gui6.gif +0 -0
  56. data/lib/proguard4.7/docs/screenshot_gui7.gif +0 -0
  57. data/lib/proguard4.7/docs/screenshot_gui8.gif +0 -0
  58. data/lib/proguard4.7/docs/screenshots.html +67 -0
  59. data/lib/proguard4.7/docs/screenshots_gui_small.gif +0 -0
  60. data/lib/proguard4.7/docs/sections.html +64 -0
  61. data/lib/proguard4.7/docs/sflogo.png +0 -0
  62. data/lib/proguard4.7/docs/steel.gif +0 -0
  63. data/lib/proguard4.7/docs/style.css +223 -0
  64. data/lib/proguard4.7/docs/testimonials.html +133 -0
  65. data/lib/proguard4.7/docs/title.gif +0 -0
  66. data/lib/proguard4.7/docs/title.html +17 -0
  67. data/lib/proguard4.7/examples/android.pro +149 -0
  68. data/lib/proguard4.7/examples/annotations/examples.pro +60 -0
  69. data/lib/proguard4.7/examples/annotations/examples/Applet.java +22 -0
  70. data/lib/proguard4.7/examples/annotations/examples/Application.java +20 -0
  71. data/lib/proguard4.7/examples/annotations/examples/Bean.java +56 -0
  72. data/lib/proguard4.7/examples/annotations/examples/NativeCallBack.java +44 -0
  73. data/lib/proguard4.7/examples/annotations/lib/annotations.jar +0 -0
  74. data/lib/proguard4.7/examples/annotations/lib/annotations.pro +118 -0
  75. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/Keep.java +18 -0
  76. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepApplication.java +18 -0
  77. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMemberNames.java +18 -0
  78. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMembers.java +18 -0
  79. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepGettersSetters.java +18 -0
  80. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepImplementations.java +18 -0
  81. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepName.java +18 -0
  82. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMemberNames.java +18 -0
  83. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMembers.java +18 -0
  84. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicGettersSetters.java +18 -0
  85. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicImplementations.java +18 -0
  86. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMemberNames.java +18 -0
  87. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMembers.java +19 -0
  88. data/lib/proguard4.7/examples/ant/android-8.xml +177 -0
  89. data/lib/proguard4.7/examples/ant/applets.xml +88 -0
  90. data/lib/proguard4.7/examples/ant/applications1.xml +15 -0
  91. data/lib/proguard4.7/examples/ant/applications2.xml +74 -0
  92. data/lib/proguard4.7/examples/ant/applications3.xml +98 -0
  93. data/lib/proguard4.7/examples/ant/library.xml +102 -0
  94. data/lib/proguard4.7/examples/ant/midlets.xml +52 -0
  95. data/lib/proguard4.7/examples/ant/proguard.xml +78 -0
  96. data/lib/proguard4.7/examples/ant/servlets.xml +88 -0
  97. data/lib/proguard4.7/examples/applets.pro +69 -0
  98. data/lib/proguard4.7/examples/applications.pro +75 -0
  99. data/lib/proguard4.7/examples/dictionaries/compact.txt +18 -0
  100. data/lib/proguard4.7/examples/dictionaries/keywords.txt +58 -0
  101. data/lib/proguard4.7/examples/dictionaries/shakespeare.txt +23 -0
  102. data/lib/proguard4.7/examples/dictionaries/windows.txt +209 -0
  103. data/lib/proguard4.7/examples/library.pro +79 -0
  104. data/lib/proguard4.7/examples/midlets.pro +67 -0
  105. data/lib/proguard4.7/examples/proguard.pro +57 -0
  106. data/lib/proguard4.7/examples/proguardall.pro +62 -0
  107. data/lib/proguard4.7/examples/proguardgui.pro +50 -0
  108. data/lib/proguard4.7/examples/retrace.pro +43 -0
  109. data/lib/proguard4.7/examples/scala.pro +132 -0
  110. data/lib/proguard4.7/examples/servlets.pro +70 -0
  111. data/lib/proguard4.7/lib/proguard.jar +0 -0
  112. data/lib/proguard4.7/lib/proguardgui.jar +0 -0
  113. data/lib/proguard4.7/lib/retrace.jar +0 -0
  114. data/lib/proguard4.7/src/proguard/ArgumentWordReader.java +111 -0
  115. data/lib/proguard4.7/src/proguard/ClassPath.java +94 -0
  116. data/lib/proguard4.7/src/proguard/ClassPathEntry.java +282 -0
  117. data/lib/proguard4.7/src/proguard/ClassSpecification.java +259 -0
  118. data/lib/proguard4.7/src/proguard/ClassSpecificationVisitorFactory.java +503 -0
  119. data/lib/proguard4.7/src/proguard/Configuration.java +328 -0
  120. data/lib/proguard4.7/src/proguard/ConfigurationConstants.java +123 -0
  121. data/lib/proguard4.7/src/proguard/ConfigurationParser.java +1285 -0
  122. data/lib/proguard4.7/src/proguard/ConfigurationWriter.java +651 -0
  123. data/lib/proguard4.7/src/proguard/DataEntryReaderFactory.java +141 -0
  124. data/lib/proguard4.7/src/proguard/DataEntryWriterFactory.java +150 -0
  125. data/lib/proguard4.7/src/proguard/DescriptorKeepChecker.java +169 -0
  126. data/lib/proguard4.7/src/proguard/DuplicateClassPrinter.java +63 -0
  127. data/lib/proguard4.7/src/proguard/FileWordReader.java +55 -0
  128. data/lib/proguard4.7/src/proguard/FullyQualifiedClassNameChecker.java +191 -0
  129. data/lib/proguard4.7/src/proguard/GPL.java +197 -0
  130. data/lib/proguard4.7/src/proguard/Initializer.java +424 -0
  131. data/lib/proguard4.7/src/proguard/InputReader.java +233 -0
  132. data/lib/proguard4.7/src/proguard/KeepClassMemberChecker.java +87 -0
  133. data/lib/proguard4.7/src/proguard/KeepClassSpecification.java +137 -0
  134. data/lib/proguard4.7/src/proguard/LineWordReader.java +74 -0
  135. data/lib/proguard4.7/src/proguard/MANIFEST.MF +2 -0
  136. data/lib/proguard4.7/src/proguard/MemberSpecification.java +114 -0
  137. data/lib/proguard4.7/src/proguard/OutputWriter.java +296 -0
  138. data/lib/proguard4.7/src/proguard/ParseException.java +51 -0
  139. data/lib/proguard4.7/src/proguard/ProGuard.java +512 -0
  140. data/lib/proguard4.7/src/proguard/SeedPrinter.java +97 -0
  141. data/lib/proguard4.7/src/proguard/SubclassedClassFilter.java +62 -0
  142. data/lib/proguard4.7/src/proguard/Targeter.java +88 -0
  143. data/lib/proguard4.7/src/proguard/UpToDateChecker.java +232 -0
  144. data/lib/proguard4.7/src/proguard/WordReader.java +387 -0
  145. data/lib/proguard4.7/src/proguard/ant/ClassPathElement.java +191 -0
  146. data/lib/proguard4.7/src/proguard/ant/ClassSpecificationElement.java +258 -0
  147. data/lib/proguard4.7/src/proguard/ant/ConfigurationElement.java +53 -0
  148. data/lib/proguard4.7/src/proguard/ant/ConfigurationTask.java +441 -0
  149. data/lib/proguard4.7/src/proguard/ant/FilterElement.java +85 -0
  150. data/lib/proguard4.7/src/proguard/ant/KeepSpecificationElement.java +87 -0
  151. data/lib/proguard4.7/src/proguard/ant/MemberSpecificationElement.java +218 -0
  152. data/lib/proguard4.7/src/proguard/ant/ProGuardTask.java +352 -0
  153. data/lib/proguard4.7/src/proguard/ant/package.html +3 -0
  154. data/lib/proguard4.7/src/proguard/ant/task.properties +2 -0
  155. data/lib/proguard4.7/src/proguard/classfile/ClassConstants.java +316 -0
  156. data/lib/proguard4.7/src/proguard/classfile/ClassPool.java +152 -0
  157. data/lib/proguard4.7/src/proguard/classfile/Clazz.java +261 -0
  158. data/lib/proguard4.7/src/proguard/classfile/Field.java +32 -0
  159. data/lib/proguard4.7/src/proguard/classfile/LibraryClass.java +548 -0
  160. data/lib/proguard4.7/src/proguard/classfile/LibraryField.java +77 -0
  161. data/lib/proguard4.7/src/proguard/classfile/LibraryMember.java +108 -0
  162. data/lib/proguard4.7/src/proguard/classfile/LibraryMethod.java +83 -0
  163. data/lib/proguard4.7/src/proguard/classfile/Member.java +57 -0
  164. data/lib/proguard4.7/src/proguard/classfile/Method.java +32 -0
  165. data/lib/proguard4.7/src/proguard/classfile/ProgramClass.java +572 -0
  166. data/lib/proguard4.7/src/proguard/classfile/ProgramField.java +93 -0
  167. data/lib/proguard4.7/src/proguard/classfile/ProgramMember.java +168 -0
  168. data/lib/proguard4.7/src/proguard/classfile/ProgramMethod.java +99 -0
  169. data/lib/proguard4.7/src/proguard/classfile/VisitorAccepter.java +47 -0
  170. data/lib/proguard4.7/src/proguard/classfile/attribute/Attribute.java +142 -0
  171. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodInfo.java +89 -0
  172. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodsAttribute.java +95 -0
  173. data/lib/proguard4.7/src/proguard/classfile/attribute/CodeAttribute.java +202 -0
  174. data/lib/proguard4.7/src/proguard/classfile/attribute/ConstantValueAttribute.java +62 -0
  175. data/lib/proguard4.7/src/proguard/classfile/attribute/DeprecatedAttribute.java +66 -0
  176. data/lib/proguard4.7/src/proguard/classfile/attribute/EnclosingMethodAttribute.java +132 -0
  177. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionInfo.java +100 -0
  178. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionsAttribute.java +80 -0
  179. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesAttribute.java +80 -0
  180. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesInfo.java +119 -0
  181. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberInfo.java +50 -0
  182. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberTableAttribute.java +100 -0
  183. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableInfo.java +99 -0
  184. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTableAttribute.java +79 -0
  185. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeInfo.java +107 -0
  186. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeTableAttribute.java +79 -0
  187. data/lib/proguard4.7/src/proguard/classfile/attribute/SignatureAttribute.java +100 -0
  188. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceDirAttribute.java +62 -0
  189. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceFileAttribute.java +62 -0
  190. data/lib/proguard4.7/src/proguard/classfile/attribute/SyntheticAttribute.java +66 -0
  191. data/lib/proguard4.7/src/proguard/classfile/attribute/UnknownAttribute.java +82 -0
  192. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/Annotation.java +143 -0
  193. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationDefaultAttribute.java +73 -0
  194. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationElementValue.java +76 -0
  195. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationsAttribute.java +100 -0
  196. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ArrayElementValue.java +82 -0
  197. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ClassElementValue.java +95 -0
  198. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ConstantElementValue.java +71 -0
  199. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ElementValue.java +126 -0
  200. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/EnumConstantElementValue.java +99 -0
  201. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ParameterAnnotationsAttribute.java +83 -0
  202. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleAnnotationsAttribute.java +70 -0
  203. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleParameterAnnotationsAttribute.java +62 -0
  204. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleAnnotationsAttribute.java +70 -0
  205. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleParameterAnnotationsAttribute.java +62 -0
  206. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/package.html +4 -0
  207. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AllAnnotationVisitor.java +100 -0
  208. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotatedClassVisitor.java +62 -0
  209. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationToMemberVisitor.java +62 -0
  210. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationTypeFilter.java +102 -0
  211. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationVisitor.java +40 -0
  212. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/ElementValueVisitor.java +51 -0
  213. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/package.html +3 -0
  214. data/lib/proguard4.7/src/proguard/classfile/attribute/package.html +3 -0
  215. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/DoubleType.java +66 -0
  216. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FloatType.java +66 -0
  217. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FullFrame.java +202 -0
  218. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/IntegerType.java +66 -0
  219. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LessZeroFrame.java +103 -0
  220. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LongType.java +66 -0
  221. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/MoreZeroFrame.java +161 -0
  222. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/NullType.java +66 -0
  223. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/ObjectType.java +107 -0
  224. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameOneFrame.java +115 -0
  225. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameZeroFrame.java +74 -0
  226. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapAttribute.java +91 -0
  227. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapFrame.java +117 -0
  228. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapTableAttribute.java +93 -0
  229. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/TopType.java +66 -0
  230. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedThisType.java +66 -0
  231. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedType.java +106 -0
  232. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationType.java +103 -0
  233. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationTypeFactory.java +112 -0
  234. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/StackMapFrameVisitor.java +40 -0
  235. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/VerificationTypeVisitor.java +65 -0
  236. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java +117 -0
  237. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java +55 -0
  238. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java +55 -0
  239. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java +55 -0
  240. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java +368 -0
  241. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeVisitor.java +90 -0
  242. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java +40 -0
  243. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java +37 -0
  244. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java +38 -0
  245. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java +38 -0
  246. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java +38 -0
  247. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java +38 -0
  248. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java +365 -0
  249. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java +293 -0
  250. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java +360 -0
  251. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/StackSizeComputer.java +378 -0
  252. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/package.html +3 -0
  253. data/lib/proguard4.7/src/proguard/classfile/constant/ClassConstant.java +105 -0
  254. data/lib/proguard4.7/src/proguard/classfile/constant/Constant.java +68 -0
  255. data/lib/proguard4.7/src/proguard/classfile/constant/DoubleConstant.java +82 -0
  256. data/lib/proguard4.7/src/proguard/classfile/constant/FieldrefConstant.java +71 -0
  257. data/lib/proguard4.7/src/proguard/classfile/constant/FloatConstant.java +82 -0
  258. data/lib/proguard4.7/src/proguard/classfile/constant/IntegerConstant.java +82 -0
  259. data/lib/proguard4.7/src/proguard/classfile/constant/InterfaceMethodrefConstant.java +71 -0
  260. data/lib/proguard4.7/src/proguard/classfile/constant/InvokeDynamicConstant.java +148 -0
  261. data/lib/proguard4.7/src/proguard/classfile/constant/LongConstant.java +82 -0
  262. data/lib/proguard4.7/src/proguard/classfile/constant/MethodHandleConstant.java +124 -0
  263. data/lib/proguard4.7/src/proguard/classfile/constant/MethodTypeConstant.java +93 -0
  264. data/lib/proguard4.7/src/proguard/classfile/constant/MethodrefConstant.java +71 -0
  265. data/lib/proguard4.7/src/proguard/classfile/constant/NameAndTypeConstant.java +119 -0
  266. data/lib/proguard4.7/src/proguard/classfile/constant/RefConstant.java +130 -0
  267. data/lib/proguard4.7/src/proguard/classfile/constant/StringConstant.java +135 -0
  268. data/lib/proguard4.7/src/proguard/classfile/constant/Utf8Constant.java +285 -0
  269. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/AllConstantVisitor.java +53 -0
  270. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/BootstrapMethodHandleTraveler.java +100 -0
  271. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantTagFilter.java +86 -0
  272. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantVisitor.java +49 -0
  273. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ExceptClassConstantFilter.java +69 -0
  274. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/MethodrefTraveler.java +60 -0
  275. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/package.html +3 -0
  276. data/lib/proguard4.7/src/proguard/classfile/editor/AccessFixer.java +180 -0
  277. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationAdder.java +153 -0
  278. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationsAttributeEditor.java +67 -0
  279. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeAdder.java +457 -0
  280. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeSorter.java +89 -0
  281. data/lib/proguard4.7/src/proguard/classfile/editor/AttributesEditor.java +269 -0
  282. data/lib/proguard4.7/src/proguard/classfile/editor/BridgeMethodFixer.java +117 -0
  283. data/lib/proguard4.7/src/proguard/classfile/editor/ClassEditor.java +255 -0
  284. data/lib/proguard4.7/src/proguard/classfile/editor/ClassElementSorter.java +52 -0
  285. data/lib/proguard4.7/src/proguard/classfile/editor/ClassMemberSorter.java +69 -0
  286. data/lib/proguard4.7/src/proguard/classfile/editor/ClassReferenceFixer.java +546 -0
  287. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeComposer.java +843 -0
  288. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditor.java +1104 -0
  289. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditorResetter.java +60 -0
  290. data/lib/proguard4.7/src/proguard/classfile/editor/ComparableConstant.java +249 -0
  291. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantAdder.java +239 -0
  292. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolEditor.java +782 -0
  293. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolRemapper.java +662 -0
  294. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolShrinker.java +578 -0
  295. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolSorter.java +123 -0
  296. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValueAdder.java +217 -0
  297. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValuesEditor.java +238 -0
  298. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionAdder.java +65 -0
  299. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionInfoAdder.java +67 -0
  300. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionsAttributeEditor.java +68 -0
  301. data/lib/proguard4.7/src/proguard/classfile/editor/InnerClassesAccessFixer.java +83 -0
  302. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionAdder.java +76 -0
  303. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionWriter.java +278 -0
  304. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceAdder.java +62 -0
  305. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceSorter.java +152 -0
  306. data/lib/proguard4.7/src/proguard/classfile/editor/InterfacesEditor.java +122 -0
  307. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberInfoAdder.java +59 -0
  308. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberTableAttributeEditor.java +67 -0
  309. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableInfoAdder.java +67 -0
  310. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTableAttributeEditor.java +67 -0
  311. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeInfoAdder.java +68 -0
  312. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeTableAttributeEditor.java +68 -0
  313. data/lib/proguard4.7/src/proguard/classfile/editor/MemberAdder.java +288 -0
  314. data/lib/proguard4.7/src/proguard/classfile/editor/MemberReferenceFixer.java +447 -0
  315. data/lib/proguard4.7/src/proguard/classfile/editor/MethodInvocationFixer.java +243 -0
  316. data/lib/proguard4.7/src/proguard/classfile/editor/NameAndTypeShrinker.java +188 -0
  317. data/lib/proguard4.7/src/proguard/classfile/editor/NamedAttributeDeleter.java +54 -0
  318. data/lib/proguard4.7/src/proguard/classfile/editor/ParameterAnnotationsAttributeEditor.java +71 -0
  319. data/lib/proguard4.7/src/proguard/classfile/editor/StackSizeUpdater.java +54 -0
  320. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassAdder.java +59 -0
  321. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassToAdder.java +60 -0
  322. data/lib/proguard4.7/src/proguard/classfile/editor/Utf8Shrinker.java +455 -0
  323. data/lib/proguard4.7/src/proguard/classfile/editor/VariableCleaner.java +267 -0
  324. data/lib/proguard4.7/src/proguard/classfile/editor/VariableEditor.java +130 -0
  325. data/lib/proguard4.7/src/proguard/classfile/editor/VariableRemapper.java +156 -0
  326. data/lib/proguard4.7/src/proguard/classfile/editor/VariableSizeUpdater.java +105 -0
  327. data/lib/proguard4.7/src/proguard/classfile/editor/package.html +3 -0
  328. data/lib/proguard4.7/src/proguard/classfile/instruction/BranchInstruction.java +180 -0
  329. data/lib/proguard4.7/src/proguard/classfile/instruction/ConstantInstruction.java +309 -0
  330. data/lib/proguard4.7/src/proguard/classfile/instruction/Instruction.java +920 -0
  331. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionConstants.java +449 -0
  332. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionFactory.java +300 -0
  333. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionUtil.java +67 -0
  334. data/lib/proguard4.7/src/proguard/classfile/instruction/LookUpSwitchInstruction.java +135 -0
  335. data/lib/proguard4.7/src/proguard/classfile/instruction/SimpleInstruction.java +255 -0
  336. data/lib/proguard4.7/src/proguard/classfile/instruction/SwitchInstruction.java +83 -0
  337. data/lib/proguard4.7/src/proguard/classfile/instruction/TableSwitchInstruction.java +139 -0
  338. data/lib/proguard4.7/src/proguard/classfile/instruction/VariableInstruction.java +372 -0
  339. data/lib/proguard4.7/src/proguard/classfile/instruction/package.html +9 -0
  340. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/AllInstructionVisitor.java +56 -0
  341. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionCounter.java +59 -0
  342. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionVisitor.java +42 -0
  343. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/MultiInstructionVisitor.java +131 -0
  344. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/package.html +3 -0
  345. data/lib/proguard4.7/src/proguard/classfile/io/LibraryClassReader.java +383 -0
  346. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassReader.java +919 -0
  347. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassWriter.java +735 -0
  348. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataInput.java +223 -0
  349. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataOutput.java +224 -0
  350. data/lib/proguard4.7/src/proguard/classfile/io/package.html +3 -0
  351. data/lib/proguard4.7/src/proguard/classfile/package.html +15 -0
  352. data/lib/proguard4.7/src/proguard/classfile/util/AccessUtil.java +105 -0
  353. data/lib/proguard4.7/src/proguard/classfile/util/ClassReferenceInitializer.java +559 -0
  354. data/lib/proguard4.7/src/proguard/classfile/util/ClassSubHierarchyInitializer.java +77 -0
  355. data/lib/proguard4.7/src/proguard/classfile/util/ClassSuperHierarchyInitializer.java +163 -0
  356. data/lib/proguard4.7/src/proguard/classfile/util/ClassUtil.java +1227 -0
  357. data/lib/proguard4.7/src/proguard/classfile/util/DescriptorClassEnumeration.java +236 -0
  358. data/lib/proguard4.7/src/proguard/classfile/util/DynamicClassReferenceInitializer.java +485 -0
  359. data/lib/proguard4.7/src/proguard/classfile/util/DynamicMemberReferenceInitializer.java +944 -0
  360. data/lib/proguard4.7/src/proguard/classfile/util/ExternalTypeEnumeration.java +106 -0
  361. data/lib/proguard4.7/src/proguard/classfile/util/InstructionSequenceMatcher.java +754 -0
  362. data/lib/proguard4.7/src/proguard/classfile/util/InternalTypeEnumeration.java +204 -0
  363. data/lib/proguard4.7/src/proguard/classfile/util/MemberFinder.java +197 -0
  364. data/lib/proguard4.7/src/proguard/classfile/util/MethodLinker.java +160 -0
  365. data/lib/proguard4.7/src/proguard/classfile/util/SimplifiedVisitor.java +834 -0
  366. data/lib/proguard4.7/src/proguard/classfile/util/StringReferenceInitializer.java +90 -0
  367. data/lib/proguard4.7/src/proguard/classfile/util/StringSharer.java +172 -0
  368. data/lib/proguard4.7/src/proguard/classfile/util/WarningPrinter.java +136 -0
  369. data/lib/proguard4.7/src/proguard/classfile/util/package.html +3 -0
  370. data/lib/proguard4.7/src/proguard/classfile/visitor/AllClassVisitor.java +47 -0
  371. data/lib/proguard4.7/src/proguard/classfile/visitor/AllFieldVisitor.java +55 -0
  372. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMemberVisitor.java +57 -0
  373. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMethodVisitor.java +55 -0
  374. data/lib/proguard4.7/src/proguard/classfile/visitor/BottomClassFilter.java +69 -0
  375. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassAccessFilter.java +88 -0
  376. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCleaner.java +275 -0
  377. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCollector.java +58 -0
  378. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCounter.java +56 -0
  379. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassHierarchyTraveler.java +91 -0
  380. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassNameFilter.java +112 -0
  381. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolFiller.java +55 -0
  382. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolVisitor.java +37 -0
  383. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPresenceFilter.java +93 -0
  384. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPrinter.java +1011 -0
  385. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionFilter.java +85 -0
  386. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionSetter.java +83 -0
  387. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVisitor.java +36 -0
  388. data/lib/proguard4.7/src/proguard/classfile/visitor/ConcreteClassDownTraveler.java +100 -0
  389. data/lib/proguard4.7/src/proguard/classfile/visitor/DotClassClassVisitor.java +89 -0
  390. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassFilter.java +69 -0
  391. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassesFilter.java +90 -0
  392. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionCounter.java +52 -0
  393. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionExcludedOffsetFilter.java +64 -0
  394. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerConstantVisitor.java +62 -0
  395. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerFilter.java +70 -0
  396. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionOffsetFilter.java +64 -0
  397. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionRangeFilter.java +68 -0
  398. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassConstantFilter.java +69 -0
  399. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassFilter.java +71 -0
  400. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementingClassConstantFilter.java +70 -0
  401. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryClassFilter.java +60 -0
  402. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryMemberFilter.java +73 -0
  403. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberAccessFilter.java +122 -0
  404. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberClassAccessFilter.java +106 -0
  405. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCollector.java +59 -0
  406. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCounter.java +72 -0
  407. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberDescriptorFilter.java +113 -0
  408. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberNameFilter.java +113 -0
  409. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberToClassVisitor.java +90 -0
  410. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberVisitor.java +40 -0
  411. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationFilter.java +70 -0
  412. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationTraveler.java +128 -0
  413. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassPoolVisitor.java +88 -0
  414. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassVisitor.java +97 -0
  415. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiMemberVisitor.java +113 -0
  416. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedClassVisitor.java +49 -0
  417. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedFieldVisitor.java +61 -0
  418. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedMethodVisitor.java +61 -0
  419. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramClassFilter.java +60 -0
  420. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramMemberFilter.java +73 -0
  421. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedClassVisitor.java +255 -0
  422. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedMemberVisitor.java +73 -0
  423. data/lib/proguard4.7/src/proguard/classfile/visitor/SimilarMemberVisitor.java +125 -0
  424. data/lib/proguard4.7/src/proguard/classfile/visitor/SimpleClassPrinter.java +167 -0
  425. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassFilter.java +91 -0
  426. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassTraveler.java +60 -0
  427. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableClassVisitor.java +78 -0
  428. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableMemberVisitor.java +96 -0
  429. data/lib/proguard4.7/src/proguard/classfile/visitor/package.html +40 -0
  430. data/lib/proguard4.7/src/proguard/evaluation/BasicBranchUnit.java +126 -0
  431. data/lib/proguard4.7/src/proguard/evaluation/BasicInvocationUnit.java +425 -0
  432. data/lib/proguard4.7/src/proguard/evaluation/BranchUnit.java +63 -0
  433. data/lib/proguard4.7/src/proguard/evaluation/ClassConstantValueFactory.java +53 -0
  434. data/lib/proguard4.7/src/proguard/evaluation/ConstantValueFactory.java +113 -0
  435. data/lib/proguard4.7/src/proguard/evaluation/InvocationUnit.java +62 -0
  436. data/lib/proguard4.7/src/proguard/evaluation/Processor.java +908 -0
  437. data/lib/proguard4.7/src/proguard/evaluation/Stack.java +560 -0
  438. data/lib/proguard4.7/src/proguard/evaluation/TracedStack.java +342 -0
  439. data/lib/proguard4.7/src/proguard/evaluation/TracedVariables.java +199 -0
  440. data/lib/proguard4.7/src/proguard/evaluation/Variables.java +347 -0
  441. data/lib/proguard4.7/src/proguard/evaluation/value/Category1Value.java +41 -0
  442. data/lib/proguard4.7/src/proguard/evaluation/value/Category2Value.java +41 -0
  443. data/lib/proguard4.7/src/proguard/evaluation/value/ComparisonValue.java +69 -0
  444. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeDoubleValue.java +81 -0
  445. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeFloatValue.java +81 -0
  446. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeIntegerValue.java +87 -0
  447. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeLongValue.java +87 -0
  448. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedByteValue.java +64 -0
  449. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedCharacterValue.java +64 -0
  450. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedDoubleValue.java +64 -0
  451. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedFloatValue.java +64 -0
  452. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedIntegerValue.java +64 -0
  453. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedLongValue.java +64 -0
  454. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedShortValue.java +64 -0
  455. data/lib/proguard4.7/src/proguard/evaluation/value/DoubleValue.java +359 -0
  456. data/lib/proguard4.7/src/proguard/evaluation/value/FloatValue.java +359 -0
  457. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedDoubleValue.java +67 -0
  458. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedFloatValue.java +67 -0
  459. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedIntegerValue.java +67 -0
  460. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedLongValue.java +67 -0
  461. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedReferenceValue.java +102 -0
  462. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedValueFactory.java +75 -0
  463. data/lib/proguard4.7/src/proguard/evaluation/value/InstructionOffsetValue.java +307 -0
  464. data/lib/proguard4.7/src/proguard/evaluation/value/IntegerValue.java +1002 -0
  465. data/lib/proguard4.7/src/proguard/evaluation/value/LongValue.java +554 -0
  466. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedDoubleValue.java +71 -0
  467. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedFloatValue.java +71 -0
  468. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedIntegerValue.java +71 -0
  469. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedLongValue.java +71 -0
  470. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularDoubleValue.java +216 -0
  471. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularFloatValue.java +216 -0
  472. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularIntegerValue.java +383 -0
  473. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularLongValue.java +271 -0
  474. data/lib/proguard4.7/src/proguard/evaluation/value/ReferenceValue.java +540 -0
  475. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificDoubleValue.java +186 -0
  476. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificFloatValue.java +186 -0
  477. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificIntegerValue.java +354 -0
  478. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificLongValue.java +259 -0
  479. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificValueFactory.java +97 -0
  480. data/lib/proguard4.7/src/proguard/evaluation/value/TopValue.java +79 -0
  481. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownDoubleValue.java +125 -0
  482. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownFloatValue.java +125 -0
  483. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownIntegerValue.java +216 -0
  484. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownLongValue.java +160 -0
  485. data/lib/proguard4.7/src/proguard/evaluation/value/Value.java +169 -0
  486. data/lib/proguard4.7/src/proguard/evaluation/value/ValueFactory.java +193 -0
  487. data/lib/proguard4.7/src/proguard/evaluation/value/package.html +3 -0
  488. data/lib/proguard4.7/src/proguard/gui/ClassPathPanel.java +441 -0
  489. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationDialog.java +546 -0
  490. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationsPanel.java +231 -0
  491. data/lib/proguard4.7/src/proguard/gui/ExtensionFileFilter.java +78 -0
  492. data/lib/proguard4.7/src/proguard/gui/FilterBuilder.java +208 -0
  493. data/lib/proguard4.7/src/proguard/gui/FilterDialog.java +320 -0
  494. data/lib/proguard4.7/src/proguard/gui/GUIResources.java +56 -0
  495. data/lib/proguard4.7/src/proguard/gui/GUIResources.properties +643 -0
  496. data/lib/proguard4.7/src/proguard/gui/KeepSpecificationsPanel.java +81 -0
  497. data/lib/proguard4.7/src/proguard/gui/ListPanel.java +341 -0
  498. data/lib/proguard4.7/src/proguard/gui/MANIFEST.MF +3 -0
  499. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationDialog.java +509 -0
  500. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationsPanel.java +304 -0
  501. data/lib/proguard4.7/src/proguard/gui/MessageDialogRunnable.java +90 -0
  502. data/lib/proguard4.7/src/proguard/gui/OptimizationsDialog.java +251 -0
  503. data/lib/proguard4.7/src/proguard/gui/ProGuardGUI.java +1777 -0
  504. data/lib/proguard4.7/src/proguard/gui/ProGuardRunnable.java +154 -0
  505. data/lib/proguard4.7/src/proguard/gui/ReTraceRunnable.java +149 -0
  506. data/lib/proguard4.7/src/proguard/gui/SwingUtil.java +82 -0
  507. data/lib/proguard4.7/src/proguard/gui/TabbedPane.java +229 -0
  508. data/lib/proguard4.7/src/proguard/gui/TextAreaOutputStream.java +81 -0
  509. data/lib/proguard4.7/src/proguard/gui/arrow.gif +0 -0
  510. data/lib/proguard4.7/src/proguard/gui/boilerplate.pro +410 -0
  511. data/lib/proguard4.7/src/proguard/gui/default.pro +318 -0
  512. data/lib/proguard4.7/src/proguard/gui/package.html +3 -0
  513. data/lib/proguard4.7/src/proguard/gui/splash/BufferedSprite.java +145 -0
  514. data/lib/proguard4.7/src/proguard/gui/splash/CircleSprite.java +74 -0
  515. data/lib/proguard4.7/src/proguard/gui/splash/ClipSprite.java +85 -0
  516. data/lib/proguard4.7/src/proguard/gui/splash/ColorSprite.java +65 -0
  517. data/lib/proguard4.7/src/proguard/gui/splash/CompositeSprite.java +56 -0
  518. data/lib/proguard4.7/src/proguard/gui/splash/ConstantColor.java +51 -0
  519. data/lib/proguard4.7/src/proguard/gui/splash/ConstantDouble.java +49 -0
  520. data/lib/proguard4.7/src/proguard/gui/splash/ConstantFont.java +46 -0
  521. data/lib/proguard4.7/src/proguard/gui/splash/ConstantInt.java +49 -0
  522. data/lib/proguard4.7/src/proguard/gui/splash/ConstantString.java +49 -0
  523. data/lib/proguard4.7/src/proguard/gui/splash/ConstantTiming.java +57 -0
  524. data/lib/proguard4.7/src/proguard/gui/splash/FontSprite.java +65 -0
  525. data/lib/proguard4.7/src/proguard/gui/splash/ImageSprite.java +76 -0
  526. data/lib/proguard4.7/src/proguard/gui/splash/LinearColor.java +72 -0
  527. data/lib/proguard4.7/src/proguard/gui/splash/LinearDouble.java +55 -0
  528. data/lib/proguard4.7/src/proguard/gui/splash/LinearInt.java +55 -0
  529. data/lib/proguard4.7/src/proguard/gui/splash/LinearTiming.java +55 -0
  530. data/lib/proguard4.7/src/proguard/gui/splash/OverrideGraphics2D.java +598 -0
  531. data/lib/proguard4.7/src/proguard/gui/splash/RectangleSprite.java +114 -0
  532. data/lib/proguard4.7/src/proguard/gui/splash/SawToothTiming.java +53 -0
  533. data/lib/proguard4.7/src/proguard/gui/splash/ShadowedSprite.java +109 -0
  534. data/lib/proguard4.7/src/proguard/gui/splash/SineTiming.java +53 -0
  535. data/lib/proguard4.7/src/proguard/gui/splash/SmoothTiming.java +66 -0
  536. data/lib/proguard4.7/src/proguard/gui/splash/SplashPanel.java +235 -0
  537. data/lib/proguard4.7/src/proguard/gui/splash/Sprite.java +41 -0
  538. data/lib/proguard4.7/src/proguard/gui/splash/TextSprite.java +89 -0
  539. data/lib/proguard4.7/src/proguard/gui/splash/TimeSwitchSprite.java +75 -0
  540. data/lib/proguard4.7/src/proguard/gui/splash/Timing.java +34 -0
  541. data/lib/proguard4.7/src/proguard/gui/splash/TypeWriterString.java +71 -0
  542. data/lib/proguard4.7/src/proguard/gui/splash/VariableColor.java +36 -0
  543. data/lib/proguard4.7/src/proguard/gui/splash/VariableDouble.java +34 -0
  544. data/lib/proguard4.7/src/proguard/gui/splash/VariableFont.java +36 -0
  545. data/lib/proguard4.7/src/proguard/gui/splash/VariableInt.java +34 -0
  546. data/lib/proguard4.7/src/proguard/gui/splash/VariableSizeFont.java +65 -0
  547. data/lib/proguard4.7/src/proguard/gui/splash/VariableString.java +34 -0
  548. data/lib/proguard4.7/src/proguard/gui/splash/package.html +4 -0
  549. data/lib/proguard4.7/src/proguard/gui/vtitle.png +0 -0
  550. data/lib/proguard4.7/src/proguard/io/CascadingDataEntryWriter.java +94 -0
  551. data/lib/proguard4.7/src/proguard/io/ClassFilter.java +59 -0
  552. data/lib/proguard4.7/src/proguard/io/ClassReader.java +115 -0
  553. data/lib/proguard4.7/src/proguard/io/ClassRewriter.java +80 -0
  554. data/lib/proguard4.7/src/proguard/io/DataEntry.java +62 -0
  555. data/lib/proguard4.7/src/proguard/io/DataEntryClassWriter.java +85 -0
  556. data/lib/proguard4.7/src/proguard/io/DataEntryCopier.java +247 -0
  557. data/lib/proguard4.7/src/proguard/io/DataEntryDirectoryFilter.java +40 -0
  558. data/lib/proguard4.7/src/proguard/io/DataEntryFilter.java +38 -0
  559. data/lib/proguard4.7/src/proguard/io/DataEntryNameFilter.java +54 -0
  560. data/lib/proguard4.7/src/proguard/io/DataEntryObfuscator.java +150 -0
  561. data/lib/proguard4.7/src/proguard/io/DataEntryParentFilter.java +51 -0
  562. data/lib/proguard4.7/src/proguard/io/DataEntryPump.java +43 -0
  563. data/lib/proguard4.7/src/proguard/io/DataEntryReader.java +38 -0
  564. data/lib/proguard4.7/src/proguard/io/DataEntryRenamer.java +104 -0
  565. data/lib/proguard4.7/src/proguard/io/DataEntryRewriter.java +148 -0
  566. data/lib/proguard4.7/src/proguard/io/DataEntryWriter.java +73 -0
  567. data/lib/proguard4.7/src/proguard/io/DirectoryFilter.java +58 -0
  568. data/lib/proguard4.7/src/proguard/io/DirectoryPump.java +78 -0
  569. data/lib/proguard4.7/src/proguard/io/DirectoryWriter.java +165 -0
  570. data/lib/proguard4.7/src/proguard/io/FileDataEntry.java +96 -0
  571. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryReader.java +90 -0
  572. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryWriter.java +125 -0
  573. data/lib/proguard4.7/src/proguard/io/Finisher.java +37 -0
  574. data/lib/proguard4.7/src/proguard/io/JarReader.java +75 -0
  575. data/lib/proguard4.7/src/proguard/io/JarWriter.java +235 -0
  576. data/lib/proguard4.7/src/proguard/io/ManifestRewriter.java +216 -0
  577. data/lib/proguard4.7/src/proguard/io/NameFilter.java +83 -0
  578. data/lib/proguard4.7/src/proguard/io/ParentDataEntryWriter.java +75 -0
  579. data/lib/proguard4.7/src/proguard/io/RenamedDataEntry.java +83 -0
  580. data/lib/proguard4.7/src/proguard/io/ZipDataEntry.java +98 -0
  581. data/lib/proguard4.7/src/proguard/io/package.html +4 -0
  582. data/lib/proguard4.7/src/proguard/obfuscate/AttributeShrinker.java +120 -0
  583. data/lib/proguard4.7/src/proguard/obfuscate/AttributeUsageMarker.java +71 -0
  584. data/lib/proguard4.7/src/proguard/obfuscate/ClassObfuscator.java +533 -0
  585. data/lib/proguard4.7/src/proguard/obfuscate/ClassRenamer.java +109 -0
  586. data/lib/proguard4.7/src/proguard/obfuscate/DictionaryNameFactory.java +189 -0
  587. data/lib/proguard4.7/src/proguard/obfuscate/MapCleaner.java +57 -0
  588. data/lib/proguard4.7/src/proguard/obfuscate/MappingKeeper.java +177 -0
  589. data/lib/proguard4.7/src/proguard/obfuscate/MappingPrinter.java +147 -0
  590. data/lib/proguard4.7/src/proguard/obfuscate/MappingProcessor.java +79 -0
  591. data/lib/proguard4.7/src/proguard/obfuscate/MappingReader.java +199 -0
  592. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCleaner.java +60 -0
  593. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCollector.java +106 -0
  594. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameConflictFixer.java +159 -0
  595. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameFilter.java +120 -0
  596. data/lib/proguard4.7/src/proguard/obfuscate/MemberObfuscator.java +230 -0
  597. data/lib/proguard4.7/src/proguard/obfuscate/MemberSpecialNameFilter.java +101 -0
  598. data/lib/proguard4.7/src/proguard/obfuscate/MultiMappingProcessor.java +96 -0
  599. data/lib/proguard4.7/src/proguard/obfuscate/NameFactory.java +34 -0
  600. data/lib/proguard4.7/src/proguard/obfuscate/NameFactoryResetter.java +59 -0
  601. data/lib/proguard4.7/src/proguard/obfuscate/NameMarker.java +166 -0
  602. data/lib/proguard4.7/src/proguard/obfuscate/NumericNameFactory.java +49 -0
  603. data/lib/proguard4.7/src/proguard/obfuscate/Obfuscator.java +445 -0
  604. data/lib/proguard4.7/src/proguard/obfuscate/ParameterNameMarker.java +128 -0
  605. data/lib/proguard4.7/src/proguard/obfuscate/SimpleNameFactory.java +156 -0
  606. data/lib/proguard4.7/src/proguard/obfuscate/SourceFileRenamer.java +84 -0
  607. data/lib/proguard4.7/src/proguard/obfuscate/SpecialNameFactory.java +83 -0
  608. data/lib/proguard4.7/src/proguard/obfuscate/package.html +3 -0
  609. data/lib/proguard4.7/src/proguard/optimize/BootstrapMethodArgumentShrinker.java +103 -0
  610. data/lib/proguard4.7/src/proguard/optimize/ChangedCodePrinter.java +297 -0
  611. data/lib/proguard4.7/src/proguard/optimize/ConstantMemberFilter.java +77 -0
  612. data/lib/proguard4.7/src/proguard/optimize/ConstantParameterFilter.java +79 -0
  613. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerFixer.java +215 -0
  614. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerInvocationFixer.java +161 -0
  615. data/lib/proguard4.7/src/proguard/optimize/KeepMarker.java +95 -0
  616. data/lib/proguard4.7/src/proguard/optimize/KeptClassFilter.java +69 -0
  617. data/lib/proguard4.7/src/proguard/optimize/KeptMemberFilter.java +88 -0
  618. data/lib/proguard4.7/src/proguard/optimize/MemberDescriptorSpecializer.java +138 -0
  619. data/lib/proguard4.7/src/proguard/optimize/MethodDescriptorShrinker.java +317 -0
  620. data/lib/proguard4.7/src/proguard/optimize/MethodStaticizer.java +87 -0
  621. data/lib/proguard4.7/src/proguard/optimize/OptimizationInfoMemberFilter.java +94 -0
  622. data/lib/proguard4.7/src/proguard/optimize/Optimizer.java +963 -0
  623. data/lib/proguard4.7/src/proguard/optimize/ParameterShrinker.java +146 -0
  624. data/lib/proguard4.7/src/proguard/optimize/TailRecursionSimplifier.java +356 -0
  625. data/lib/proguard4.7/src/proguard/optimize/WriteOnlyFieldFilter.java +65 -0
  626. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationShrinker.java +2082 -0
  627. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationSimplifier.java +973 -0
  628. data/lib/proguard4.7/src/proguard/optimize/evaluation/LivenessAnalyzer.java +526 -0
  629. data/lib/proguard4.7/src/proguard/optimize/evaluation/LoadingInvocationUnit.java +195 -0
  630. data/lib/proguard4.7/src/proguard/optimize/evaluation/PartialEvaluator.java +1282 -0
  631. data/lib/proguard4.7/src/proguard/optimize/evaluation/StoringInvocationUnit.java +207 -0
  632. data/lib/proguard4.7/src/proguard/optimize/evaluation/TracedBranchUnit.java +59 -0
  633. data/lib/proguard4.7/src/proguard/optimize/evaluation/VariableOptimizer.java +345 -0
  634. data/lib/proguard4.7/src/proguard/optimize/evaluation/package.html +4 -0
  635. data/lib/proguard4.7/src/proguard/optimize/info/AccessMethodMarker.java +202 -0
  636. data/lib/proguard4.7/src/proguard/optimize/info/BackwardBranchMarker.java +90 -0
  637. data/lib/proguard4.7/src/proguard/optimize/info/CatchExceptionMarker.java +69 -0
  638. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassFilter.java +63 -0
  639. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassMarker.java +64 -0
  640. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfo.java +165 -0
  641. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfoSetter.java +47 -0
  642. data/lib/proguard4.7/src/proguard/optimize/info/DotClassFilter.java +63 -0
  643. data/lib/proguard4.7/src/proguard/optimize/info/DotClassMarker.java +96 -0
  644. data/lib/proguard4.7/src/proguard/optimize/info/ExceptionInstructionChecker.java +193 -0
  645. data/lib/proguard4.7/src/proguard/optimize/info/FieldOptimizationInfo.java +204 -0
  646. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassFilter.java +63 -0
  647. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassMarker.java +93 -0
  648. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassFilter.java +62 -0
  649. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassMarker.java +93 -0
  650. data/lib/proguard4.7/src/proguard/optimize/info/MemberOptimizationInfoSetter.java +59 -0
  651. data/lib/proguard4.7/src/proguard/optimize/info/MethodInvocationMarker.java +107 -0
  652. data/lib/proguard4.7/src/proguard/optimize/info/MethodOptimizationInfo.java +302 -0
  653. data/lib/proguard4.7/src/proguard/optimize/info/NoSideEffectMethodMarker.java +91 -0
  654. data/lib/proguard4.7/src/proguard/optimize/info/NonPrivateMemberMarker.java +171 -0
  655. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberContainingClassMarker.java +85 -0
  656. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberInvokingClassMarker.java +129 -0
  657. data/lib/proguard4.7/src/proguard/optimize/info/ParameterUsageMarker.java +285 -0
  658. data/lib/proguard4.7/src/proguard/optimize/info/ReadWriteFieldMarker.java +163 -0
  659. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectInstructionChecker.java +245 -0
  660. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectMethodMarker.java +175 -0
  661. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassFilter.java +62 -0
  662. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassMarker.java +65 -0
  663. data/lib/proguard4.7/src/proguard/optimize/info/SuperInvocationMarker.java +93 -0
  664. data/lib/proguard4.7/src/proguard/optimize/info/VariableUsageMarker.java +96 -0
  665. data/lib/proguard4.7/src/proguard/optimize/info/package.html +4 -0
  666. data/lib/proguard4.7/src/proguard/optimize/package.html +4 -0
  667. data/lib/proguard4.7/src/proguard/optimize/peephole/BranchTargetFinder.java +687 -0
  668. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassFinalizer.java +84 -0
  669. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassMerger.java +576 -0
  670. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoCommonCodeReplacer.java +266 -0
  671. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoGotoReplacer.java +115 -0
  672. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoReturnReplacer.java +115 -0
  673. data/lib/proguard4.7/src/proguard/optimize/peephole/HorizontalClassMerger.java +90 -0
  674. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceConstants.java +4424 -0
  675. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceReplacer.java +420 -0
  676. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequencesReplacer.java +138 -0
  677. data/lib/proguard4.7/src/proguard/optimize/peephole/MemberPrivatizer.java +103 -0
  678. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodFinalizer.java +93 -0
  679. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodInliner.java +597 -0
  680. data/lib/proguard4.7/src/proguard/optimize/peephole/NopRemover.java +89 -0
  681. data/lib/proguard4.7/src/proguard/optimize/peephole/PeepholeOptimizer.java +103 -0
  682. data/lib/proguard4.7/src/proguard/optimize/peephole/ReachableCodeMarker.java +262 -0
  683. data/lib/proguard4.7/src/proguard/optimize/peephole/RetargetedInnerClassAttributeRemover.java +170 -0
  684. data/lib/proguard4.7/src/proguard/optimize/peephole/TargetClassChanger.java +455 -0
  685. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableCodeRemover.java +143 -0
  686. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableExceptionRemover.java +163 -0
  687. data/lib/proguard4.7/src/proguard/optimize/peephole/VariableShrinker.java +129 -0
  688. data/lib/proguard4.7/src/proguard/optimize/peephole/VerticalClassMerger.java +88 -0
  689. data/lib/proguard4.7/src/proguard/optimize/peephole/package.html +3 -0
  690. data/lib/proguard4.7/src/proguard/package.html +5 -0
  691. data/lib/proguard4.7/src/proguard/preverify/CodePreverifier.java +611 -0
  692. data/lib/proguard4.7/src/proguard/preverify/CodeSubroutineInliner.java +406 -0
  693. data/lib/proguard4.7/src/proguard/preverify/Preverifier.java +73 -0
  694. data/lib/proguard4.7/src/proguard/preverify/SubroutineInliner.java +73 -0
  695. data/lib/proguard4.7/src/proguard/retrace/MANIFEST.MF +3 -0
  696. data/lib/proguard4.7/src/proguard/retrace/ReTrace.java +749 -0
  697. data/lib/proguard4.7/src/proguard/retrace/package.html +4 -0
  698. data/lib/proguard4.7/src/proguard/shrink/AnnotationUsageMarker.java +333 -0
  699. data/lib/proguard4.7/src/proguard/shrink/ClassShrinker.java +458 -0
  700. data/lib/proguard4.7/src/proguard/shrink/InnerUsageMarker.java +174 -0
  701. data/lib/proguard4.7/src/proguard/shrink/InterfaceUsageMarker.java +152 -0
  702. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMark.java +183 -0
  703. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMarker.java +277 -0
  704. data/lib/proguard4.7/src/proguard/shrink/ShortestUsagePrinter.java +210 -0
  705. data/lib/proguard4.7/src/proguard/shrink/Shrinker.java +181 -0
  706. data/lib/proguard4.7/src/proguard/shrink/UsageMarker.java +1036 -0
  707. data/lib/proguard4.7/src/proguard/shrink/UsagePrinter.java +177 -0
  708. data/lib/proguard4.7/src/proguard/shrink/UsedClassFilter.java +74 -0
  709. data/lib/proguard4.7/src/proguard/shrink/UsedMemberFilter.java +93 -0
  710. data/lib/proguard4.7/src/proguard/shrink/package.html +3 -0
  711. data/lib/proguard4.7/src/proguard/util/AndMatcher.java +49 -0
  712. data/lib/proguard4.7/src/proguard/util/ClassNameParser.java +216 -0
  713. data/lib/proguard4.7/src/proguard/util/ConstantMatcher.java +48 -0
  714. data/lib/proguard4.7/src/proguard/util/EmptyStringMatcher.java +36 -0
  715. data/lib/proguard4.7/src/proguard/util/ExtensionMatcher.java +63 -0
  716. data/lib/proguard4.7/src/proguard/util/FileNameParser.java +121 -0
  717. data/lib/proguard4.7/src/proguard/util/FixedStringMatcher.java +56 -0
  718. data/lib/proguard4.7/src/proguard/util/ListMatcher.java +69 -0
  719. data/lib/proguard4.7/src/proguard/util/ListParser.java +137 -0
  720. data/lib/proguard4.7/src/proguard/util/ListUtil.java +180 -0
  721. data/lib/proguard4.7/src/proguard/util/NameParser.java +106 -0
  722. data/lib/proguard4.7/src/proguard/util/NotMatcher.java +46 -0
  723. data/lib/proguard4.7/src/proguard/util/OrMatcher.java +49 -0
  724. data/lib/proguard4.7/src/proguard/util/SettableMatcher.java +46 -0
  725. data/lib/proguard4.7/src/proguard/util/StringMatcher.java +38 -0
  726. data/lib/proguard4.7/src/proguard/util/StringParser.java +35 -0
  727. data/lib/proguard4.7/src/proguard/util/VariableStringMatcher.java +126 -0
  728. data/lib/proguard4.7/src/proguard/util/package.html +3 -0
  729. data/lib/proguard4.7/src/proguard/wtk/ProGuardObfuscator.java +141 -0
  730. data/lib/proguard4.7/src/proguard/wtk/default.pro +114 -0
  731. data/lib/proguard4.7/src/proguard/wtk/package.html +3 -0
  732. metadata +960 -10
@@ -0,0 +1,127 @@
1
+ <!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
5
+ <meta http-equiv="content-style-type" content="text/css">
6
+ <link rel="stylesheet" type="text/css" href="../style.css">
7
+ <title>ReTrace Usage</title>
8
+ <script type="text/javascript" language="JavaScript">
9
+ <!--
10
+ if (window.self==window.top)
11
+ window.top.location.replace("../../index.html#"+window.location.pathname+window.location.hash);
12
+ else {
13
+ var hash="#"+window.location.pathname.replace(window.top.location.pathname.replace("index.html", ""), "");
14
+ if (window.top.location.hash!=hash)
15
+ window.top.location.hash=hash;
16
+ }
17
+ //-->
18
+ </script>
19
+ </head>
20
+ <body>
21
+
22
+ <h2>Usage</h2>
23
+
24
+ You can find the ReTrace jar in the <code>lib</code> directory of the
25
+ ProGuard distribution. To run ReTrace, just type:
26
+ <p>
27
+ <p class="code">
28
+ <code><b>java -jar retrace.jar </b></code>[<i>options...</i>]
29
+ <i>mapping_file</i> [<i>stacktrace_file</i>]
30
+ </p>
31
+ These are the arguments:
32
+
33
+ <dl>
34
+ <dt><i>mapping_file</i></dt>
35
+
36
+ <dd>Specifies the name of the mapping file, produced by ProGuard with the
37
+ option
38
+ "<a href="../usage.html#printmapping"><code>-printmapping</code></a> <i>mapping_file</i>",
39
+ while obfuscating the application that produced the stack trace.</dd>
40
+
41
+ <dt><i>stacktrace_file</i></dt>
42
+
43
+ <dd>Optionally specifies the name of the file containing the stack trace. If
44
+ no file is specified, a stack trace is read from the standard input. Blank
45
+ lines and unrecognized lines are ignored, as far as possible.</dd>
46
+ </dl>
47
+
48
+ The following options are supported:
49
+ <dl>
50
+ <dt><code><b>-verbose</b></code></dt>
51
+
52
+ <dd>Specifies to print out more informative stack traces that include not only
53
+ method names, but also method return types and arguments.</dd>
54
+
55
+ <dt><code><b>-regex</b></code> <i>regular_expression</i></dt>
56
+
57
+ <dd>Specifies the regular expression that is used to parse the lines in the
58
+ stack trace. Specifying a different regular expression allows to
59
+ de-obfuscate more general types of input than just stack traces. The
60
+ default is suitable for stack traces produced by most JVMs:
61
+ <pre>
62
+ (?:\s*%c:.*)|(?:\s*at\s+%c.%m\s*\(.*?(?::%l)?\)\s*)
63
+ </pre>
64
+ The regular expression is a Java regular expression (cfr. the documentation
65
+ of <code>java.util.regex.Pattern</code>), with a few additional wildcards:
66
+ <table cellspacing="10">
67
+ <tr><td valign="top"><code><b>%c</b></code></td>
68
+ <td>matches a class name (e.g.
69
+ "<code>myapplication.MyClass</code>").</td></tr>
70
+ <tr><td valign="top"><code><b>%C</b></code></td>
71
+ <td>matches a class name with slashes (e.g.
72
+ "<code>myapplication/MyClass</code>").</td></tr>
73
+ <tr><td valign="top"><code><b>%t</b></code></td>
74
+ <td>matches a field type or method return type (e.g.
75
+ "<code>myapplication.MyClass[]</code>").</td></tr>
76
+ <tr><td valign="top"><code><b>%f</b></code></td>
77
+ <td>matches a field name (e.g.
78
+ "<code>myField</code>").</td></tr>
79
+ <tr><td valign="top"><code><b>%m</b></code></td>
80
+ <td>matches a method name (e.g.
81
+ "<code>myMethod</code>").</td></tr>
82
+ <tr><td valign="top"><code><b>%a</b></code></td>
83
+ <td>matches a list of method arguments (e.g.
84
+ "<code>boolean,int</code>").</td></tr>
85
+ <tr><td valign="top"><code><b>%l</b></code></td>
86
+ <td>matches a line number inside a method (e.g.
87
+ "<code>123</code>").</td></tr>
88
+ </table>
89
+ Elements that match these wildcards are de-obfuscated, when possible. Note
90
+ that regular expressions must not contain any capturing groups. Use
91
+ non-capturing groups instead: <code>(?:</code>...<code>)</code>
92
+ </dd>
93
+ </dl>
94
+
95
+ The restored stack trace is printed to the standard output. The completeness
96
+ of the restored stack trace depends on the presence of line number tables in
97
+ the obfuscated class files:
98
+
99
+ <ul>
100
+ <li>If all line numbers have been preserved while obfuscating the application,
101
+ ReTrace will be able to restore the stack trace completely.</li>
102
+
103
+ <li>If the line numbers have been removed, mapping obfuscated method names
104
+ back to their original names has become ambiguous. Retrace will list all
105
+ possible original method names for each line in the stack trace. The user
106
+ can then try to deduce the actual stack trace manually, based on the logic
107
+ of the program.</li>
108
+
109
+ </ul>
110
+ <p>
111
+
112
+ Preserving line number tables is explained in detail in this <a
113
+ href="../examples.html#stacktrace">example</a> in the ProGuard User Manual.
114
+ <p>
115
+
116
+ Unobfuscated elements and obfuscated elements for which no mapping is available
117
+ will be left unchanged.
118
+
119
+ <hr />
120
+ <noscript><div><a target="_top" href="../../index.html" class="button">Show menu</a></div></noscript>
121
+ <address>
122
+ Copyright &copy; 2002-2011
123
+ <a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a>.
124
+ </address>
125
+ </body>
126
+ </html>
127
+
@@ -0,0 +1,60 @@
1
+ <!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
5
+ <meta http-equiv="content-script-type" content="text/javascript">
6
+ <meta http-equiv="content-style-type" content="text/css">
7
+ <link rel="stylesheet" type="text/css" href="../style.css">
8
+ <title>Sections</title>
9
+ </head>
10
+ <body class="navigation">
11
+
12
+ <ul class="navigation">
13
+ <li><a href="../sections.html">&lt;&lt; Main menu</a></li>
14
+
15
+ <li class="title">ProGuard Manual</li>
16
+ <li><a target="main" href="introduction.html">Introduction</a></li>
17
+ <li><a target="main" href="usage.html">Usage</a></li>
18
+ <li><a target="main" href="limitations.html">Limitations</a></li>
19
+ <li><a target="main" href="examples.html">Examples</a></li>
20
+ <li><a target="main" href="troubleshooting.html">Troubleshooting</a></li>
21
+ <li><a target="main" href="refcard.html">Ref Card</a></li>
22
+ <li><a target="main" href="gui.html">GUI</a></li>
23
+ <li><a target="main" href="ant.html">Ant Task</a></li>
24
+ <li><a target="main" href="wtk.html">JME WTK</a></li>
25
+
26
+ <li class="title">ReTrace Manual</li>
27
+ <li><a target="main" href="retrace/introduction.html">Introduction</a></li>
28
+ <li><a target="main" href="retrace/usage.html">Usage</a></li>
29
+ <li><a target="main" href="retrace/examples.html">Examples</a></li>
30
+ </ul>
31
+
32
+ <p>
33
+ <center>
34
+ <small>With support of</small>
35
+ <p>
36
+
37
+ <a href="http://sourceforge.net/projects/proguard/" target="other">
38
+
39
+ <script type="text/javascript" language="JavaScript">
40
+ <!--
41
+ document.write("<img src=\"");
42
+ document.write(document.location.hostname == "proguard.sourceforge.net" ?
43
+ "http://sourceforge.net/sflogo.php?group_id=54750&amp;type=1" :
44
+ "../sflogo.png");
45
+ document.write("\" width=\"88\" height=\"31\" alt=\"SourceForge\" />");
46
+ //-->
47
+ </script>
48
+ <noscript>
49
+ <img src="../sflogo.png" width="88" height="31" alt="SourceForge" />
50
+ </noscript>
51
+
52
+ </a>
53
+
54
+ <p>
55
+ <a href="http://www.saikoa.com/" target="_top">
56
+ <img src="../saikoalogo.png" width="88" height="19" alt="Saikoa" /></a>
57
+ </center>
58
+
59
+ </body>
60
+ </html>
@@ -0,0 +1,105 @@
1
+ @charset "iso-8859-1";
2
+
3
+ /* Global settings. */
4
+
5
+ body {
6
+ background: #FFFFFF;
7
+ }
8
+
9
+ h1 {
10
+ text-align: center;
11
+ }
12
+
13
+ h2 {
14
+ background: #EEEEFF;
15
+ padding: 10px;
16
+ }
17
+
18
+ dt {
19
+ padding: 6px;
20
+ }
21
+
22
+ dt div
23
+ {
24
+ color: grey;
25
+ float: right;
26
+ }
27
+
28
+ dd {
29
+ padding: 6px;
30
+ }
31
+
32
+ pre {
33
+ padding: 10px;
34
+ background: #E0E0E0;
35
+ }
36
+
37
+ ul.spacious li
38
+ {
39
+ padding: 8px;
40
+ }
41
+
42
+ a
43
+ {
44
+ text-decoration: none;
45
+ }
46
+
47
+ a.button {
48
+ color: #000000;
49
+ text-decoration: none;
50
+ background: #E0E0E0;
51
+ border: 1px outset #FFFFFF;
52
+ float: right;
53
+ }
54
+
55
+ /* Settings for variable width code. */
56
+
57
+ p.code {
58
+ padding: 10px;
59
+ background: #E0E0E0;
60
+ }
61
+
62
+
63
+ /* Settings for diagrams. */
64
+
65
+ table.diagram {
66
+ padding: 8px;
67
+ border: none;
68
+ border-spacing: 2px;
69
+ }
70
+
71
+ td.transparentblock {
72
+ text-align: center;
73
+ padding: 10px 0px;
74
+ }
75
+
76
+ td.whiteblock {
77
+ width: 100px;
78
+ text-align: center;
79
+ border: 1px solid #C0C0C0;
80
+ background: #E0E0E0;
81
+ padding: 10px 0px;
82
+ }
83
+
84
+ td.lightblock {
85
+ width: 100px;
86
+ text-align: center;
87
+ border: 1px solid #8888FF;
88
+ background: #BBBBFF;
89
+ padding: 20px 0px;
90
+ }
91
+
92
+ td.darkblock {
93
+ width: 100px;
94
+ text-align: center;
95
+ background: #8888FF;
96
+ padding: 20px 0px;
97
+ }
98
+
99
+ /* Settings for buttons. */
100
+
101
+ td.button {
102
+ background: #E0E0E0;
103
+ border: 1px outset #FFFFFF;
104
+ font-weight: bold;
105
+ }
@@ -0,0 +1,729 @@
1
+ <!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
5
+ <meta http-equiv="content-style-type" content="text/css">
6
+ <link rel="stylesheet" type="text/css" href="style.css">
7
+ <title>ProGuard Troubleshooting</title>
8
+ <script type="text/javascript" language="JavaScript">
9
+ <!--
10
+ if (window.self==window.top)
11
+ window.top.location.replace("../index.html#"+window.location.pathname+window.location.hash);
12
+ else {
13
+ var hash="#"+window.location.pathname.replace(window.top.location.pathname.replace("index.html", ""), "");
14
+ if (window.top.location.hash!=hash)
15
+ window.top.location.hash=hash;
16
+ }
17
+ //-->
18
+ </script>
19
+ </head>
20
+ <body>
21
+
22
+ <h2>Troubleshooting</h2>
23
+
24
+ While preparing a configuration for processing your code, you may bump into a
25
+ few problems. The following sections discuss some common issues and solutions:
26
+
27
+ <h3><a href="#processing">Problems while processing</a></h3>
28
+ <ul>
29
+ <li><a href="#dynamicalclass">Note: can't find dynamically referenced class</a></li>
30
+ <li><a href="#dynamicalclasscast">Note: ... calls '(...)Class.forName(variable).newInstance()'</a></li>
31
+ <li><a href="#dynamicalclassmember">Note: ... accesses a field/method '...' dynamically</a></li>
32
+ <li><a href="#descriptorclass">Note: the configuration keeps the entry point '...', but not the descriptor class '...'</a></li>
33
+ <li><a href="#classmembers">Note: the configuration doesn't specify which class members to keep for class '...'</a></li>
34
+ <li><a href="#duplicateclass">Note: duplicate definition of program/library class</a></li>
35
+ <li><a href="#duplicatezipentry">Warning: can't write resource ... Duplicate zip entry</a></li>
36
+ <li><a href="#unresolvedclass">Warning: can't find superclass or interface</a></li>
37
+ <li><a href="#unresolvedclass">Warning: can't find referenced class</a></li>
38
+ <li><a href="#superclass">Error: Can't find any super classes of ... (not even immediate super class ...)</a></li>
39
+ <li><a href="#superclass">Error: Can't find common super class of ... and ...</a></li>
40
+ <li><a href="#unresolvedclassmember">Warning: can't find referenced field/method</a></li>
41
+ <li><a href="#unresolvedenclosingmethod">Warning: can't find enclosing class/method</a></li>
42
+ <li><a href="#dependency">Warning: library class ... depends on program class ...</a></li>
43
+ <li><a href="#unexpectedclass">Warning: class file ... unexpectedly contains class ...</a></li>
44
+ <li><a href="#mappingconflict1">Warning: ... is not being kept as ..., but remapped to ...</a></li>
45
+ <li><a href="#mappingconflict2">Warning: field/method ... can't be mapped to ...</a></li>
46
+ <li><a href="#unsupportedclassversion">Error: Unsupported class version number</a></li>
47
+ <li><a href="#keep">Error: You have to specify '-keep' options</a></li>
48
+ <li><a href="#filename">Error: Expecting class path separator ';' before 'Files\Java\...' (in Windows)</a></li>
49
+ <li><a href="#macosx">Error: Can't read [.../lib/rt.jar] (No such file or directory) (in MacOS X)</a></li>
50
+ <li><a href="#startinggui">Internal problem starting the ProGuard GUI (Cannot write XdndAware property) (in Linux)</a></li>
51
+ <li><a href="#outofmemoryerror">OutOfMemoryError</a></li>
52
+ <li><a href="#stackoverflowerror">StackOverflowError</a></li>
53
+ <li><a href="#unexpectederror">Unexpected error</a></li>
54
+ <li><a href="#otherwise">Otherwise...</a></li>
55
+ </ul>
56
+
57
+ <h3><a href="#afterprocessing">Unexpected observations after processing</a></h3>
58
+ <ul>
59
+ <li><a href="#disappearingclasses">Disappearing classes</a></li>
60
+ <li><a href="#notkept">Classes or class members not being kept</a></li>
61
+ <li><a href="#notobfuscated">Variable names not being obfuscated</a></li>
62
+ </ul>
63
+
64
+ <h3><a href="#dalvik">Problems while converting to Android Dalvik bytecode</a></h3>
65
+
66
+ <ul>
67
+ <li><a href="#simexception">SimException: local variable type mismatch</a></li>
68
+ <li><a href="#conversionerror">Conversion to Dalvik format failed with error 1</a></li>
69
+ </ul>
70
+
71
+ <h3><a href="#preverifying">Problems while preverifying for Java Micro Edition</a></h3>
72
+
73
+ <ul>
74
+ <li><a href="#invalidclassexception1">InvalidClassException, class loading error, or verification error</a></li>
75
+ </ul>
76
+
77
+ <h3><a href="#runtime">Problems at run-time</a></h3>
78
+ <ul>
79
+ <li><a href="#stacktraces">Stack traces without class names or line numbers</a></li>
80
+ <li><a href="#noclassdeffounderror">NoClassDefFoundError</a></li>
81
+ <li><a href="#classnotfoundexception">ClassNotFoundException</a></li>
82
+ <li><a href="#nosuchmethodexception">NoSuchMethodException</a></li>
83
+ <li><a href="#missingresourceexception">MissingResourceException or NullPointerException</a></li>
84
+ <li><a href="#disappearingannotations">Disappearing annotations</a></li>
85
+ <li><a href="#invalidjarfile">Invalid or corrupt jarfile</a></li>
86
+ <li><a href="#invalidjarindexexception">InvalidJarIndexException: Invalid index</a></li>
87
+ <li><a href="#invalidclassexception2">InvalidClassException, class loading error, or verification error (in Java Micro Edition)</a></li>
88
+ <li><a href="#nosuchfieldormethod">Error: No Such Field or Method, Error verifying method (in a Java Micro Edition emulator)</a></li>
89
+ <li><a href="#failingmidlets">Failing midlets (on a Java Micro Edition device)</a></li>
90
+ <li><a href="#disappearingloops">Disappearing loops</a></li>
91
+ <li><a href="#securityexception">SecurityException: SHA1 digest error</a></li>
92
+ <li><a href="#classcastexception">ClassCastException: class not an enum</a></li><li><a href="#classcastexception">IllegalArgumentException: class not an enum type</a></li>
93
+ <li><a href="#arraystoreexception">ArrayStoreException: sun.reflect.annotation.EnumConstantNotPresentExceptionProxy</a></li>
94
+ <li><a href="#compilererror">CompilerError: duplicate addition</a></li>
95
+ <li><a href="#classformaterror1">ClassFormatError: repetitive field name/signature</a></li>
96
+ <li><a href="#classformaterror2">ClassFormatError: Invalid index in LocalVariableTable in class file</a></li>
97
+ <li><a href="#nosuchmethoderror">NoSuchMethodError or AbstractMethodError</a></li>
98
+ <li><a href="#verifyerror">VerifyError</a></li>
99
+ </ul>
100
+
101
+
102
+ <h2><a name="processing">Problems while processing</a></h2>
103
+
104
+ ProGuard may print out some notes and non-fatal warnings:
105
+
106
+ <dl>
107
+ <dt><a name="dynamicalclass"><b>Note: can't find dynamically referenced class</b></a></dt>
108
+
109
+ <dd>ProGuard can't find a class or interface that your code is accessing by
110
+ means of introspection. You should check if you want to add the jar that
111
+ contains this class.</dd>
112
+
113
+ <dt><a name="dynamicalclasscast"><b>Note: ... calls '(...)Class.forName(variable).newInstance()'</b></a></dt>
114
+
115
+ <dd>ProGuard lists all class casts of dynamically created class instances,
116
+ like "<code>(MyClass)Class.forName(variable).newInstance()</code>".
117
+ Depending on your application, you may need to keep the mentioned classes
118
+ with an option like "<code>-keep class MyClass</code>", or their
119
+ implementations with an option like "<code>-keep class * implements
120
+ MyClass</code>". You can switch off these notes by specifying the
121
+ <a href="usage.html#dontnote"><code>-dontnote</code></a> option.</dd>
122
+
123
+ <dt><a name="dynamicalclassmember"><b>Note: ... accesses a field/method '...' dynamically</b></a></dt>
124
+
125
+ <dd>ProGuard lists a number of constructs like
126
+ "<code>.getField("myField")</code>". Depending on your application, you
127
+ may need to figure out where the mentioned class members are defined and
128
+ keep them with an option like "<code>-keep class MyClass { MyFieldType
129
+ myField; }</code>". Otherwise, ProGuard might remove or obfuscate the
130
+ class members, since it can't know which ones they are exactly. It does
131
+ list possible candidates, for your information. You can switch off these
132
+ notes by specifying the <a
133
+ href="usage.html#dontnote"><code>-dontnote</code></a> option.</dd>
134
+
135
+ <dt><a name="descriptorclass"><b>Note: the configuration keeps the entry point '...', but not the descriptor class '...'</b></a></dt>
136
+
137
+ <dd>Your configuration contains a <code>-keep</code> option to preserve the
138
+ given method (or field), but no <code>-keep</code> option for the given
139
+ class that is an argument type or return type in the method's descriptor.
140
+ You may then want to keep the class too. Otherwise, ProGuard will
141
+ obfuscate its name, thus changing the method's signature. The method might
142
+ then become unfindable as an entry point, e.g. if it is part of a public
143
+ API. You can switch off these notes by specifying the <a
144
+ href="usage.html#dontnote"><code>-dontnote</code></a> option.</dd>
145
+
146
+ <dt><a name="classmembers"><b>Note: the configuration doesn't specify which class members to keep for class '...'</b></a></dt>
147
+
148
+ <dd>Your configuration contains
149
+ a <code>-keepclassmembers/-keepclasseswithmembers</code> option to
150
+ preserve fields or methods in the given class, but it doesn't specify
151
+ which fields or methods. This way, the option simply won't have any
152
+ effect. You probably want to specify one or more fields or methods, as
153
+ usual between curly braces. You can specify all fields or methods with a
154
+ wildcard "<code>*;</code>". You can switch off these notes by specifying
155
+ the <a href="usage.html#dontnote"><code>-dontnote</code></a> option.</dd>
156
+
157
+ <dt><a name="duplicateclass"><b>Note: duplicate definition of program/library class</b></a></dt>
158
+
159
+ <dd>Your program jars or library jars contain multiple definitions of the
160
+ listed classes. ProGuard continues processing as usual, only considering
161
+ the first definitions. The warning may be an indication of some problem
162
+ though, so it's advisable to remove the duplicates. A convenient way to do
163
+ so is by specifying filters on the input jars or library jars. You can
164
+ switch off these notes by specifying the <a
165
+ href="usage.html#dontnote"><code>-dontnote</code></a> option.</dd>
166
+
167
+ <dt><a name="duplicatezipentry"><b>Warning: can't write resource ... Duplicate zip entry</b></a></dt>
168
+
169
+ <dd>Your input jars contain multiple resource files with the same name.
170
+ ProGuard continues copying the resource files as usual, skipping any files
171
+ with previously used names. Once more, the warning may be an indication of
172
+ some problem though, so it's advisable to remove the duplicates. A
173
+ convenient way to do so is by specifying filters on the input jars. There
174
+ is no option to switch off these warnings.</dd>
175
+
176
+ </dl>
177
+ <p>
178
+
179
+ ProGuard may terminate when it encounters parsing errors or I/O errors, or
180
+ some more serious warnings:
181
+
182
+ <dl>
183
+ <dt><a name="unresolvedclass"><b>Warning: can't find superclass or interface</b><br/><b>Warning: can't find referenced class</b></a></dt>
184
+
185
+ <dd>If there are unresolved references to classes or interfaces, you most
186
+ likely forgot to specify an essential library. For proper processing, all
187
+ libraries that are referenced by your code must be specified, including
188
+ the Java run-time library. For specifying libraries, use
189
+ the <a href="usage.html#libraryjars"><code>-libraryjars</code></a> option.
190
+ <p>
191
+ For example, if ProGuard complains that it can't find a
192
+ <code>javax.crypto</code> class, you probably still have to specify
193
+ <code>jce.jar</code>, next to the more common <code>rt.jar</code>.
194
+ <p>
195
+ If you're missing a library and you're absolutely sure it isn't used
196
+ anyway, you can try your luck with the <a
197
+ href="usage.html#ignorewarnings"><code>-ignorewarnings</code></a> option,
198
+ or even the <a href="usage.html#dontwarn"><code>-dontwarn</code></a>
199
+ option. Only use these options if you really know what you're doing
200
+ though.
201
+ <p>
202
+ For example, if you're developing for Android, and ProGuard complains that
203
+ it can't find a <code>java.awt</code> class, then some library that you
204
+ are using is referring to <code>java.awt</code>. This is a bit shady, since
205
+ Android doesn't have this package at all, but if your application works
206
+ anyway, you can let ProGuard accept it with "<code>-dontwarn
207
+ java.awt.**</code>".</dd>
208
+
209
+ <dt><a name="superclass"><b>Error: Can't find any super classes of ... (not even immediate super class ...)</b><br/><b>Error: Can't find common super class of ... and ...</b></a></dt>
210
+
211
+ <dd>It seems like you tried to avoid the warnings from the previous paragraph
212
+ by specifying
213
+ <a href="usage.html#ignorewarnings"><code>-ignorewarnings</code></a>
214
+ or <a href="usage.html#dontwarn"><code>-dontwarn</code></a>, but it didn't
215
+ work out. ProGuard's optimization step and preverification step really
216
+ need the missing classes to make sense of the code. Preferably, you would
217
+ solve the problem by adding the missing library, as discussed. If you're
218
+ sure the class that references the missing class isn't used either, you
219
+ could also try filtering it out from the input, by adding a filter to the
220
+ corresponding <a href="usage.html#injars"><code>-injars</code></a> option:
221
+ "<code>-injars
222
+ myapplication.jar(!somepackage/SomeUnusedClass.class)</code>". Hopefully,
223
+ you can access the configuration of your build process for such a
224
+ modification. As a final solution, you could switch off optimization
225
+ (<a href="usage.html#dontoptimize"><code>-dontoptimize</code></a>) and
226
+ preverification
227
+ (<a href="usage.html#dontpreverify"><code>-dontpreverify</code></a>).</dd>
228
+
229
+ <dt><a name="unresolvedclassmember"><b>Warning: can't find referenced field/method</b></a></dt>
230
+
231
+ <dd>If there are unresolved references to class members in input classes, your
232
+ class files are most likely inconsistent. Possibly, some class file didn't
233
+ get recompiled properly, or some class file was left behind after its
234
+ source file was removed. Try removing all class files, recompiling them,
235
+ zipping them up, and running ProGuard again.
236
+ <p>
237
+ If your program classes reside in the same packages as library classes,
238
+ and refer to their package visible class members, then you should also
239
+ specify the
240
+ <a href="usage.html#dontskipnonpubliclibraryclassmembers"><code>-dontskipnonpubliclibraryclassmembers</code></a>
241
+ option.</dd>
242
+
243
+ <dt><a name="unresolvedenclosingmethod"><b>Warning: can't find enclosing class/method</b></a></dt>
244
+
245
+ <dd>If there are unresolved references to classes that are defined inside
246
+ methods in your input, once more, your class files are most likely
247
+ inconsistent. Possibly, some class file didn't get recompiled properly, or
248
+ some class file was left behind after its source file was removed. Try
249
+ removing all class files, recompiling them, zipping them up, and running
250
+ ProGuard again.</dd>
251
+
252
+ <dt><a name="dependency"><b>Warning: library class ... depends on program class ...</b></a></dt>
253
+
254
+ <dd>If any of your library classes depend on your program classes, by
255
+ extending, implementing or just referencing them, your processed code will
256
+ generally be unusable. Program classes can depend on library classes, but
257
+ not the other way around. Program classes are processed, while library
258
+ classes always remain unchanged. It is therefore impossible to adapt
259
+ references from library classes to program classes, for instance if the
260
+ program classes are renamed. You should define a clean separation between
261
+ program code (specified with <a
262
+ href="usage.html#injars"><code>-injars</code></a>) and library code
263
+ (specified with <a
264
+ href="usage.html#libraryjars"><code>-libraryjars</code></a>), and try
265
+ again.</dd>
266
+
267
+ <dt><a name="unexpectedclass"><b>Warning: class file ... unexpectedly contains class ...</b></a></dt>
268
+
269
+ <dd>The given class file contains a definition for the given class, but the
270
+ directory name of the file doesn't correspond to the package name of the
271
+ class. ProGuard will accept the class definition, but the current
272
+ implementation will not write out the processed version. Please make sure
273
+ your input classes are packaged correctly. Notably, class files that are
274
+ in the <code>WEB-INF/classes</code> directory in a war should be packaged
275
+ in a jar and put in the <code>WEB-INF/lib</code> directory. If you don't
276
+ mind these classes not being written to the output, you can specify the <a
277
+ href="usage.html#ignorewarnings"><code>-ignorewarnings</code></a> option,
278
+ or even the <a href="usage.html#dontwarn"><code>-dontwarn</code></a>
279
+ option.</dd>
280
+
281
+ <dt><a name="mappingconflict1"><b>Warning: ... is not being kept as ..., but remapped to ...</b></a></dt>
282
+
283
+ <dd>There is a conflict between a <code>-keep</code> option in the
284
+ configuration, and the mapping file, in the obfuscation step. The given
285
+ class name or class member name can't be kept by its original name, as
286
+ specified in the configuration, but it has to be mapped to the other given
287
+ name, as specified in the mapping file. You should adapt your
288
+ configuration or your mapping file to remove the conflict. Alternatively,
289
+ if you're sure the renaming won't hurt, you can specify the <a
290
+ href="usage.html#ignorewarnings"><code>-ignorewarnings</code></a> option,
291
+ or even the <a href="usage.html#dontwarn"><code>-dontwarn</code></a>
292
+ option.</dd>
293
+
294
+ <dt><a name="mappingconflict2"><b>Warning: field/method ... can't be mapped to ...</b></a></dt>
295
+
296
+ <dd>There is a conflict between some new program code and the mapping file, in
297
+ the obfuscation step. The given class member can't be mapped to the given
298
+ name, because it would conflict with another class member that is already
299
+ being mapped to the same name. This can happen if you are performing
300
+ incremental obfuscation, applying an obfuscation mapping file from an
301
+ initial obfuscation step. For instance, some new class may have been added
302
+ that extends two existing classes, introducing a conflict in the name
303
+ space of its class members. If you're sure the class member receiving
304
+ another name than the one specified won't hurt, you can specify the <a
305
+ href="usage.html#ignorewarnings"><code>-ignorewarnings</code></a> option,
306
+ or even the <a href="usage.html#dontwarn"><code>-dontwarn</code></a>
307
+ option. Note that you should always use the <a
308
+ href="usage.html#useuniqueclassmembernames"><code>-useuniqueclassmembernames</code></a>
309
+ option in the initial obfuscation step, in order to reduce the risk of
310
+ conflicts.</dd>
311
+
312
+ <dt><a name="unsupportedclassversion"><b>Error: Unsupported class version number</b></a></dt>
313
+
314
+ <dd>You are trying to process class files compiled for a recent version of
315
+ Java that your copy of ProGuard doesn't support yet. You should check if
316
+ there is a more recent release
317
+ <a href="http://proguard.sourceforge.net/downloads.html">on-line</a>.</dd>
318
+
319
+ <dt><a name="keep"><b>Error: You have to specify '-keep' options</b></a></dt>
320
+
321
+ <dd>You either forgot to specify <a
322
+ href="usage.html#keep"><code>-keep</code></a> options, or you mistyped the
323
+ class names. ProGuard has to know exactly what you want to keep: an
324
+ application, an applet, a servlet, a midlet,..., or any combination of
325
+ these. Without the proper seed specifications, ProGuard would shrink,
326
+ optimize, or obfuscate all class files away.</dd>
327
+
328
+ <dt><a name="filename"><b>Error: Expecting class path separator ';' before 'Files\Java\</b>...<b>'</b> (in Windows)</a></dt>
329
+
330
+ <dd>If the path of your run-time jar contains spaces, like in "Program Files",
331
+ you have to enclose it with single or double quotes, as explained in the
332
+ section on <a href="usage.html#filename">file names</a>. This is actually
333
+ true for all file names containing special characters, on all
334
+ platforms.</dd>
335
+
336
+ <dt><a name="macosx"><b>Error: Can't read [</b>...<b>/lib/rt.jar] (No such file or directory)</b> (in MacOS X)</a></dt>
337
+
338
+ <dd>In MacOS X, the run-time classes may be in a different place than on most
339
+ other platforms. You'll then have to adapt your configuration, replacing
340
+ the path <code>&lt;java.home&gt;/lib/rt.jar</code> by
341
+ <code>&lt;java.home&gt;/../Classes/classes.jar</code>.</dd>
342
+
343
+ <dt><a name="startinggui"><b>Internal problem starting the ProGuard GUI (Cannot write XdndAware property)</b> (in Linux)</a></dt>
344
+
345
+ <dd>In Linux, at least with Java 6, the GUI may not start properly, due to
346
+ <a href="http://bugs.sun.com/view_bug.do?bug_id=7027598">Sun
347
+ Bug #7027598</a>. The work-around at this time is to specify the JVM
348
+ option <code>-DsuppressSwingDropSupport=true</code> when running the
349
+ GUI.</dd>
350
+
351
+ <dd>
352
+
353
+ </dl>
354
+ <p>
355
+
356
+ Should ProGuard crash while processing your application:
357
+
358
+ <dl>
359
+ <dt><a name="outofmemoryerror"><b>OutOfMemoryError</b></a></dt>
360
+
361
+ <dd>You can try increasing the heap size of the Java virtual machine (with the
362
+ usual <code>-Xms</code> and <code>-Xmx</code> options). You can also
363
+ reduce the amount of memory that ProGuard needs by removing unnecessary
364
+ library jars from your configuration, or by filtering out unused library
365
+ packages and classes. Remember that only classes or interfaces that are
366
+ extended or implemented by classes in your input jars are required.</dd>
367
+
368
+ <dt><a name="stackoverflowerror"><b>StackOverflowError</b></a></dt>
369
+
370
+ <dd>This error might occur when processing a large code base on Windows
371
+ (surprisingly, not so easily on Linux). In theory, increasing the stack
372
+ size of the Java virtual machine (with the usual <code>-Xss</code> option)
373
+ should help too. In practice however, the <code>-Xss</code> setting
374
+ doesn't have any effect on the main thread, due to <a
375
+ href="http://bugs.sun.com/view_bug.do?bug_id=4362291">Sun Bug
376
+ #4362291</a>. As a result, this solution will only work when running
377
+ ProGuard in a different thread, e.g. from its GUI.</dd>
378
+
379
+ <dt><a name="unexpectederror"><b>Unexpected error</b></a></dt>
380
+
381
+ <dd>ProGuard has encountered an unexpected condition, typically in the
382
+ optimization step. It may or may not recover. You should be able to avoid
383
+ it using the <a
384
+ href="usage.html#dontoptimize"><code>-dontoptimize</code></a> option. In
385
+ any case, please report the problem, preferably with the simplest example
386
+ that causes ProGuard to crash.</dd>
387
+
388
+ <dt><a name="otherwise"><b>Otherwise...</b></a></dt>
389
+
390
+ <dd>Maybe your class files are corrupt. See if recompiling them and trying
391
+ again helps. If not, please report the problem, preferably with the
392
+ simplest example that causes ProGuard to crash.</dd>
393
+
394
+ </dl>
395
+ <p>
396
+
397
+ <h2><a name="afterprocessing">Unexpected observations after processing</a></h2>
398
+
399
+ If ProGuard seems to run fine, but your processed code doesn't look right,
400
+ there might be a couple of reasons:
401
+
402
+ <dl>
403
+ <dt><a name="disappearingclasses"><b>Disappearing classes</b></a></dt>
404
+
405
+ <dd>If you are working on Windows and it looks like some classes have
406
+ disappeared from your output, you should make sure you're not writing your
407
+ output class files to a directory (or unpacking the output jar). On
408
+ platforms with case-insensitive file systems, such as Windows, unpacking
409
+ tools often let class files with similar lower-case and upper-case names
410
+ overwrite each other. If you really can't switch to a different operating
411
+ system, you could consider using ProGuard's <a
412
+ href="usage.html#dontusemixedcaseclassnames"><code>-dontusemixedcaseclassnames</code></a>
413
+ option.
414
+ <p>
415
+ Also, you should make sure your class files are in directories that
416
+ correspond to their package names. ProGuard will read misplaced class
417
+ files, but it will currently not write their processed versions. Notably,
418
+ class files that are in the <code>WEB-INF/classes</code> directory in a
419
+ war should be packaged in a jar and put in the <code>WEB-INF/lib</code>
420
+ directory.</dd>
421
+
422
+ <dt><a name="notkept"><b>Classes or class members not being kept</b></a></dt>
423
+
424
+ <dd>If ProGuard is not keeping the right classes or class members, make sure
425
+ you are using fully qualified class names. If the package name of some
426
+ class is missing, ProGuard won't match the elements that you might be
427
+ expecting. It may help to double-check for typos too. You can use the <a
428
+ href="usage.html#printseeds"><code>-printseeds</code></a> option to see
429
+ which elements are being kept exactly.
430
+ <p>
431
+ If you are using marker interfaces to keep other classes, the marker
432
+ interfaces themselves are probably being removed in the shrinking step.
433
+ You should therefore always explicitly keep any marker interfaces, with
434
+ an option like "<code>-keep interface MyMarkerInterface</code>".
435
+ <p>
436
+ Similarly, if you are keeping classes based on annotations, you may have to
437
+ avoid that the annotation classes themselves are removed in the shrinking
438
+ step. You can explicitly keep all annotation classes in your program code
439
+ with an option like "<code>-keep @interface *</code>".<dd>
440
+
441
+ <dt><a name="notobfuscated"><b>Variable names not being obfuscated</b></a></dt>
442
+
443
+ <dd>If the names of the local variables and parameters in your obfuscated code
444
+ don't look obfuscated, because they suspiciously resemble the names of
445
+ their types, it's probably because the decompiler that you are using is
446
+ coming up with those names. ProGuard's obfuscation step does remove the
447
+ original names entirely, unless you explicitly keep the
448
+ <code>LocalVariableTable</code> or <code>LocalVariableTypeTable</code>
449
+ attributes.</dd>
450
+
451
+ </dl>
452
+
453
+ <h2><a name="dalvik">Problems while converting to Android Dalvik bytecode</a></h2>
454
+
455
+ If ProGuard seems to run fine, but the dx tool in the Android SDK subsequently
456
+ fails with an error:
457
+
458
+ <dl>
459
+ <dt><a name="simexception"><b>SimException: local variable type mismatch</b></a></dt>
460
+
461
+ <dd>This error indicates that ProGuard's optimization step has not been able
462
+ to maintain the correct debug information about local variables. This can
463
+ happen if some code is optimized radically. Possible work-arounds: let the
464
+ java compiler not produce debug information (<code>-g:none</code>), or let
465
+ ProGuard's obfuscation step remove the debug information again
466
+ (by <i>not</i> keeping the attributes <code>LocalVariableTable</code>
467
+ and <code>LocalVariableTypeTable</code>
468
+ with <a href="usage.html#keepattributes"><code>-keepattributes</code></a>),
469
+ or otherwise just disable optimization
470
+ (<a href="usage.html#dontoptimize"><code>-dontoptimize</code></a>).</dd>
471
+
472
+ <dt><a name="conversionerror"><b>Conversion to Dalvik format failed with error 1</b></a></dt>
473
+
474
+ <dd>This error may have various causes, but if dx is tripping over some code
475
+ processed by ProGuard, you should make sure that you are using the latest
476
+ version of ProGuard. You can just copy the ProGuard jars
477
+ to <code>android-sdk/tools/proguard/lib</code>. If that doesn't help,
478
+ please report the problem, preferably with the simplest example that still
479
+ brings out the error.</dd>
480
+
481
+ </dl>
482
+
483
+ <h2><a name="preverifying">Problems while preverifying for Java Micro Edition</a></h2>
484
+
485
+ If ProGuard seems to run fine, but the external preverifier subsequently
486
+ produces errors, it's usually for a single reason:
487
+
488
+ <dl>
489
+ <dt><a name="invalidclassexception1"><b>InvalidClassException</b>, <b>class loading error</b>, or <b>verification error</b></a></dt>
490
+
491
+ <dd>If you get any such message from the preverifier, you are probably working
492
+ on a platform with a case-insensitive file system, such as Windows. The
493
+ <code>preverify</code> tool always unpacks the jars, so class files with
494
+ similar lower-case and upper-case names overwrite each other. You can use
495
+ ProGuard's <a
496
+ href="usage.html#dontusemixedcaseclassnames"><code>-dontusemixedcaseclassnames</code></a>
497
+ option to work around this problem.
498
+ <p>
499
+ If the above doesn't help, there is probably a bug in the optimization
500
+ step of ProGuard. Make sure you are using the latest version. You should
501
+ be able to work around the problem by using the <a
502
+ href="usage.html#dontoptimize"><code>-dontoptimize</code></a> option. You
503
+ can check the bug database to see if it is a known problem (often with a
504
+ fix). Otherwise, please report it, preferably with the simplest example on
505
+ which you can find ProGuard to fail.</dd>
506
+
507
+ </dl>
508
+
509
+ Note that it is no longer necessary to use an external preverifier. With the
510
+ <a href="usage.html#microedition"><code>-microedition</code></a> option,
511
+ ProGuard will preverify the class files for Java Micro Edition.
512
+ <p>
513
+
514
+ <h2><a name="runtime">Problems at run-time</a></h2>
515
+
516
+ If ProGuard runs fine, but your processed application doesn't work, there
517
+ might be several reasons:
518
+
519
+ <dl>
520
+ <dt><a name="stacktraces"><b>Stack traces without class names or line numbers</b></a></dt>
521
+
522
+ <dd>If your stack traces don't contain any class names or lines numbers,
523
+ even though you are keeping the proper attributes, make sure this debugging
524
+ information is present in your compiled code to start with. Notably the Ant
525
+ javac task has debugging information switched off by default.</dd>
526
+
527
+ <dt><a name="noclassdeffounderror"><b>NoClassDefFoundError</b></a></dt>
528
+
529
+ <dd>Your class path is probably incorrect. It should at least contain all
530
+ library jars and, of course, your processed program jar.</dd>
531
+
532
+ <dt><a name="classnotfoundexception"><b>ClassNotFoundException</b></a></dt>
533
+
534
+ <dd>Your code is probably calling <code>Class.forName</code>, trying to create
535
+ the missing class dynamically. ProGuard can only detect constant name
536
+ arguments, like <code>Class.forName("mypackage.MyClass")</code>. For
537
+ variable name arguments like <code>Class.forName(someClass)</code>, you
538
+ have to keep all possible classes using the appropriate <a
539
+ href="usage.html#keep"><code>-keep</code></a> option, e.g. "<code>-keep
540
+ class mypackage.MyClass</code>" or "<code>-keep class * implements
541
+ mypackage.MyInterface</code>".</dd>
542
+
543
+ <dt><a name="nosuchmethodexception"><b>NoSuchMethodException</b></a></dt>
544
+
545
+ <dd>Your code is probably calling something like
546
+ <code>myClass.getMethod</code>, trying to find some method dynamically.
547
+ Since ProGuard can't always detect this automatically, you have to keep
548
+ the missing method in using the appropriate <a
549
+ href="usage.html#keep"><code>-keep</code></a> option, e.g. "<code>-keep
550
+ class mypackage.MyClass { void myMethod(); }</code>".
551
+ <p>
552
+ More specifically, if the method reported as missing is
553
+ <code>values</code> or <code>valueOf</code>, you probably have to keep
554
+ some methods related to <a
555
+ href="examples.html#enumerations">enumerations</a>.</dd>
556
+
557
+ <dt><a name="missingresourceexception"><b>MissingResourceException</b> or <b>NullPointerException</b></a></dt>
558
+
559
+ <dd>Your processed code may be unable to find some resource files. ProGuard
560
+ simply copies resource files over from the input jars to the output jars.
561
+ Their names and contents remain unchanged, unless you specify the options
562
+ <a
563
+ href="usage.html#adaptresourcefilenames"><code>-adaptresourcefilenames</code></a>
564
+ and/or <a
565
+ href="usage.html#adaptresourcefilecontents"><code>-adaptresourcefilecontents</code></a>.
566
+ <p>
567
+ Furthermore, directory entries in jar files aren't copied, unless you
568
+ specify the option <a
569
+ href="usage.html#keepdirectories"><code>-keepdirectories</code></a>.
570
+ Note that Sun advises against calling <code>Class.getResource()</code> for
571
+ directories (<a href="http://bugs.sun.com/view_bug.do?bug_id=4761949">Sun
572
+ Bug #4761949</a>).</dd>
573
+
574
+ <dt><a name="disappearingannotations"><b>Disappearing annotations</b></a></dt>
575
+
576
+ <dd>By default, the obfuscation step removes all annotations. If your
577
+ application relies on annotations to function properly, you should
578
+ explicitly keep them with
579
+ <code><a href="usage.html#keepattributes">-keepattributes</a>
580
+ *Annotation*</code>.</dd>
581
+
582
+ <dt><a name="invalidjarfile"><b>Invalid or corrupt jarfile</b></a></dt>
583
+
584
+ <dd>You are probably starting your application with the java option
585
+ <code>-jar</code> instead of the option <code>-classpath</code>. The java
586
+ virtual machine returns with this error message if your jar doesn't
587
+ contain a manifest file (<code>META-INF/MANIFEST.MF</code>), if the
588
+ manifest file doesn't specify a main class (<code>Main-Class:</code> ...),
589
+ or if the jar doesn't contain this main class. You should then make sure
590
+ that the input jar contains a valid manifest file to start with, that this
591
+ manifest file is the one that is copied (the first manifest file that is
592
+ encountered), and that the main class is kept in your configuration,</dd>
593
+
594
+ <dt><a name="invalidjarindexexception"><b>InvalidJarIndexException: Invalid index</b></a></dt>
595
+
596
+ <dd>At least one of your processed jar files contains an index file
597
+ <code>META-INF/INDEX.LIST</code>, listing all class files in the jar.
598
+ ProGuard by default copies files like these unchanged. ProGuard may however
599
+ remove or rename classes, thus invalidating the file. You should filter the
600
+ index file out of the input
601
+ (<code>-injars in.jar(!META-INF/INDEX.LIST)</code>) or update the file
602
+ after having applied ProGuard (<code>jar -i out.jar</code>).
603
+ </dd>
604
+
605
+ <dt><a name="invalidclassexception2"><b>InvalidClassException</b>, <b>class loading error</b>, or <b>verification error</b> (in Java Micro Edition)</a></dt>
606
+
607
+ <dd>If you get such an error in Java Micro Edition, you may have forgotten to
608
+ specify the <a
609
+ href="usage.html#microedition"><code>-microedition</code></a> option, so
610
+ the processed class files are preverified properly.</dd>
611
+
612
+ <dt><a name="nosuchfieldormethod"><b>Error: No Such Field or Method</b>, <b>Error verifying method</b> (in a Java Micro Edition emulator)</a></dt>
613
+
614
+ <dd>If you get such a message in a Motorola or Sony Ericsson phone emulator,
615
+ it's because these emulators don't like packageless classes and/or
616
+ overloaded fields and methods. You can work around it by not using the
617
+ options <code><a href="usage.html#repackageclasses">-repackageclasses</a>
618
+ ''</code> and <a
619
+ href="usage.html#overloadaggressively"><code>-overloadaggressively</code></a>.
620
+ If you're using the JME WTK plugin, you can adapt the configuration
621
+ <code>proguard/wtk/default.pro</code> that's inside the
622
+ <code>proguard.jar</code>.</dd>
623
+
624
+ <dt><a name="failingmidlets"><b>Failing midlets</b> (on a Java Micro Edition device)</a></dt>
625
+
626
+ <dd>If your midlet runs in an emulator and on some devices, but not on some
627
+ other devices, this is probably due to a bug in the latter devices. For
628
+ some older Motorola and Nokia phones, you might try specifying the <a
629
+ href="usage.html#useuniqueclassmembernames"><code>-useuniqueclassmembernames</code></a>
630
+ option. It avoids overloading class member names, which triggers a bug in
631
+ their java virtual machine.
632
+ <p>
633
+ You might also try using the <a
634
+ href="usage.html#dontusemixedcaseclassnames"><code>-dontusemixedcaseclassnames</code></a>
635
+ option. Even if the midlet has been properly processed and then
636
+ preverified on a case-sensitive file system, the device itself might not
637
+ like the mixed-case class names. Notably, the Nokia N-Gage emulator works
638
+ fine, but the actual device seems to exhibit this problem.</dd>
639
+
640
+ <dt><a name="disappearingloops"><b>Disappearing loops</b></a></dt>
641
+
642
+ <dd>If your code contains empty busy-waiting loops, ProGuard's optimization
643
+ step may remove them. More specifically, this happens if a loop
644
+ continuously checks the value of a non-volatile field that is changed in a
645
+ different thread. The specifications of the Java Virtual Machine require
646
+ that you always mark fields that are accessed across different threads
647
+ without further synchronization as <code>volatile</code>. If this is not
648
+ possible for some reason, you'll have to switch off optimization using the
649
+ <a href="usage.html#dontoptimize"><code>-dontoptimize</code></a>
650
+ option.</dd>
651
+
652
+ <dt><a name="securityexception"><b>SecurityException: SHA1 digest error</b></a></dt>
653
+
654
+ <dd>You may have forgotten to sign your program jar <i>after</i> having
655
+ processed it with ProGuard.</dd>
656
+
657
+ <dt><a name="classcastexception"><b>ClassCastException: class not an enum</b>, or <br /><b>IllegalArgumentException: class not an enum type</b></a></dt>
658
+
659
+ <dd>You should make sure you're preserving the special methods of enumeration
660
+ types, which the run-time environment calls by introspection. The required
661
+ options are shown in the <a
662
+ href="examples.html#enumerations">examples</a>.</dd>
663
+
664
+ <dt><a name="arraystoreexception"><b>ArrayStoreException: sun.reflect.annotation.EnumConstantNotPresentExceptionProxy</b></a></dt>
665
+
666
+ <dd>You are probably processing annotations involving enumerations. Again, you
667
+ should make sure you're preserving the special methods of the enumeration
668
+ type, as shown in the examples.</dd>
669
+
670
+ <dt><a name="compilererror"><b>CompilerError: duplicate addition</b></a></dt>
671
+
672
+ <dd>You are probably compiling or running some code that has been obfuscated
673
+ with the <a
674
+ href="usage.html#overloadaggressively"><code>-overloadaggressively</code></a>
675
+ option. This option triggers a bug in
676
+ <code>sun.tools.java.MethodSet.add</code> in Sun's JDK 1.2.2, which is
677
+ used for (dynamic) compilation. You should then avoid this option.</dd>
678
+
679
+ <dt><a name="classformaterror1"><b>ClassFormatError: repetitive field name/signature</b></a></dt>
680
+
681
+ <dd>You are probably processing some code that has been obfuscated before with
682
+ the <a
683
+ href="usage.html#overloadaggressively"><code>-overloadaggressively</code></a>
684
+ option. You should then use the same option again in the second processing
685
+ round.</dd>
686
+
687
+ <dt><a name="classformaterror2"><b>ClassFormatError: Invalid index in LocalVariableTable in class file</b></a></dt>
688
+
689
+ <dd>If you are keeping the <code>LocalVariableTable</code> or
690
+ <code>LocalVariableTypeTable</code> attributes, ProGuard's optimizing step
691
+ is sometimes unable to update them consistently. You should then let the
692
+ obfuscation step remove these attributes or disable the optimization
693
+ step.</dd>
694
+
695
+ <dt><a name="nosuchmethoderror"><b>NoSuchMethodError</b> or <b>AbstractMethodError</b></a></dt>
696
+
697
+ <dd>You should make sure you're not writing your output class files to a
698
+ directory on a platform with a case-insensitive file system, such as
699
+ Windows. Please refer to the section about <a
700
+ href="#disappearingclasses">disappearing classes</a> for details.
701
+ <p>
702
+ Furthermore, you should check whether you have specified your program jars
703
+ and library jars properly. Program classes can refer to library classes,
704
+ but not the other way around.
705
+ <p>
706
+ If all of this seems ok, perhaps there's a bug in ProGuard (gasp!). If so,
707
+ please report it, preferably with the simplest example on which you can
708
+ find ProGuard to fail.</dd>
709
+
710
+ <dt><a name="verifyerror"><b>VerifyError</b></a></dt>
711
+
712
+ <dd>Verification errors when executing a program are almost certainly the
713
+ result of a bug in the optimization step of ProGuard. Make sure you are
714
+ using the latest version. You should be able to work around the problem by
715
+ using the <a href="usage.html#dontoptimize"><code>-dontoptimize</code></a>
716
+ option. You can check the bug database to see if it is a known problem
717
+ (often with a fix). Otherwise, please report it, preferably with the
718
+ simplest example on which ProGuard fails.</dd>
719
+
720
+ </dl>
721
+
722
+ <hr />
723
+ <noscript><div><a target="_top" href="../index.html" class="button">Show menu</a></div></noscript>
724
+ <address>
725
+ Copyright &copy; 2002-2011
726
+ <a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a>.
727
+ </address>
728
+ </body>
729
+ </html>