hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp
changeset 31041 7d59fa6a48f1
parent 31038 2fd2fdc6a70a
parent 30773 3f15e2dc056b
child 31046 d01ad7a0ecb0
equal deleted inserted replaced
31040:16aee060cf6b 31041:7d59fa6a48f1
    26 #include "classfile/metadataOnStackMark.hpp"
    26 #include "classfile/metadataOnStackMark.hpp"
    27 #include "classfile/systemDictionary.hpp"
    27 #include "classfile/systemDictionary.hpp"
    28 #include "classfile/verifier.hpp"
    28 #include "classfile/verifier.hpp"
    29 #include "code/codeCache.hpp"
    29 #include "code/codeCache.hpp"
    30 #include "compiler/compileBroker.hpp"
    30 #include "compiler/compileBroker.hpp"
       
    31 #include "gc/shared/gcLocker.hpp"
    31 #include "interpreter/oopMapCache.hpp"
    32 #include "interpreter/oopMapCache.hpp"
    32 #include "interpreter/rewriter.hpp"
    33 #include "interpreter/rewriter.hpp"
    33 #include "memory/gcLocker.hpp"
       
    34 #include "memory/metadataFactory.hpp"
    34 #include "memory/metadataFactory.hpp"
    35 #include "memory/metaspaceShared.hpp"
    35 #include "memory/metaspaceShared.hpp"
    36 #include "memory/universe.inline.hpp"
    36 #include "memory/universe.inline.hpp"
    37 #include "oops/fieldStreams.hpp"
    37 #include "oops/fieldStreams.hpp"
    38 #include "oops/klassVtable.hpp"
    38 #include "oops/klassVtable.hpp"
  3994   }
  3994   }
  3995   else if (scratch_class->get_cached_class_file_bytes() !=
  3995   else if (scratch_class->get_cached_class_file_bytes() !=
  3996            the_class->get_cached_class_file_bytes()) {
  3996            the_class->get_cached_class_file_bytes()) {
  3997     // The same class can be present twice in the scratch classes list or there
  3997     // The same class can be present twice in the scratch classes list or there
  3998     // are multiple concurrent RetransformClasses calls on different threads.
  3998     // are multiple concurrent RetransformClasses calls on different threads.
  3999     // In such cases we have to deallocate scratch_class cached_class_file_bytes.
  3999     // In such cases we have to deallocate scratch_class cached_class_file.
  4000     os::free(scratch_class->get_cached_class_file_bytes());
  4000     os::free(scratch_class->get_cached_class_file());
  4001   }
  4001   }
  4002 
  4002 
  4003   // NULL out in scratch class to not delete twice.  The class to be redefined
  4003   // NULL out in scratch class to not delete twice.  The class to be redefined
  4004   // always owns these bytes.
  4004   // always owns these bytes.
  4005   scratch_class->set_cached_class_file(NULL);
  4005   scratch_class->set_cached_class_file(NULL);