1.1 --- a/src/share/vm/ci/ciSymbol.hpp Fri Apr 30 08:37:24 2010 -0700 1.2 +++ b/src/share/vm/ci/ciSymbol.hpp Sat May 01 02:42:18 2010 -0700 1.3 @@ -36,8 +36,11 @@ 1.4 friend class ciObjArrayKlass; 1.5 1.6 private: 1.7 - ciSymbol(symbolOop s) : ciObject(s) {} 1.8 - ciSymbol(symbolHandle s); // for use with vmSymbolHandles 1.9 + const vmSymbols::SID _sid; 1.10 + DEBUG_ONLY( bool sid_ok() { return vmSymbols::find_sid(get_symbolOop()) == _sid; } ) 1.11 + 1.12 + ciSymbol(symbolOop s); // normal case, for symbols not mentioned in vmSymbols 1.13 + ciSymbol(symbolHandle s, vmSymbols::SID sid); // for use with vmSymbolHandles 1.14 1.15 symbolOop get_symbolOop() const { return (symbolOop)get_oop(); } 1.16 1.17 @@ -52,6 +55,9 @@ 1.18 static ciSymbol* make_impl(const char* s); 1.19 1.20 public: 1.21 + // The enumeration ID from vmSymbols, or vmSymbols::NO_SID if none. 1.22 + vmSymbols::SID sid() const { return _sid; } 1.23 + 1.24 // The text of the symbol as a null-terminated utf8 string. 1.25 const char* as_utf8(); 1.26 int utf8_length();