comparison src/share/vm/opto/graphKit.cpp @ 7428:2d6c433b1f38

8004741: Missing compiled exception handle table entry for multidimensional array allocation Summary: Added missing exception path for multidimensional array allocation and use Throwable type instead of OutOfMemoryError for allocation's exception. Reviewed-by: twisti
author kvn
date Wed, 19 Dec 2012 19:21:15 -0800
parents ad5dd04754ee
children d092d1b31229
comparison
equal deleted inserted replaced
7427:2c7f594145dc 7428:2d6c433b1f38
2988 add_safepoint_edges(alloc); 2988 add_safepoint_edges(alloc);
2989 Node* allocx = _gvn.transform(alloc); 2989 Node* allocx = _gvn.transform(alloc);
2990 set_control( _gvn.transform(new (C) ProjNode(allocx, TypeFunc::Control) ) ); 2990 set_control( _gvn.transform(new (C) ProjNode(allocx, TypeFunc::Control) ) );
2991 // create memory projection for i_o 2991 // create memory projection for i_o
2992 set_memory ( _gvn.transform( new (C) ProjNode(allocx, TypeFunc::Memory, true) ), rawidx ); 2992 set_memory ( _gvn.transform( new (C) ProjNode(allocx, TypeFunc::Memory, true) ), rawidx );
2993 make_slow_call_ex(allocx, env()->OutOfMemoryError_klass(), true); 2993 make_slow_call_ex(allocx, env()->Throwable_klass(), true);
2994 2994
2995 // create a memory projection as for the normal control path 2995 // create a memory projection as for the normal control path
2996 Node* malloc = _gvn.transform(new (C) ProjNode(allocx, TypeFunc::Memory)); 2996 Node* malloc = _gvn.transform(new (C) ProjNode(allocx, TypeFunc::Memory));
2997 set_memory(malloc, rawidx); 2997 set_memory(malloc, rawidx);
2998 2998