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));
}