Mercurial > hg > truffle
comparison src/share/vm/opto/graphKit.cpp @ 2007:5ddfcf4b079e
7003554: (tiered) assert(is_null_object() || handle() != NULL) failed: cannot embed null pointer
Summary: C1 with profiling doesn't check whether the MDO has been really allocated, which can silently fail if the perm gen is full. The solution is to check if the allocation failed and bailout out of inlining or compilation.
Reviewed-by: kvn, never
author | iveresov |
---|---|
date | Thu, 02 Dec 2010 17:21:12 -0800 |
parents | f95d63e2154a |
children | 9dc311b8473e |
comparison
equal
deleted
inserted
replaced
2006:bbefa3ca1543 | 2007:5ddfcf4b079e |
---|---|
1839 if (failing()) stop(); | 1839 if (failing()) stop(); |
1840 if (stopped()) return; // trap reachable? | 1840 if (stopped()) return; // trap reachable? |
1841 | 1841 |
1842 // Note: If ProfileTraps is true, and if a deopt. actually | 1842 // Note: If ProfileTraps is true, and if a deopt. actually |
1843 // occurs here, the runtime will make sure an MDO exists. There is | 1843 // occurs here, the runtime will make sure an MDO exists. There is |
1844 // no need to call method()->build_method_data() at this point. | 1844 // no need to call method()->ensure_method_data() at this point. |
1845 | 1845 |
1846 #ifdef ASSERT | 1846 #ifdef ASSERT |
1847 if (!must_throw) { | 1847 if (!must_throw) { |
1848 // Make sure the stack has at least enough depth to execute | 1848 // Make sure the stack has at least enough depth to execute |
1849 // the current bytecode. | 1849 // the current bytecode. |