summaryrefslogtreecommitdiff
path: root/docs/manual/limitations.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manual/limitations.html')
-rw-r--r--docs/manual/limitations.html70
1 files changed, 0 insertions, 70 deletions
diff --git a/docs/manual/limitations.html b/docs/manual/limitations.html
deleted file mode 100644
index 883d6e6..0000000
--- a/docs/manual/limitations.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
-<meta http-equiv="content-style-type" content="text/css">
-<link rel="stylesheet" type="text/css" href="style.css">
-<title>ProGuard Limitations</title>
-</head>
-<body>
-
-<script type="text/javascript" language="JavaScript">
-<!--
-if (window.self==window.top)
- document.write('<a class="largebutton" target="_top" href="../index.html#manual/limitations.html">ProGuard index</a> <a class="largebutton" target="_top" href="http://www.saikoa.com/dexguard">DexGuard</a> <a class="largebutton" target="_top" href="http://www.saikoa.com/">Saikoa</a> <a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a>')
-//-->
-</script>
-<noscript>
-<a class="largebutton" target="_top" href="../index.html#manual/limitations.html">ProGuard index</a>
-<a class="largebutton" target="_top" href="http://www.saikoa.com/dexguard">DexGuard</a>
-<a class="largebutton" target="_top" href="http://www.saikoa.com/">Saikoa</a>
-<a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a>
-</noscript>
-
-<h2>Limitations</h2>
-
-When using ProGuard, you should be aware of a few technical issues, all of
-which are easily avoided or resolved:
-<p>
-<ul class="spacious">
-
-<li>For best results, ProGuard's optimization algorithms assume that the
- processed code never <b>intentionally throws NullPointerExceptions</b> or
- ArrayIndexOutOfBoundsExceptions, or even OutOfMemoryErrors or
- StackOverflowErrors, in order to achieve something useful. For instance,
- it may remove a method call <code>myObject.myMethod()</code> if that call
- wouldn't have any effect. It ignores the possibility that
- <code>myObject</code> might be null, causing a NullPointerException. In
- some way this is a good thing: optimized code may throw fewer exceptions.
- Should this entire assumption be false, you'll have to switch off
- optimization using the <code>-dontoptimize</code> option.</li>
-
-<li>ProGuard's optimization algorithms currently also assume that the
- processed code never creates <b>busy-waiting loops</b> without at least
- testing on a volatile field. Again, it may remove such loops. Should this
- assumption be false, you'll have to switch off optimization using
- the <code>-dontoptimize</code> option.</li>
-
-<li>If an input jar and a library jar contain classes in the <b>same
- package</b>, the obfuscated output jar may contain class names that
- overlap with class names in the library jar. This is most likely if the
- library jar has been obfuscated before, as it will then probably contain
- classes named 'a', 'b', etc. Packages should therefore never be split
- across input jars and library jars.</li>
-
-<li>When obfuscating, ProGuard writes out class files named
- "<code>a.class</code>", "<code>b.class</code>", etc. If a package contains
- a large number of classes, ProGuard may also write out
- <b>"<code>aux.class</code>"</b>. Inconveniently, Windows refuses to create
- files with this reserved name (among a few other names). It's generally
- better to write the output to a jar, in order to avoid such problems.</li>
-
-</ul>
-
-<hr />
-<address>
-Copyright &copy; 2002-2014
-<a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a> @ <a target="top" href="http://www.saikoa.com/">Saikoa</a>.
-</address>
-</body>
-</html>