src/share/vm/ci/ciSymbol.hpp

changeset 1862
cd5dbf694d45
parent 1573
dd57230ba8fe
child 1907
c18cbe5936b8
     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();

mercurial