203 void set_loadInstanceThreadQ(SeenThread* SeenThread) { _loadInstanceThreadQ = SeenThread; }
204
205 SeenThread* defineThreadQ() const { return _defineThreadQ; }
206 void set_defineThreadQ(SeenThread* SeenThread) { _defineThreadQ = SeenThread; }
207
208 PlaceholderEntry* next() const {
209 return (PlaceholderEntry*)HashtableEntry<Symbol*, mtClass>::next();
210 }
211
212 PlaceholderEntry** next_addr() {
213 return (PlaceholderEntry**)HashtableEntry<Symbol*, mtClass>::next_addr();
214 }
215
216 // Test for equality
217 // Entries are unique for class/classloader name pair
218 bool equals(Symbol* class_name, ClassLoaderData* loader) const {
219 return (klassname() == class_name && loader_data() == loader);
220 }
221
222 SeenThread* actionToQueue(PlaceholderTable::classloadAction action) {
223 SeenThread* queuehead;
224 switch (action) {
225 case PlaceholderTable::LOAD_INSTANCE:
226 queuehead = _loadInstanceThreadQ;
227 break;
228 case PlaceholderTable::LOAD_SUPER:
229 queuehead = _superThreadQ;
230 break;
231 case PlaceholderTable::DEFINE_CLASS:
232 queuehead = _defineThreadQ;
233 break;
234 default: Unimplemented();
235 }
236 return queuehead;
237 }
238
239 void set_threadQ(SeenThread* seenthread, PlaceholderTable::classloadAction action) {
240 switch (action) {
241 case PlaceholderTable::LOAD_INSTANCE:
242 _loadInstanceThreadQ = seenthread;
243 break;
|
203 void set_loadInstanceThreadQ(SeenThread* SeenThread) { _loadInstanceThreadQ = SeenThread; }
204
205 SeenThread* defineThreadQ() const { return _defineThreadQ; }
206 void set_defineThreadQ(SeenThread* SeenThread) { _defineThreadQ = SeenThread; }
207
208 PlaceholderEntry* next() const {
209 return (PlaceholderEntry*)HashtableEntry<Symbol*, mtClass>::next();
210 }
211
212 PlaceholderEntry** next_addr() {
213 return (PlaceholderEntry**)HashtableEntry<Symbol*, mtClass>::next_addr();
214 }
215
216 // Test for equality
217 // Entries are unique for class/classloader name pair
218 bool equals(Symbol* class_name, ClassLoaderData* loader) const {
219 return (klassname() == class_name && loader_data() == loader);
220 }
221
222 SeenThread* actionToQueue(PlaceholderTable::classloadAction action) {
223 SeenThread* queuehead = NULL;
224 switch (action) {
225 case PlaceholderTable::LOAD_INSTANCE:
226 queuehead = _loadInstanceThreadQ;
227 break;
228 case PlaceholderTable::LOAD_SUPER:
229 queuehead = _superThreadQ;
230 break;
231 case PlaceholderTable::DEFINE_CLASS:
232 queuehead = _defineThreadQ;
233 break;
234 default: Unimplemented();
235 }
236 return queuehead;
237 }
238
239 void set_threadQ(SeenThread* seenthread, PlaceholderTable::classloadAction action) {
240 switch (action) {
241 case PlaceholderTable::LOAD_INSTANCE:
242 _loadInstanceThreadQ = seenthread;
243 break;
|