hotspot/src/share/vm/prims/whitebox.cpp
changeset 37179 4dbcb3a642d2
parent 36616 5172e3dd60f2
parent 37149 f025738bbada
child 37248 11a660dbbb8e
equal deleted inserted replaced
36617:390e8993b88e 37179:4dbcb3a642d2
    33 #include "compiler/methodMatcher.hpp"
    33 #include "compiler/methodMatcher.hpp"
    34 #include "compiler/directivesParser.hpp"
    34 #include "compiler/directivesParser.hpp"
    35 #include "jvmtifiles/jvmtiEnv.hpp"
    35 #include "jvmtifiles/jvmtiEnv.hpp"
    36 #include "memory/metadataFactory.hpp"
    36 #include "memory/metadataFactory.hpp"
    37 #include "memory/metaspaceShared.hpp"
    37 #include "memory/metaspaceShared.hpp"
       
    38 #include "memory/iterator.hpp"
    38 #include "memory/universe.hpp"
    39 #include "memory/universe.hpp"
    39 #include "oops/constantPool.hpp"
    40 #include "oops/constantPool.hpp"
    40 #include "oops/oop.inline.hpp"
    41 #include "oops/oop.inline.hpp"
    41 #include "prims/wbtestmethods/parserTests.hpp"
    42 #include "prims/wbtestmethods/parserTests.hpp"
    42 #include "prims/whitebox.hpp"
    43 #include "prims/whitebox.hpp"
   715   delete m;
   716   delete m;
   716   assert(result == 0 || result == 1, "Result out of range");
   717   assert(result == 0 || result == 1, "Result out of range");
   717   return result;
   718   return result;
   718 WB_END
   719 WB_END
   719 
   720 
   720 class AlwaysFalseClosure : public BoolObjectClosure {
       
   721  public:
       
   722   bool do_object_b(oop p) { return false; }
       
   723 };
       
   724 
       
   725 static AlwaysFalseClosure always_false;
   721 static AlwaysFalseClosure always_false;
   726 
   722 
   727 WB_ENTRY(void, WB_ClearMethodState(JNIEnv* env, jobject o, jobject method))
   723 WB_ENTRY(void, WB_ClearMethodState(JNIEnv* env, jobject o, jobject method))
   728   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
   724   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
   729   CHECK_JNI_EXCEPTION(env);
   725   CHECK_JNI_EXCEPTION(env);
   995   return (StringTable::lookup(name, len) != NULL);
   991   return (StringTable::lookup(name, len) != NULL);
   996 WB_END
   992 WB_END
   997 
   993 
   998 WB_ENTRY(void, WB_FullGC(JNIEnv* env, jobject o))
   994 WB_ENTRY(void, WB_FullGC(JNIEnv* env, jobject o))
   999   Universe::heap()->collector_policy()->set_should_clear_all_soft_refs(true);
   995   Universe::heap()->collector_policy()->set_should_clear_all_soft_refs(true);
  1000   Universe::heap()->collect(GCCause::_last_ditch_collection);
   996   Universe::heap()->collect(GCCause::_wb_full_gc);
  1001 #if INCLUDE_ALL_GCS
   997 #if INCLUDE_ALL_GCS
  1002   if (UseG1GC) {
   998   if (UseG1GC) {
  1003     // Needs to be cleared explicitly for G1
   999     // Needs to be cleared explicitly for G1
  1004     Universe::heap()->collector_policy()->set_should_clear_all_soft_refs(false);
  1000     Universe::heap()->collector_policy()->set_should_clear_all_soft_refs(false);
  1005   }
  1001   }