comparison src/share/vm/prims/methodHandleWalk.cpp @ 6213:8150fa46d2ed

7178145: Change constMethodOop::_exception_table to optionally inlined u2 table. Summary: Change constMethodOop::_exception_table to optionally inlined u2 table. Reviewed-by: bdelsart, coleenp, kamg
author jiangli
date Tue, 26 Jun 2012 19:08:44 -0400
parents a786fdc79c5f
children
comparison
equal deleted inserted replaced
6177:06320b1578cb 6213:8150fa46d2ed
1 /* 1 /*
2 * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
1794 // Create a new method 1794 // Create a new method
1795 methodHandle m; 1795 methodHandle m;
1796 { 1796 {
1797 methodOop m_oop = oopFactory::new_method(bytecode_length(), 1797 methodOop m_oop = oopFactory::new_method(bytecode_length(),
1798 accessFlags_from(flags_bits), 1798 accessFlags_from(flags_bits),
1799 0, 0, 0, oopDesc::IsSafeConc, CHECK_(empty)); 1799 0, 0, 0, 0, oopDesc::IsSafeConc, CHECK_(empty));
1800 m = methodHandle(THREAD, m_oop); 1800 m = methodHandle(THREAD, m_oop);
1801 } 1801 }
1802 1802
1803 constantPoolHandle cpool = get_constant_pool(CHECK_(empty)); 1803 constantPoolHandle cpool = get_constant_pool(CHECK_(empty));
1804 m->set_constants(cpool()); 1804 m->set_constants(cpool());
1809 m->set_code((address) bytecode()); 1809 m->set_code((address) bytecode());
1810 1810
1811 m->set_max_stack(_max_stack); 1811 m->set_max_stack(_max_stack);
1812 m->set_max_locals(max_locals()); 1812 m->set_max_locals(max_locals());
1813 m->set_size_of_parameters(_num_params); 1813 m->set_size_of_parameters(_num_params);
1814
1815 typeArrayHandle exception_handlers(THREAD, Universe::the_empty_int_array());
1816 m->set_exception_table(exception_handlers());
1817 1814
1818 // Rewrite the method and set up the constant pool cache. 1815 // Rewrite the method and set up the constant pool cache.
1819 objArrayOop m_array = oopFactory::new_system_objArray(1, CHECK_(empty)); 1816 objArrayOop m_array = oopFactory::new_system_objArray(1, CHECK_(empty));
1820 objArrayHandle methods(THREAD, m_array); 1817 objArrayHandle methods(THREAD, m_array);
1821 methods->obj_at_put(0, m()); 1818 methods->obj_at_put(0, m());