You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2007/04/06 18:37:45 UTC

svn commit: r526221 - in /harmony/enhanced/drlvm/trunk/vm/vmcore: include/Class.h include/classloader.h include/unloading.h src/class_support/Class.cpp src/class_support/classloader.cpp src/gc/stop_the_world_root_set_enum.cpp src/init/vm_shutdown.cpp

Author: gshimansky
Date: Fri Apr  6 09:37:43 2007
New Revision: 526221

URL: http://svn.apache.org/viewvc?view=rev&rev=526221
Log:
Applied HARMONY-3411 [drlvm][classloader] dead code cleanup in classloader


Modified:
    harmony/enhanced/drlvm/trunk/vm/vmcore/include/Class.h
    harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h
    harmony/enhanced/drlvm/trunk/vm/vmcore/include/unloading.h
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/gc/stop_the_world_root_set_enum.cpp
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_shutdown.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/Class.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/Class.h?view=diff&rev=526221&r1=526220&r2=526221
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/Class.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/Class.h Fri Apr  6 09:37:43 2007
@@ -1021,9 +1021,6 @@
     // SourceDebugExtension class attribute support
     String* m_sourceDebugExtension;
 
-    // struct Class accessibility for unloading
-    unsigned m_markBit:1;
-
     // verifier private data pointer
     void* m_verify_data;
 
@@ -1749,20 +1746,6 @@
     const char* get_source_debug_extension() const {
         return m_sourceDebugExtension->bytes;
     }
-
-    // Class unloading support
-
-   /** Checks whether the given class is reachable through its loader
-    * or any live object.
-    * @return <code>true</code> if the given class is reachable, 
-    *         otherwise <code>false</code>.*/
-    bool is_reachable() { return m_markBit == 1; }
-
-    /** Clears a reachability mark.*/
-    void reset_reachable() { m_markBit = 0; }
-
-    /** Marks the given class as reachable.*/
-    void mark_reachable() { m_markBit = 1; }
 
     /** Stores a verifier specific pointer into the given class.
      * @param[in] data - a verifier specific data pointer*/

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h?view=diff&rev=526221&r1=526220&r2=526221
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h Fri Apr  6 09:37:43 2007
@@ -155,8 +155,7 @@
 public:
     ClassLoader() : m_loader(NULL), m_parent(NULL), m_name(NULL), m_package_table(NULL), 
         m_loadedClasses(NULL), m_loadingClasses(NULL), m_reportedClasses(NULL),
-        m_javaTypes(NULL), m_nativeLibraries(NULL), m_markBit(0),
-        m_unloading(false), m_fullSize(0), m_verifyData(NULL)
+        m_javaTypes(NULL), m_nativeLibraries(NULL), m_verifyData(NULL)
     {
         apr_pool_create(&pool, 0);
     }
@@ -209,9 +208,6 @@
 
 public:
     bool IsBootstrap() { return m_loader == NULL; }
-    void Mark() { m_markBit = 1; }
-    bool NotMarked() { return (m_markBit == 0); }
-    unsigned GetFullSize();
     ManagedObject* GetLoader() { return m_loader; }
     const String* GetName() { return m_name; }
     ClassLoader* GetParent() { return m_parent; }
@@ -229,9 +225,6 @@
     VMEXPORT static ClassLoader* LookupLoader( ManagedObject* loader );
     static void UnloadClassLoader( ManagedObject* loader );
     static void gc_enumerate();
-    static void ClearMarkBits();
-    static void StartUnloading();
-    static void PrintUnloadingStats();
     static unsigned GetClassLoaderNumber() { return m_nextEntry; }
     static ClassLoader** GetClassLoaderTable() { return m_table; }
     static void DeleteClassLoaderTable(){
@@ -280,9 +273,6 @@
     NativeLibraryList m_nativeLibraries;
     Lock_Manager m_lock;
     Lock_Manager m_types_cache_lock;
-    unsigned m_markBit:1;
-    unsigned m_unloading;
-    unsigned m_fullSize;
     void* m_verifyData;
     apr_pool_t* pool;
     PoolManager *CodeMemoryManager;

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/unloading.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/unloading.h?view=diff&rev=526221&r1=526220&r2=526221
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/unloading.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/unloading.h Fri Apr  6 09:37:43 2007
@@ -22,8 +22,5 @@
 #ifndef __UNLOADING_H__
 #define __UNLOADING_H__
 
-void class_unloading_clear_mark_bits();
-void class_unloading_start();
-
 #endif
 

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp?view=diff&rev=526221&r1=526220&r2=526221
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp Fri Apr  6 09:37:43 2007
@@ -141,7 +141,6 @@
 
     m_sourceDebugExtension = NULL;
     m_lock = new Lock_Manager();
-    m_markBit = 0;
     m_verify_data = 0;
 }
 
@@ -919,17 +918,6 @@
     }
     String* str = VM_Global_State::loader_env->string_pool.lookup(name);
     return str;
-}
-
-
-static void mark_classloader(ClassLoader* cl)
-{
-    if(cl->GetLoader() && cl->NotMarked()) {
-        TRACE2("classloader.unloading.markloader", "  Marking loader "
-            << cl << " (" << (void*)cl->GetLoader() << " : "
-            << cl->GetLoader()->vt()->clss->get_name()->bytes << ")");
-        cl->Mark();
-    }
 }
 
 

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp?view=diff&rev=526221&r1=526220&r2=526221
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp Fri Apr  6 09:37:43 2007
@@ -488,104 +488,6 @@
 }
 
 
-void ClassLoader::ClearMarkBits()
-{
-    TRACE2("classloader.unloading.clear", "Clearing mark bits");
-    LMAutoUnlock aulock( &(ClassLoader::m_tableLock) );
-    ClassTable::iterator cti;
-    unsigned i;
-    for(i = 0; i < m_nextEntry; i++) {
-        if(m_table[i]->m_unloading) {
-            TRACE2("classloader.unloading.debug", "  Skipping \"unloaded\" classloader "
-                << m_table[i] << " (" << m_table[i]->m_loader << " : "
-                << ((VTable*)(*(unsigned**)(m_table[i]->m_loader)))->clss->get_name()->bytes << ")");
-            continue;
-        }
-        TRACE2("classloader.unloading.debug", "  Clearing mark bits in classloader "
-            << m_table[i] << " (" << m_table[i]->m_loader << " : "
-            << ((VTable*)(*(unsigned**)(m_table[i]->m_loader)))->clss->get_name()->bytes << ") and its classes");
-        // clear mark bits in loader and classes
-        m_table[i]->m_markBit = 0;
-        for(cti = m_table[i]->m_loadedClasses->begin();
-            cti != m_table[i]->m_loadedClasses->end(); cti++)
-        {
-            if(cti->second->get_class_loader() == m_table[i]) {
-                cti->second->reset_reachable();
-             }
-         }
-     }
-    TRACE2("classloader.unloading.clear", "Finished clearing mark bits");
-    TRACE2("classloader.unloading.marking", "Starting mark loaders");
-}
-
-
-void ClassLoader::StartUnloading()
-{
-    TRACE2("classloader.unloading.marking", "Finished marking loaders");
-    TRACE2("classloader.unloading.do", "Start checking loaders ready to be unloaded");
-    LMAutoUnlock aulock( &(ClassLoader::m_tableLock) );
-    unsigned i;
-    for(i = 0; i < m_nextEntry; i++) {
-        if(m_table[i]->m_unloading) {
-            TRACE2("classloader.unloading.debug", "  Skipping \"unloaded\" classloader "
-                << m_table[i] << " (" << m_table[i]->m_loader << " : "
-                << ((VTable*)(*(unsigned**)(m_table[i]->m_loader)))->clss->get_name()->bytes << ")");
-            continue;
-        }
-        TRACE2("classloader.unloading.debug", "  Scanning loader "
-            << m_table[i] << " (" << m_table[i]->m_loader << " : "
-            << ((VTable*)(*(unsigned**)(m_table[i]->m_loader)))->clss->get_name()->bytes << ")");
-        if(!m_table[i]->m_markBit) {
-            TRACE2("classloader.unloading.stats", "  (!) Ready to unload classloader "
-                << m_table[i] << " (" << m_table[i]->m_loader << " : "
-                << ((VTable*)(*(unsigned**)(m_table[i]->m_loader)))->clss->get_name()->bytes << ")");
-            TRACE2("classloader.unloading.stats", "  (!) This will free "
-                << m_table[i]->GetFullSize() << " bytes in C heap");
-            m_table[i]->m_unloading = true;
-            m_unloadedBytes += m_table[i]->GetFullSize();
-        }
-    }
-    TRACE2("classloader.unloading.do", "Finished checking loaders");
-}
-
-
-void ClassLoader::PrintUnloadingStats()
-{
-    unsigned i;
-    TRACE2("classloader.unloading.stats", "----------------------------------------------");
-    TRACE2("classloader.unloading.stats", "Class unloading statistics:");
-    hythread_suspend_disable();
-    for(i = 0; i < m_nextEntry; i++) {
-        if(m_table[i]->m_unloading) {
-            TRACE2("classloader.unloading.stats", "  Class loader "
-                << m_table[i] << " (" << m_table[i]->m_loader << " : "
-                << ((VTable*)(*(unsigned**)(m_table[i]->m_loader)))->clss->get_name()->bytes
-                << ") contains " << m_table[i]->GetFullSize() << " bytes in C heap");
-        }
-    }
-    hythread_suspend_enable();
-    TRACE2("classloader.unloading.stats", "A total of "
-        << m_unloadedBytes << " bytes would be freed in C heap for this scenario");
-    TRACE2("classloader.unloading.stats", "----------------------------------------------");
-}
-
-
-void vm_classloader_iterate_objects(void *iterator) {
-
-    // skip the object iteration if it is not needed
-    // (logging is not enabled and 
-    // class unloading is not yet implemented).
-    if (!is_info_enabled("class_unload")) return;
-
-    Managed_Object_Handle obj;
-    int nobjects = 0;
-    while((obj = gc_get_next_live_object(iterator))) {
-        nobjects++;
-    }
-    INFO2("class_unload", "classloader_iterate_objects " << nobjects << " iterated");
-}
-
-
 ClassLoader* ClassLoader::AddClassLoader( ManagedObject* loader )
 {
     SuspendDisabledChecker sdc;
@@ -717,22 +619,6 @@
 }
 
 
-unsigned ClassLoader::GetFullSize() {
-    if(m_fullSize)
-        return m_fullSize;
-    m_fullSize = sizeof(ClassLoader);
-    ClassTable::iterator cti;
-    for(cti = m_loadedClasses->begin();
-        cti != m_loadedClasses->end(); cti++)
-    {
-        if(cti->second->get_class_loader() == this) {
-            m_fullSize += cti->second->calculate_size();
-        }
-    }
-    return m_fullSize;
-}
-
-
 Class* ClassLoader::WaitDefinition(Global_Env* env, const String* className)
 {
     VM_thread* cur_thread = get_thread_ptr();
@@ -1113,14 +999,6 @@
     exn_raise_object(exc_object);
 
     return NULL;
-}
-
-void class_unloading_clear_mark_bits() {
-    ClassLoader::ClearMarkBits();
-}
-
-void class_unloading_start() {
-    ClassLoader::StartUnloading();
 }
 
 inline void

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/gc/stop_the_world_root_set_enum.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/gc/stop_the_world_root_set_enum.cpp?view=diff&rev=526221&r1=526220&r2=526221
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/gc/stop_the_world_root_set_enum.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/gc/stop_the_world_root_set_enum.cpp Fri Apr  6 09:37:43 2007
@@ -98,8 +98,6 @@
 
     jvmti_send_gc_start_event();
 
-    class_unloading_clear_mark_bits();
-
     current_vm_thread = p_TLS_vmthread;
     // Run through list of active threads and enumerate each one of them.
     hythread_t tm_thread = hythread_iterator_next(&iterator);    
@@ -162,8 +160,6 @@
     global_safepoint_status = nill;
     assert(p_the_safepoint_control_thread == p_TLS_vmthread);
     p_the_safepoint_control_thread = 0;
-
-    class_unloading_start();
 
     jvmti_send_gc_finish_event();
     jvmti_clean_reclaimed_object_tags();

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_shutdown.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_shutdown.cpp?view=diff&rev=526221&r1=526220&r2=526221
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_shutdown.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_shutdown.cpp Fri Apr  6 09:37:43 2007
@@ -172,7 +172,6 @@
 
     // Print out gathered data.
 #ifdef VM_STATS
-    ClassLoader::PrintUnloadingStats();
     VM_Statistics::get_vm_stats().print();
 #endif