comparison src/share/vm/classfile/classLoaderData.cpp @ 14378:48314d596a04

8027146: Class loading verification failure if GC occurs in Universe::flush_dependents_on Summary: Remove search in system dictionary and hacks, replace with verifying in CLD::_klasses list. Reviewed-by: dcubed, acorn
author coleenp
date Sat, 15 Feb 2014 13:03:38 -0500
parents ce86c36b8921
children f460c6926af7 7384f6a12fc1
comparison
equal deleted inserted replaced
14377:cbdbdd6577f6 14378:48314d596a04
1 /* 1 /*
2 * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2012, 2014, 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.
518 k->verify(); 518 k->verify();
519 assert(k != k->next_link(), "no loops!"); 519 assert(k != k->next_link(), "no loops!");
520 } 520 }
521 } 521 }
522 522
523 bool ClassLoaderData::contains_klass(Klass* klass) {
524 for (Klass* k = _klasses; k != NULL; k = k->next_link()) {
525 if (k == klass) return true;
526 }
527 return false;
528 }
529
523 530
524 // GC root of class loader data created. 531 // GC root of class loader data created.
525 ClassLoaderData* ClassLoaderDataGraph::_head = NULL; 532 ClassLoaderData* ClassLoaderDataGraph::_head = NULL;
526 ClassLoaderData* ClassLoaderDataGraph::_unloading = NULL; 533 ClassLoaderData* ClassLoaderDataGraph::_unloading = NULL;
527 ClassLoaderData* ClassLoaderDataGraph::_saved_head = NULL; 534 ClassLoaderData* ClassLoaderDataGraph::_saved_head = NULL;