[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