Lines Matching defs:Symbol
32 // A Symbol is a canonicalized string.
38 // When a class is unloaded, the reference counts of the Symbol pointers in
40 // decremented. When the reference count for a Symbol goes to 0, the garbage
41 // collector can free the Symbol and remove it from the SymbolTable.
43 // 0) Symbols need to be reference counted when a pointer to the Symbol is
46 // that points to the Symbol. All other stores of a Symbol*
50 // 1) The lookup of a "name" in the SymbolTable either creates a Symbol F for
51 // "name" and returns a pointer to F or finds a pre-existing Symbol F for
55 // and not on the assignment to the new Symbol*. That is
56 // Symbol* G = lookup()
59 // Symbol* G = lookup()
64 // 2) For a local Symbol* A that is a copy of an existing Symbol* B, the
67 // below "klass" is passed as a parameter to the method. Symbol* "kn"
70 // Symbol* kn = klass->name();
76 // Symbol* copied from ConstantPool entries are good candidates for reference
78 // unloaded. If a Symbol* is copied out of the ConstantPool into Symbol* X,
79 // the Symbol* in the ConstantPool will in general out live X so the reference
86 // 3) When a Symbol K is created for temporary use, generally for substrings of
89 // and probe() all potentially return a pointer to a new Symbol.
99 class Symbol : public ResourceObj {
115 size_t size = heap_word_size(sizeof(Symbol) + (length > 0 ? length - 1 : 0));
124 Symbol(const u1* name, int length, int refcount);
171 inline int fast_compare(Symbol* other) const;
207 Symbol() { }
215 // Since Symbol*s are in C_HEAP, their relative order in memory never changes,
217 int Symbol::fast_compare(Symbol* other) const {
222 inline void Symbol::increment_refcount() {
232 inline void Symbol::decrement_refcount() {