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

commits at source.squeak.org commits at source.squeak.org
Tue Oct 14 19:53:30 UTC 2014


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

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

Name: VMMaker.oscog-eem.903
Author: eem
Time: 14 October 2014, 12:48:31.324 pm
UUID: 9ce090a8-4af5-4298-8b32-3b5a832a1c06
Ancestors: VMMaker.oscog-eem.902

And follow in enclosingObjectAt:withObject:withMixin:

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

Item was changed:
  ----- Method: StackInterpreter>>enclosingObjectAt:withObject:withMixin: (in category 'newspeak bytecode support') -----
  enclosingObjectAt: n withObject: anObject withMixin: mixin 
  	"This is used to implement the innards of the pushEnclosingObjectBytecode,
  	 used for explicit outer sends in NS2/NS3.  "
  	| enclosingObject mixinApplication targetMixin count |
  	
  	enclosingObject := anObject.
  	targetMixin := mixin.
  	count := 0.
  	[count < n] whileTrue:
  		[count := count + 1.
+ 		(targetMixin = objectMemory nilObject
+ 		 or: [enclosingObject = objectMemory nilObject]) ifTrue:
- 		(targetMixin = objectMemory nilObject or:[enclosingObject = objectMemory nilObject]) ifTrue:
  			[^objectMemory nilObject].
  		mixinApplication := self
  								findApplicationOfTargetMixin: targetMixin
  								startingAtNonMetaClass: (objectMemory fetchClassOf: enclosingObject).
  		mixinApplication = objectMemory nilObject ifTrue:
  			[^objectMemory nilObject]. "should never happen!!"
+ 		enclosingObject := objectMemory followObjField: EnclosingObjectIndex ofObject: mixinApplication.	
+ 		targetMixin := objectMemory followObjField: EnclosingMixinIndex ofObject: targetMixin].
- 		enclosingObject := objectMemory fetchPointer: EnclosingObjectIndex ofObject: mixinApplication.	
- 		targetMixin := objectMemory fetchPointer: EnclosingMixinIndex ofObject: targetMixin].
  	
  	^enclosingObject!



More information about the Vm-dev mailing list