comparison src/share/vm/classfile/dictionary.cpp @ 1513:df736661d0c8

Merge
author jrose
date Tue, 11 May 2010 15:19:19 -0700
parents cff162798819 cd5dbf694d45
children c18cbe5936b8
comparison
equal deleted inserted replaced
1496:e8e83be27dd7 1513:df736661d0c8
559 { 559 {
560 } 560 }
561 561
562 562
563 SymbolPropertyEntry* SymbolPropertyTable::find_entry(int index, unsigned int hash, 563 SymbolPropertyEntry* SymbolPropertyTable::find_entry(int index, unsigned int hash,
564 symbolHandle sym) { 564 symbolHandle sym,
565 assert(index == index_for(sym), "incorrect index?"); 565 intptr_t sym_mode) {
566 assert(index == index_for(sym, sym_mode), "incorrect index?");
566 for (SymbolPropertyEntry* p = bucket(index); p != NULL; p = p->next()) { 567 for (SymbolPropertyEntry* p = bucket(index); p != NULL; p = p->next()) {
567 if (p->hash() == hash && p->symbol() == sym()) { 568 if (p->hash() == hash && p->symbol() == sym() && p->symbol_mode() == sym_mode) {
568 return p; 569 return p;
569 } 570 }
570 } 571 }
571 return NULL; 572 return NULL;
572 } 573 }
573 574
574 575
575 SymbolPropertyEntry* SymbolPropertyTable::add_entry(int index, unsigned int hash, 576 SymbolPropertyEntry* SymbolPropertyTable::add_entry(int index, unsigned int hash,
576 symbolHandle sym) { 577 symbolHandle sym, intptr_t sym_mode) {
577 assert_locked_or_safepoint(SystemDictionary_lock); 578 assert_locked_or_safepoint(SystemDictionary_lock);
578 assert(index == index_for(sym), "incorrect index?"); 579 assert(index == index_for(sym, sym_mode), "incorrect index?");
579 assert(find_entry(index, hash, sym) == NULL, "no double entry"); 580 assert(find_entry(index, hash, sym, sym_mode) == NULL, "no double entry");
580 581
581 SymbolPropertyEntry* p = new_entry(hash, sym()); 582 SymbolPropertyEntry* p = new_entry(hash, sym(), sym_mode);
582 Hashtable::add_entry(index, p); 583 Hashtable::add_entry(index, p);
583 return p; 584 return p;
584 } 585 }
585 586
586 587