/* * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. *
*/
// This constructor is used only by SystemDictionaryShared::clone_dumptime_tables(). // See comments there about the need for making a deep copy.
DumpTimeClassInfo::DumpTimeClassInfo(const DumpTimeClassInfo& src) {
assert(DynamicDumpSharedSpaces, "must be");
assert(src._enum_klass_static_fields == NULL, "This should not happen with dynamic dump.");
_enum_klass_static_fields = NULL;
{ int n = src.num_verifier_constraints(); if (n > 0) {
_verifier_constraints = new (mtClass) GrowableArray<DTVerifierConstraint>(n, mtClass);
_verifier_constraint_flags = new (mtClass) GrowableArray<char>(n, mtClass); for (int i = 0; i < n; i++) {
_verifier_constraints->append(src._verifier_constraints->at(i));
_verifier_constraint_flags->append(src._verifier_constraint_flags->at(i));
}
}
}
{ int n = src.num_loader_constraints(); if (n > 0) {
_loader_constraints = new (mtClass) GrowableArray<DTLoaderConstraint>(n, mtClass); for (int i = 0; i < n; i++) {
_loader_constraints->append(src._loader_constraints->at(i));
}
}
}
}
DumpTimeClassInfo* DumpTimeSharedClassTable::allocate_info(InstanceKlass* k) {
assert(!k->is_shared(), "Do not call with shared classes"); bool created;
DumpTimeClassInfo* p = put_if_absent(k, &created);
assert(created, "must not exist in table");
p->_klass = k; return p;
}
DumpTimeClassInfo* DumpTimeSharedClassTable::get_info(InstanceKlass* k) {
assert(!k->is_shared(), "Do not call with shared classes");
DumpTimeClassInfo* p = get(k);
assert(p != NULL, "we must not see any non-shared InstanceKlass* that's " "not stored with SystemDictionaryShared::init_dumptime_info");
assert(p->_klass == k, "Sanity"); return p;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.