Skip to content

Commit 3455d34

Browse files
committed
Merge branch 'infrastructure' into core
2 parents 131eb1e + 2e3eede commit 3455d34

File tree

7 files changed

+38
-6
lines changed

7 files changed

+38
-6
lines changed

MMTk/src/org/mmtk/plan/TraceLocal.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ public final void processEdge(ObjectReference source, Address slot) {
111111
* @param slot The location containing the object reference to be
112112
* traced. The object reference is <i>NOT</i> an interior pointer.
113113
*/
114-
@Inline
115-
public final void reportDelayedRootEdge(Address slot) {
114+
@Inline
115+
public void reportDelayedRootEdge(Address slot) {
116116
rootLocations.push(slot);
117117
}
118118

@@ -432,6 +432,8 @@ public ObjectReference retainForFinalize(ObjectReference object) {
432432
}
433433

434434
/**
435+
* OBSOLETE?
436+
*
435437
* Return true if an object is ready to move to the finalizable
436438
* queue, i.e. it has no regular references to it. This method may
437439
* (and in some cases is) be overridden by subclasses. If this method
@@ -545,7 +547,7 @@ protected void processRememberedSets() {}
545547
* it is its own responsibility to ensure that they are flushed before
546548
* returning to MMTk.
547549
*/
548-
private void assertMutatorRemsetsFlushed() {
550+
protected void assertMutatorRemsetsFlushed() {
549551
/* FIXME: PNT
550552
if (VM.VERIFY_ASSERTIONS) {
551553
for (int m = 0; m < VM.activePlan.mutatorCount(); m++) {

MMTk/src/org/mmtk/utility/heap/Map.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ public static void finalizeStaticSpaceMap() {
285285
public static boolean isFinalized() {
286286
return finalized;
287287
}
288-
288+
289289
/**
290290
* Return the ordinal number for some free list space wishing to share a discontiguous region.
291291
* @return The ordinal number for a free list space wishing to share a discontiguous region

rvm/src/org/jikesrvm/VM.java

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.jikesrvm.scheduler.RVMThread;
4444
import org.jikesrvm.runtime.FileSystem;
4545
import org.jikesrvm.tuningfork.TraceEngine;
46+
import org.mmtk.policy.Space;
4647
import org.vmmagic.pragma.Entrypoint;
4748
import org.vmmagic.pragma.Inline;
4849
import org.vmmagic.pragma.Interruptible;

rvm/src/org/jikesrvm/classloader/RVMClass.java

+26-1
Original file line numberDiff line numberDiff line change
@@ -1248,9 +1248,34 @@ public synchronized void resolve() {
12481248
} else {
12491249
referenceOffsets = MemoryManager.newNonMovingIntArray(referenceFieldCount);
12501250
int j = 0;
1251+
// build a sorted array
12511252
for (RVMField field : instanceFields) {
12521253
if (field.isTraced()) {
1253-
referenceOffsets[j++] = field.getOffset().toInt();
1254+
int offset = field.getOffset().toInt();
1255+
if (j > 0) {
1256+
if (referenceOffsets[j-1] < offset) {
1257+
// append to array
1258+
referenceOffsets[j++] = offset;
1259+
} else {
1260+
int k, l;
1261+
// find insertion point (k)
1262+
for (k = 0; k < j; ++k) {
1263+
if (referenceOffsets[k] > offset)
1264+
break;
1265+
}
1266+
// move data away from insertion point
1267+
for (l = j; l > k; --l) {
1268+
referenceOffsets[l] = referenceOffsets[l-1];
1269+
}
1270+
// insert
1271+
referenceOffsets[k] = offset;
1272+
// increase array size
1273+
j++;
1274+
}
1275+
} else {
1276+
// first element; append to array
1277+
referenceOffsets[j++] = offset;
1278+
}
12541279
}
12551280
}
12561281
}

rvm/src/org/jikesrvm/mm/mminterface/Barriers.java

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.vmmagic.pragma.Inline;
2020
import org.vmmagic.pragma.Uninterruptible;
2121
import org.vmmagic.unboxed.Address;
22+
import org.vmmagic.unboxed.AddressArray;
2223
import org.vmmagic.unboxed.Extent;
2324
import org.vmmagic.unboxed.ObjectReference;
2425
import org.vmmagic.unboxed.Offset;

rvm/src/org/jikesrvm/objectmodel/JavaHeader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public class JavaHeader implements JavaHeaderConstants {
7878
/** offset of object reference from the lowest memory word */
7979
public static final int OBJECT_REF_OFFSET = ARRAY_HEADER_SIZE; // from start to ref
8080
protected static final Offset TIB_OFFSET = JAVA_HEADER_OFFSET;
81-
protected static final Offset STATUS_OFFSET = TIB_OFFSET.plus(STATUS_BYTES);
81+
public static final Offset STATUS_OFFSET = TIB_OFFSET.plus(STATUS_BYTES);
8282
protected static final Offset AVAILABLE_BITS_OFFSET =
8383
VM.LittleEndian ? (STATUS_OFFSET) : (STATUS_OFFSET.plus(STATUS_BYTES - 1));
8484

rvm/src/org/jikesrvm/scheduler/RVMThread.java

+3
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.jikesrvm.mm.mminterface.CollectorThread;
4444
import org.jikesrvm.mm.mminterface.MemoryManager;
4545
import org.jikesrvm.mm.mminterface.ThreadContext;
46+
import org.jikesrvm.mm.mmtk.Collection;
4647
import org.jikesrvm.objectmodel.ObjectModel;
4748
import org.jikesrvm.objectmodel.ThinLockConstants;
4849
import org.jikesrvm.runtime.Entrypoints;
@@ -78,6 +79,8 @@
7879
import org.jikesrvm.classloader.NormalMethod;
7980
import org.jikesrvm.tuningfork.TraceEngine;
8081
import org.jikesrvm.tuningfork.Feedlet;
82+
import org.mmtk.plan.MutatorContext;
83+
import org.mmtk.utility.options.Options;
8184

8285
/**
8386
* A generic java thread's execution context.

0 commit comments

Comments
 (0)