ART: set growth limit to heap size when it is larger.

The growth limit set by -XX:HeapGrowthLimit could be larger than the
heap size, which cause ART crash. set growth limit to heap size if it
is larger.

Change-Id: I9dffa9ce39a86cf347fbd7a2f7ab12642aea5c60
Signed-off-by: Zang Lin <lin.zang@intel.com>
diff --git a/runtime/parsed_options.cc b/runtime/parsed_options.cc
index ae16c7f..b1fe0e5 100644
--- a/runtime/parsed_options.cc
+++ b/runtime/parsed_options.cc
@@ -553,7 +553,9 @@
     args.Set(M::Image, image);
   }
 
-  if (args.GetOrDefault(M::HeapGrowthLimit) == 0u) {  // 0 means no growth limit
+  // 0 means no growth limit, and growth limit should be always <= heap size
+  if (args.GetOrDefault(M::HeapGrowthLimit) <= 0u ||
+      args.GetOrDefault(M::HeapGrowthLimit) > args.GetOrDefault(M::MemoryMaximumSize)) {
     args.Set(M::HeapGrowthLimit, args.GetOrDefault(M::MemoryMaximumSize));
   }