comparison src/share/vm/classfile/systemDictionary.cpp @ 14518:d8041d695d19

Merged with jdk9/dev/hotspot changeset 3812c088b945
author twisti
date Tue, 11 Mar 2014 18:45:59 -0700
parents 02f27ecb4f3a 48314d596a04
children 4ca6dc0799b6
comparison
equal deleted inserted replaced
14141:f97c5ec83832 14518:d8041d695d19
1 /* 1 /*
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 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.
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();
1052 } 1055 }
1053 1056
1054 // Rewrite and patch constant pool here. 1057 // Rewrite and patch constant pool here.
1055 k->link_class(CHECK_NULL); 1058 k->link_class(CHECK_NULL);
1056 if (cp_patches != NULL) { 1059 if (cp_patches != NULL) {
2645 // Verify constraint table 2648 // Verify constraint table
2646 guarantee(constraints() != NULL, "Verify of loader constraints failed"); 2649 guarantee(constraints() != NULL, "Verify of loader constraints failed");
2647 constraints()->verify(dictionary(), placeholders()); 2650 constraints()->verify(dictionary(), placeholders());
2648 } 2651 }
2649 2652
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
2667 // utility function for class load event 2653 // utility function for class load event
2668 void SystemDictionary::post_class_load_event(const Ticks& start_time, 2654 void SystemDictionary::post_class_load_event(const Ticks& start_time,
2669 instanceKlassHandle k, 2655 instanceKlassHandle k,
2670 Handle initiating_loader) { 2656 Handle initiating_loader) {
2671 #if INCLUDE_TRACE 2657 #if INCLUDE_TRACE