[Vm-dev] VM Maker: VMMaker.oscog-eem.774.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Jun 15 22:04:02 UTC 2014


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.774.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.774
Author: eem
Time: 15 June 2014, 3:01:35.066 pm
UUID: 665ef9a5-4139-4f97-85c0-0d0df9eea422
Ancestors: VMMaker.oscog-eem.773

Restore the accuracy of the comment in followForwarded:
back to Igor's original.

=============== Diff against VMMaker.oscog-eem.773 ===============

Item was changed:
  ----- Method: SpurMemoryManager>>followForwarded: (in category 'forwarding') -----
  followForwarded: objOop
+ 	"Follow a forwarding pointer.  THis must be a loop because we cannot prevent forwarders to
+ 	 forwarders being created by lazy become.  Consider the following example by Igor Stasenko:
- 	"Follow a forwarding pointer.  Alas we cannot prevent forwarders to forwarders
- 	 being created by lazy become.  Consider the following example by Igor Stasenko:
  		array := { a. b. c }.
+ 		- array at: 1 points to &a. array at: 2 points to &b. array at: 3 points to &c
- 		- array at: 1 points to a. array at: 2 points to b. array at: 3 points to c
  		a becomeForward: b
+ 		- array at: 1 still points to &a. array at: 2 still points to &b. array at: 3 still points to &c
- 		- array at: 1 still points to a. array at: 2 still points to b. array at: 3 still points to c
  		b becomeForward: c.
+ 		- array at: 1 still points to &a. array at: 2 still points to &b. array at: 3 still points to &c
- 		- array at: 1 still points to a. array at: 2 still points to b. array at: 3 still points to c
  		- when accessing array first one has to follow a forwarding chain:
+ 		&a -> &b -> c"
- 		a -> b -> c"
  	<api>
  	| referent |
  	self assert: (self isForwarded: objOop).
  	referent := self fetchPointer: 0 ofMaybeForwardedObject: objOop.
  	[(self isOopForwarded: referent)] whileTrue:
  		[referent := self fetchPointer: 0 ofMaybeForwardedObject: referent].
  	^referent!



More information about the Vm-dev mailing list