hotspot/src/share/vm/code/nmethod.cpp
changeset 35917 463d67f86eaa
parent 35495 e27da438fa13
child 35918 1e48ea715a0b
equal deleted inserted replaced
35912:679f5181ef91 35917:463d67f86eaa
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2016, 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.
    46 #include "runtime/sweeper.hpp"
    46 #include "runtime/sweeper.hpp"
    47 #include "utilities/resourceHash.hpp"
    47 #include "utilities/resourceHash.hpp"
    48 #include "utilities/dtrace.hpp"
    48 #include "utilities/dtrace.hpp"
    49 #include "utilities/events.hpp"
    49 #include "utilities/events.hpp"
    50 #include "utilities/xmlstream.hpp"
    50 #include "utilities/xmlstream.hpp"
       
    51 #include "logging/log.hpp"
    51 #ifdef TARGET_ARCH_x86
    52 #ifdef TARGET_ARCH_x86
    52 # include "nativeInst_x86.hpp"
    53 # include "nativeInst_x86.hpp"
    53 #endif
    54 #endif
    54 #ifdef TARGET_ARCH_sparc
    55 #ifdef TARGET_ARCH_sparc
    55 # include "nativeInst_sparc.hpp"
    56 # include "nativeInst_sparc.hpp"
  1308   assert(is_alive != NULL, "Should be non-NULL");
  1309   assert(is_alive != NULL, "Should be non-NULL");
  1309   // A non-NULL is_alive closure indicates that this is being called during GC.
  1310   // A non-NULL is_alive closure indicates that this is being called during GC.
  1310   flush_dependencies(is_alive);
  1311   flush_dependencies(is_alive);
  1311 
  1312 
  1312   // Break cycle between nmethod & method
  1313   // Break cycle between nmethod & method
  1313   if (TraceClassUnloading && WizardMode) {
  1314   if (log_is_enabled(Trace, classunload)) {
  1314     tty->print_cr("[Class unloading: Making nmethod " INTPTR_FORMAT
  1315     outputStream* log = LogHandle(classunload)::trace_stream();
  1315                   " unloadable], Method*(" INTPTR_FORMAT
  1316     log->print_cr("making nmethod " INTPTR_FORMAT
       
  1317                   " unloadable, Method*(" INTPTR_FORMAT
  1316                   "), cause(" INTPTR_FORMAT ")",
  1318                   "), cause(" INTPTR_FORMAT ")",
  1317                   p2i(this), p2i(_method), p2i(cause));
  1319                   p2i(this), p2i(_method), p2i(cause));
  1318     if (!Universe::heap()->is_gc_active())
  1320     if (!Universe::heap()->is_gc_active())
  1319       cause->klass()->print();
  1321       cause->klass()->print_on(log);
  1320   }
  1322   }
  1321   // Unlink the osr method, so we do not look this up again
  1323   // Unlink the osr method, so we do not look this up again
  1322   if (is_osr_method()) {
  1324   if (is_osr_method()) {
  1323     invalidate_osr_method();
  1325     invalidate_osr_method();
  1324   }
  1326   }