Mercurial > hg > truffle
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 |