[vmkit-commits] [vmkit] r108835 - /vmkit/trunk/lib/Mvm/Runtime/Object.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue Jul 20 07:00:42 PDT 2010
Author: geoffray
Date: Tue Jul 20 09:00:41 2010
New Revision: 108835
URL: http://llvm.org/viewvc/llvm-project?rev=108835&view=rev
Log:
Update the forwarded reference, not the old reference.
Modified:
vmkit/trunk/lib/Mvm/Runtime/Object.cpp
Modified: vmkit/trunk/lib/Mvm/Runtime/Object.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Runtime/Object.cpp?rev=108835&r1=108834&r2=108835&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/Runtime/Object.cpp (original)
+++ vmkit/trunk/lib/Mvm/Runtime/Object.cpp Tue Jul 20 09:00:41 2010
@@ -202,12 +202,14 @@
gc* reference, VirtualMachine* vm, uintptr_t closure) {
if (!Collector::isLive(reference, closure)) {
vm->clearReferent(reference);
- return 0;
+ return NULL;
}
gc* referent = *(vm->getReferentPtr(reference));
- if (!referent) return 0;
+ if (!referent) {
+ return NULL;
+ }
if (semantics == SOFT) {
// TODO: are we are out of memory? Consider that we always are for now.
@@ -218,16 +220,16 @@
// Nothing to do.
}
+ gc* newReference =
+ mvm::Collector::getForwardedReference(reference, closure);
if (Collector::isLive(referent, closure)) {
gc* newReferent = mvm::Collector::getForwardedReferent(referent, closure);
- gc* newReference =
- mvm::Collector::getForwardedReference(reference, closure);
vm->setReferent(newReference, newReferent);
return newReference;
} else {
- vm->clearReferent(reference);
- vm->addToEnqueue(reference);
- return 0;
+ vm->clearReferent(newReference);
+ vm->addToEnqueue(newReference);
+ return NULL;
}
}
More information about the vmkit-commits
mailing list