comparison src/share/vm/classfile/systemDictionary.cpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents d8041d695d19
children a20be10ad437
comparison
equal deleted inserted replaced
14908:8db6e76cb658 14909:4ca6dc0799b6
1 /* 1 /*
2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2013, 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.
1047 // Add to class hierarchy, initialize vtables, and do possible 1047 // Add to class hierarchy, initialize vtables, and do possible
1048 // deoptimizations. 1048 // deoptimizations.
1049 add_to_hierarchy(k, CHECK_NULL); // No exception, but can block 1049 add_to_hierarchy(k, CHECK_NULL); // No exception, but can block
1050 1050
1051 // But, do not add to system dictionary. 1051 // But, do not add to system dictionary.
1052
1053 // compiled code dependencies need to be validated anyway
1054 notice_modification();
1055 } 1052 }
1056 1053
1057 // Rewrite and patch constant pool here. 1054 // Rewrite and patch constant pool here.
1058 k->link_class(CHECK_NULL); 1055 k->link_class(CHECK_NULL);
1059 if (cp_patches != NULL) { 1056 if (cp_patches != NULL) {
2648 // Verify constraint table 2645 // Verify constraint table
2649 guarantee(constraints() != NULL, "Verify of loader constraints failed"); 2646 guarantee(constraints() != NULL, "Verify of loader constraints failed");
2650 constraints()->verify(dictionary(), placeholders()); 2647 constraints()->verify(dictionary(), placeholders());
2651 } 2648 }
2652 2649
2650
2651 void SystemDictionary::verify_obj_klass_present(Symbol* class_name,
2652 ClassLoaderData* loader_data) {
2653 GCMutexLocker mu(SystemDictionary_lock);
2654 Symbol* name;
2655
2656 Klass* probe = find_class(class_name, loader_data);
2657 if (probe == NULL) {
2658 probe = SystemDictionary::find_shared_class(class_name);
2659 if (probe == NULL) {
2660 name = find_placeholder(class_name, loader_data);
2661 }
2662 }
2663 guarantee(probe != NULL || name != NULL,
2664 "Loaded klasses should be in SystemDictionary");
2665 }
2666
2653 // utility function for class load event 2667 // utility function for class load event
2654 void SystemDictionary::post_class_load_event(const Ticks& start_time, 2668 void SystemDictionary::post_class_load_event(const Ticks& start_time,
2655 instanceKlassHandle k, 2669 instanceKlassHandle k,
2656 Handle initiating_loader) { 2670 Handle initiating_loader) {
2657 #if INCLUDE_TRACE 2671 #if INCLUDE_TRACE