1 /* |
1 /* |
2 * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2003, 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. |
80 LOAD_SUPER = 2, // loading superclass for this class |
80 LOAD_SUPER = 2, // loading superclass for this class |
81 DEFINE_CLASS = 3 // find_or_define class |
81 DEFINE_CLASS = 3 // find_or_define class |
82 }; |
82 }; |
83 |
83 |
84 // find_and_add returns probe pointer - old or new |
84 // find_and_add returns probe pointer - old or new |
85 // If no entry exists, add a placeholder entry and push SeenThread |
85 // If no entry exists, add a placeholder entry and push SeenThread for classloadAction |
86 // If entry exists, reuse entry and push SeenThread for classloadAction |
86 // If entry exists, reuse entry and push SeenThread for classloadAction |
87 PlaceholderEntry* find_and_add(int index, unsigned int hash, |
87 PlaceholderEntry* find_and_add(int index, unsigned int hash, |
88 Symbol* name, ClassLoaderData* loader_data, |
88 Symbol* name, ClassLoaderData* loader_data, |
89 classloadAction action, Symbol* supername, |
89 classloadAction action, Symbol* supername, |
90 Thread* thread); |
90 Thread* thread); |
91 |
91 |
92 void remove_entry(int index, unsigned int hash, |
92 void remove_entry(int index, unsigned int hash, |
93 Symbol* name, ClassLoaderData* loader_data); |
93 Symbol* name, ClassLoaderData* loader_data); |
94 |
94 |
95 // Remove placeholder information |
95 // find_and_remove first removes SeenThread for classloadAction |
|
96 // If all queues are empty and definer is null, remove the PlacheholderEntry completely |
96 void find_and_remove(int index, unsigned int hash, |
97 void find_and_remove(int index, unsigned int hash, |
97 Symbol* name, ClassLoaderData* loader_data, Thread* thread); |
98 Symbol* name, ClassLoaderData* loader_data, |
|
99 classloadAction action, Thread* thread); |
98 |
100 |
99 // GC support. |
101 // GC support. |
100 void classes_do(KlassClosure* f); |
102 void classes_do(KlassClosure* f); |
101 |
103 |
102 // JVMTI support |
104 // JVMTI support |