src/share/vm/classfile/symbolTable.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File

    *** old/src/share/vm/classfile/symbolTable.hpp	Mon Jan 12 13:05:29 2015
    --- new/src/share/vm/classfile/symbolTable.hpp	Mon Jan 12 13:05:29 2015

    *** 108,122 ****
    --- 108,132 ----
        }

        Symbol* lookup(int index, const char* name, int len, unsigned int hash);

        SymbolTable()
    -     : RehashableHashtable<Symbol*, mtSymbol>(SymbolTableSize, sizeof (HashtableEntry<Symbol*, mtSymbol>)) {}
    +     {
    + #ifdef PRINT_HASHTABLES_CREATION
    +       fprintf(stderr, "SymbolTable1 %p with size %d\n", this, (int)SymbolTableSize);
    + #endif
    +     }

        SymbolTable(HashtableBucket<mtSymbol>* t, int number_of_entries)
          : RehashableHashtable<Symbol*, mtSymbol>(SymbolTableSize, sizeof (HashtableEntry<Symbol*, mtSymbol>), t,
    -                 number_of_entries) {}
    +   {
    + #ifdef PRINT_HASHTABLES_CREATION
    +     fprintf(stderr, "SymbolTable2 %p with size %d\n", this, (int)SymbolTableSize);
    + #endif
    +   }

        // Arena for permanent symbols (null class loader) that are never unloaded
        static Arena*  _arena;
        static Arena* arena() { return _arena; }  // called for statistics

    *** 229,239 ****
    --- 239,248 ----
        static void print_histogram()     PRODUCT_RETURN;
        static void print()     PRODUCT_RETURN;

        // Debugging
        static void verify();
        static void dump(outputStream* st);

        // Sharing
        static void copy_buckets(char** top, char*end) {
          the_table()->Hashtable<Symbol*, mtSymbol>::copy_buckets(top, end);
        }

    *** 277,291 ****
    --- 286,311 ----
        // Unlink or apply the give oop closure to the entries to the buckets
        // in the range [start_idx, end_idx).
        static void buckets_unlink_or_oops_do(BoolObjectClosure* is_alive, OopClosure* f, int start_idx, int end_idx, int* processed, int* removed);

        StringTable() : RehashableHashtable<oop, mtSymbol>((int)StringTableSize,
    -                               sizeof (HashtableEntry<oop, mtSymbol>)) {}
    +   {
    + #ifdef PRINT_HASHTABLES_CREATION
    +     fprintf(stderr, "StringTable1 %p with size %d\n", this, (int)StringTableSize);
    + #endif
    +   }

        StringTable(HashtableBucket<mtSymbol>* t, int number_of_entries)
          : RehashableHashtable<oop, mtSymbol>((int)StringTableSize, sizeof (HashtableEntry<oop, mtSymbol>), t,
    -                      number_of_entries) {}
    +   {
    + #ifdef PRINT_HASHTABLES_CREATION
    +   fprintf(stderr, "StringTable2 %p with size %d\n", this, (int)StringTableSize);
    + #endif
    +   }
    +
      public:
        // The string table
        static StringTable* the_table() { return _the_table; }

        // Size of one bucket in the string table.  Used when checking for rollover.

    *** 339,349 ****
    --- 359,368 ----
        static oop intern(oop string, TRAPS);
        static oop intern(const char *utf8_string, TRAPS);

        // Debugging
        static void verify();
        static void dump(outputStream* st);

        enum VerifyMesgModes {
          _verify_quietly    = 0,
          _verify_with_mesgs = 1
        };

src/share/vm/classfile/symbolTable.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File