comparison src/share/vm/classfile/dictionary.cpp @ 1507:cd5dbf694d45

6939134: JSR 292 adjustments to method handle invocation Summary: split MethodHandle.invoke into invokeExact and invokeGeneric; also clean up JVM-to-Java interfaces Reviewed-by: twisti
author jrose
date Sat, 01 May 2010 02:42:18 -0700
parents e5b0439ef4ae
children df736661d0c8
comparison
equal deleted inserted replaced
1506:2338d41fbd81 1507:cd5dbf694d45
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