Mercurial > hg > graal-jvmci-8
comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 22885:367427923e39
8042796: jvmtiRedefineClasses.cpp: guarantee(false) failed: OLD and/or OBSOLETE method(s) found
Summary: Relax the guaranty for deleted methods
Reviewed-by: dcubed, coleenp
author | sspitsyn |
---|---|
date | Tue, 17 Mar 2015 01:56:32 -0700 |
parents | b12a2a9b05ca |
children | fdde6a70ea85 |
comparison
equal
deleted
inserted
replaced
22884:ceaf8db28d68 | 22885:367427923e39 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2003, 2015, 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. |
3573 Method* old_method = _deleted_methods[i]; | 3573 Method* old_method = _deleted_methods[i]; |
3574 | 3574 |
3575 assert(!old_method->has_vtable_index(), | 3575 assert(!old_method->has_vtable_index(), |
3576 "cannot delete methods with vtable entries");; | 3576 "cannot delete methods with vtable entries");; |
3577 | 3577 |
3578 // Mark all deleted methods as old and obsolete | 3578 // Mark all deleted methods as old, obsolete and deleted |
3579 old_method->set_is_deleted(); | |
3579 old_method->set_is_old(); | 3580 old_method->set_is_old(); |
3580 old_method->set_is_obsolete(); | 3581 old_method->set_is_obsolete(); |
3581 ++obsolete_count; | 3582 ++obsolete_count; |
3582 // With tracing we try not to "yack" too much. The position of | 3583 // With tracing we try not to "yack" too much. The position of |
3583 // this trace assumes there are fewer obsolete methods than | 3584 // this trace assumes there are fewer obsolete methods than |
4162 ik->itable()->dump_itable(); | 4163 ik->itable()->dump_itable(); |
4163 } | 4164 } |
4164 no_old_methods = false; | 4165 no_old_methods = false; |
4165 } | 4166 } |
4166 | 4167 |
4167 // the constant pool cache should never contain old or obsolete methods | 4168 // the constant pool cache should never contain non-deleted old or obsolete methods |
4168 if (ik->constants() != NULL && | 4169 if (ik->constants() != NULL && |
4169 ik->constants()->cache() != NULL && | 4170 ik->constants()->cache() != NULL && |
4170 !ik->constants()->cache()->check_no_old_or_obsolete_entries()) { | 4171 !ik->constants()->cache()->check_no_old_or_obsolete_entries()) { |
4171 if (RC_TRACE_ENABLED(0x00004000)) { | 4172 if (RC_TRACE_ENABLED(0x00004000)) { |
4172 RC_TRACE_WITH_THREAD(0x00004000, _thread, | 4173 RC_TRACE_WITH_THREAD(0x00004000, _thread, |