< prev index next >

src/hotspot/share/prims/whitebox.cpp

Print this page

        

*** 159,195 **** return os::large_page_size(); WB_END class WBIsKlassAliveClosure : public LockedClassesDo { Symbol* _name; ! bool _found; public: ! WBIsKlassAliveClosure(Symbol* name) : _name(name), _found(false) {} void do_klass(Klass* k) { - if (_found) return; Symbol* ksym = k->name(); if (ksym->fast_compare(_name) == 0) { ! _found = true; } } ! bool found() const { ! return _found; } }; ! WB_ENTRY(jboolean, WB_IsClassAlive(JNIEnv* env, jobject target, jstring name)) oop h_name = JNIHandles::resolve(name); if (h_name == NULL) return false; Symbol* sym = java_lang_String::as_symbol(h_name); TempNewSymbol tsym(sym); // Make sure to decrement reference count on sym on return WBIsKlassAliveClosure closure(sym); ClassLoaderDataGraph::classes_do(&closure); ! return closure.found(); WB_END WB_ENTRY(jint, WB_GetSymbolRefcount(JNIEnv* env, jobject unused, jstring name)) oop h_name = JNIHandles::resolve(name); if (h_name == NULL) return false; --- 159,195 ---- return os::large_page_size(); WB_END class WBIsKlassAliveClosure : public LockedClassesDo { Symbol* _name; ! int _count; public: ! WBIsKlassAliveClosure(Symbol* name) : _name(name), _count(0) {} void do_klass(Klass* k) { Symbol* ksym = k->name(); if (ksym->fast_compare(_name) == 0) { ! _count++; } } ! int count() const { ! return _count; } }; ! WB_ENTRY(jint, WB_CountAliveClasses(JNIEnv* env, jobject target, jstring name)) oop h_name = JNIHandles::resolve(name); if (h_name == NULL) return false; Symbol* sym = java_lang_String::as_symbol(h_name); TempNewSymbol tsym(sym); // Make sure to decrement reference count on sym on return WBIsKlassAliveClosure closure(sym); ClassLoaderDataGraph::classes_do(&closure); ! // Return the count of alive classes with this name. ! return closure.count(); WB_END WB_ENTRY(jint, WB_GetSymbolRefcount(JNIEnv* env, jobject unused, jstring name)) oop h_name = JNIHandles::resolve(name); if (h_name == NULL) return false;
*** 2216,2226 **** {CC"getVMPageSize", CC"()I", (void*)&WB_GetVMPageSize }, {CC"getVMAllocationGranularity", CC"()J", (void*)&WB_GetVMAllocationGranularity }, {CC"getVMLargePageSize", CC"()J", (void*)&WB_GetVMLargePageSize}, {CC"getHeapSpaceAlignment", CC"()J", (void*)&WB_GetHeapSpaceAlignment}, {CC"getHeapAlignment", CC"()J", (void*)&WB_GetHeapAlignment}, ! {CC"isClassAlive0", CC"(Ljava/lang/String;)Z", (void*)&WB_IsClassAlive }, {CC"getSymbolRefcount", CC"(Ljava/lang/String;)I", (void*)&WB_GetSymbolRefcount }, {CC"parseCommandLine0", CC"(Ljava/lang/String;C[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;", (void*) &WB_ParseCommandLine }, --- 2216,2226 ---- {CC"getVMPageSize", CC"()I", (void*)&WB_GetVMPageSize }, {CC"getVMAllocationGranularity", CC"()J", (void*)&WB_GetVMAllocationGranularity }, {CC"getVMLargePageSize", CC"()J", (void*)&WB_GetVMLargePageSize}, {CC"getHeapSpaceAlignment", CC"()J", (void*)&WB_GetHeapSpaceAlignment}, {CC"getHeapAlignment", CC"()J", (void*)&WB_GetHeapAlignment}, ! {CC"countAliveClasses0", CC"(Ljava/lang/String;)I", (void*)&WB_CountAliveClasses }, {CC"getSymbolRefcount", CC"(Ljava/lang/String;)I", (void*)&WB_GetSymbolRefcount }, {CC"parseCommandLine0", CC"(Ljava/lang/String;C[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;", (void*) &WB_ParseCommandLine },
< prev index next >