Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CogVM source as per VMMaker.oscog-eem.3488
Fix bad bug with scavenging ephemerons. The old code scavenged only the first slot of a scavenged ephemeron, instead of the correct behaviour which is to scavenge everything but the first slot of the scavenged ephemeron. To this end: Refactor scavengeReferentsOf: into separate routines fror pointer objects, indexable pointer objects (including contexts), weak objects, ephemerons, and compiled methods. Make all SpurMemoryManager format code accessors macros. In copyAndForward: Rewrite shouldBeTenured: to be inlinable in an if, and evaluate it only if futureSpace woud not overflow. This is an or so does less work. Streamline the testing for weak & ephemeron objects. Now that ephemerons are being used in anger lose a spurious assert in updatePointersInSurvivingObjects.
- Loading branch information