src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.cpp
branchJEP-349-branch
changeset 57360 5d043a159d5c
parent 53176 6af596144294
child 57870 00860d9caf4d
equal deleted inserted replaced
57359:4cab5edc2950 57360:5d043a159d5c
     1 /*
     1 /*
     2  * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   194   const Symbol* const sym = k->name();
   194   const Symbol* const sym = k->name();
   195   assert(sym != NULL, "invariant");
   195   assert(sym != NULL, "invariant");
   196   return (uintptr_t)const_cast<Symbol*>(sym)->identity_hash();
   196   return (uintptr_t)const_cast<Symbol*>(sym)->identity_hash();
   197 }
   197 }
   198 
   198 
   199 JfrArtifactSet::JfrArtifactSet(bool class_unload) : _symbol_id(new JfrSymbolId()),
   199 JfrArtifactSet::JfrArtifactSet(bool current_epoch) : _symbol_id(new JfrSymbolId()),
   200                                                     _klass_list(NULL),
   200                                                      _klass_list(NULL),
   201                                                     _class_unload(class_unload) {
   201                                                      _total_count(0),
   202   initialize(class_unload);
   202                                                      _current_epoch(current_epoch) {
       
   203   initialize(current_epoch);
   203   assert(_klass_list != NULL, "invariant");
   204   assert(_klass_list != NULL, "invariant");
   204 }
   205 }
   205 
   206 
   206 static const size_t initial_class_list_size = 200;
   207 static const size_t initial_class_list_size = 200;
   207 void JfrArtifactSet::initialize(bool class_unload) {
   208 void JfrArtifactSet::initialize(bool current_epoch) {
   208   assert(_symbol_id != NULL, "invariant");
   209   assert(_symbol_id != NULL, "invariant");
   209   _symbol_id->initialize();
   210   _symbol_id->initialize();
   210   assert(!_symbol_id->has_entries(), "invariant");
   211   assert(!_symbol_id->has_entries(), "invariant");
   211   _symbol_id->mark(BOOTSTRAP_LOADER_NAME, 0); // pre-load "bootstrap"
   212   _symbol_id->mark(BOOTSTRAP_LOADER_NAME, 0); // pre-load "bootstrap"
   212   _class_unload = class_unload;
   213   _total_count = 0;
       
   214   _current_epoch = current_epoch;
   213   // resource allocation
   215   // resource allocation
   214   _klass_list = new GrowableArray<const Klass*>(initial_class_list_size, false, mtTracing);
   216   _klass_list = new GrowableArray<const Klass*>(initial_class_list_size, false, mtTracing);
   215 }
   217 }
   216 
   218 
   217 JfrArtifactSet::~JfrArtifactSet() {
   219 JfrArtifactSet::~JfrArtifactSet() {
   267   assert(k != NULL, "invariant");
   269   assert(k != NULL, "invariant");
   268   assert(_klass_list != NULL, "invariant");
   270   assert(_klass_list != NULL, "invariant");
   269   assert(_klass_list->find(k) == -1, "invariant");
   271   assert(_klass_list->find(k) == -1, "invariant");
   270   _klass_list->append(k);
   272   _klass_list->append(k);
   271 }
   273 }
       
   274 
       
   275 size_t JfrArtifactSet::total_count() const {
       
   276   return _total_count;
       
   277 }
       
   278