[vmkit-commits] [vmkit] r180555 - Working on updates.
Peter Senna Tschudin
peter.senna at gmail.com
Thu Apr 25 10:25:13 PDT 2013
Author: peter.senna
Date: Thu Apr 25 12:23:43 2013
New Revision: 180555
URL: http://llvm.org/viewvc/llvm-project?rev=180555&view=rev
Log:
Working on updates.
(cherry picked from commit 7c6fdd9c3fed3faf7d8a262812a1be5d147de7a8)
Modified:
vmkit/trunk/lib/j3/VMCore/Jnjvm.h
vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp
vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.h
vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp
Modified: vmkit/trunk/lib/j3/VMCore/Jnjvm.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/Jnjvm.h?rev=180555&r1=180554&r2=180555&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/Jnjvm.h (original)
+++ vmkit/trunk/lib/j3/VMCore/Jnjvm.h Thu Apr 25 12:23:43 2013
@@ -375,8 +375,6 @@ public:
void setBundleStaleReferenceCorrected(int64_t bundleID, bool corrected);
bool isBundleStaleReferenceCorrected(int64_t bundleID);
- void dumpClassLoaders(const classLoadersListType& class_loaders);
- void dumpBundleClassLoaders(int64_t bundleID);
void dumpClassLoaderBundles();
// class ArrayLong* getReferencesToObject(const JavaObject* obj);
Modified: vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp?rev=180555&r1=180554&r2=180555&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp Thu Apr 25 12:23:43 2013
@@ -879,13 +879,7 @@ const UTF8* JnjvmClassLoader::readerCons
JnjvmClassLoader::~JnjvmClassLoader() {
#if RESET_STALE_REFERENCES
-
-#if DEBUG_VERBOSE_CLASS_LOADER_UNLOADING
- cerr << "Bundle class loader unloaded, bundleID=" << this->getAssociatedBundleID() << endl;
-#endif
-
vm->removeClassLoaderFromBundles(this);
-
#endif
if (vm) {
@@ -1146,11 +1140,6 @@ ArrayObject* JnjvmBootstrapLoader::getBo
#if RESET_STALE_REFERENCES
-int64_t JnjvmClassLoader::getAssociatedBundleID()
-{
- return vm->getClassLoaderBundleID(this);
-}
-
void JnjvmClassLoader::setAssociatedBundleID(int64_t newID)
{
vm->addBundleClassLoader(newID, this);
Modified: vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.h?rev=180555&r1=180554&r2=180555&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.h Thu Apr 25 12:23:43 2013
@@ -352,7 +352,6 @@ public:
void setStaleReferencesCorrectionEnabled(bool enable) {staleRefCorrected = enable;}
// This bridges the OSGi world (bundles) to the Java world (class loaders).
- int64_t getAssociatedBundleID();
void setAssociatedBundleID(int64_t newID);
#endif
Modified: vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp?rev=180555&r1=180554&r2=180555&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp Thu Apr 25 12:23:43 2013
@@ -19,6 +19,39 @@ using namespace std;
namespace j3 {
+
+std::ostream& operator << (
+ std::ostream& os, const Jnjvm::classLoadersListType& obj)
+{
+ Jnjvm::classLoadersListType::const_iterator
+ i = obj.begin(), e = obj.end();
+ for (; i != e; ++i)
+ os << " " << (*i);
+ return os;
+}
+
+std::ostream& operator << (
+ std::ostream& os, const Jnjvm::bundleClassLoadersType::value_type& obj)
+{
+ return os << "bundleID=" << obj.first
+ << " classLoaders={" << obj.second << "}" << endl;
+}
+
+std::ostream& operator << (
+ std::ostream& os, const j3::Jnjvm::bundleClassLoadersType& obj)
+{
+ Jnjvm::bundleClassLoadersType::const_iterator
+ i = obj.begin(), e = obj.end();
+ for (; i != e; ++i)
+ os << *i;
+ return os;
+}
+
+void Jnjvm::dumpClassLoaderBundles()
+{
+ cerr << bundleClassLoaders;
+}
+
void Jnjvm::setBundleStaleReferenceCorrected(int64_t bundleID, bool corrected)
{
classLoadersListType class_loaders;
@@ -75,7 +108,8 @@ void Jnjvm::notifyBundleUninstalled(int6
}
#if DEBUG_VERBOSE_STALE_REF
- cerr << "Bundle uninstalled: bundleID=" << bundleID << endl;
+ cerr << "Bundle uninstalled: bundleID=" << bundleID
+ << " classLoaders={" << bundleClassLoaders[bundleID] << "}";
#endif
scanStaleReferences = true; // Enable stale references scanning
@@ -90,7 +124,7 @@ void Jnjvm::notifyBundleUpdated(int64_t
#if DEBUG_VERBOSE_STALE_REF
cerr << "Bundle updated: bundleID=" << bundleID
- << ", previousClassLoaders:";
+ << " classLoaders={" << bundleClassLoaders[bundleID] << "}";
#endif
// Mark previous bundle's class loaders as a zombies.
@@ -105,49 +139,12 @@ void Jnjvm::notifyBundleUpdated(int64_t
for (; i != e; ++i) {
if ((**i).isStaleReferencesCorrectionEnabled())
(**i).markZombie(true);
-
-#if DEBUG_VERBOSE_STALE_REF
- cerr << " " << (*i);
-#endif
}
-#if DEBUG_VERBOSE_STALE_REF
- cerr << endl;
-#endif
-
scanStaleReferences = true; // Enable stale references scanning
vmkit::Collector::collect(); // Start a garbage collection now
}
-void Jnjvm::dumpClassLoaders(const classLoadersListType& class_loaders)
-{
- classLoadersListType::const_iterator
- j = class_loaders.begin(),
- je = class_loaders.end();
-
- for (; j != je; ++j)
- cerr << " " << (*j);
-}
-
-void Jnjvm::dumpBundleClassLoaders(int64_t bundleID)
-{
- cerr << "bundleID=" << bundleID << " classLoaders:";
- dumpClassLoaders(bundleClassLoaders[bundleID]);
- cerr << endl;
-}
-
-void Jnjvm::dumpClassLoaderBundles()
-{
- bundleClassLoadersType::const_iterator
- i = bundleClassLoaders.begin(),
- ie = bundleClassLoaders.end();
- classLoadersListType::const_iterator j, je;
-
- cerr << "bundleID=" << i->first << " classLoaders:";
- for (; i != ie; ++i)
- dumpClassLoaders(i->second);
- cerr << endl;
-}
/*
ArrayLong* Jnjvm::getReferencesToObject(const JavaObject* obj)
{
@@ -227,7 +224,11 @@ void Jnjvm::addBundleClassLoader(int64_t
if (std::find(b, e, loader) != e) return;
class_loaders.push_front(loader);
- dumpBundleClassLoaders(bundleID);
+
+#if DEBUG_VERBOSE_STALE_REF
+ cerr << "Bundle installed/updated: bundleID=" << bundleID
+ << " classLoaders={" << class_loaders << "}" << endl;
+#endif
}
void Jnjvm::removeClassLoaderFromBundles(JnjvmClassLoader* loader)
@@ -246,7 +247,9 @@ void Jnjvm::removeClassLoaderFromBundles
i->second.remove(loader);
- dumpBundleClassLoaders(i->first);
+#if DEBUG_VERBOSE_STALE_REF
+ cerr << "Bundle uninstalled: " << *i;
+#endif
if (i->second.size() == 0)
bundleClassLoaders.erase(i->first);
More information about the vmkit-commits
mailing list