[Vm-dev] VM Maker: VMMaker.oscog-eem.1438.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Aug 18 19:40:48 UTC 2015
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1438.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1438
Author: eem
Time: 18 August 2015, 12:39:27.454 pm
UUID: ee0708f6-7d3b-4c75-8e4b-376cf87ef426
Ancestors: VMMaker.oscog-rmacnak.1437
Use the isFooMethod: level method privacy accessors to test in two remaining lookup routines, restricting AccessModifierPublic et al to the inner accessors.
=============== Diff against VMMaker.oscog-rmacnak.1437 ===============
Item was changed:
----- Method: CoInterpreter>>lookupProtectedNoMNU:startingAt:rule: (in category 'message sending') -----
lookupProtectedNoMNU: selector startingAt: mixinApplication rule: rule
"A shared part of the lookup for self, outer or implicit receiver sends that did not find a
private lexically visible method, and (Newspeak) super sends."
| lookupClass dictionary found |
lookupClass := mixinApplication.
[lookupClass = objectMemory nilObject] whileFalse:
[dictionary := objectMemory followObjField: MethodDictionaryIndex ofObject: lookupClass.
found := self lookupMethodInDictionary: dictionary.
+ (found and: [(self isPrivateMethod: newMethod) not]) ifTrue:
+ [^0].
- (found and: [(self accessModifierOfMethod: newMethod) ~= AccessModifierPrivate])
- ifTrue: [^0].
lookupClass := self superclassOf: lookupClass].
^SelectorDoesNotUnderstand!
Item was changed:
----- Method: StackInterpreter>>lookupProtected:startingAt:rule: (in category 'message sending') -----
lookupProtected: selector startingAt: mixinApplication rule: rule
"A shared part of the lookup for self, outer or implicit receiver sends that did not find a
private lexically visible method, and (Newspeak) super sends."
| lookupClass dictionary found |
lookupClass := mixinApplication.
[lookupClass = objectMemory nilObject] whileFalse:
[dictionary := objectMemory followObjField: MethodDictionaryIndex ofObject: lookupClass.
found := self lookupMethodInDictionary: dictionary.
+ (found and: [(self isPrivateMethod: newMethod) not]) ifTrue:
+ [^0].
- (found and: [(self accessModifierOfMethod: newMethod) ~= AccessModifierPrivate])
- ifTrue: [^rule].
lookupClass := self superclassOf: lookupClass].
^self lookupDnuAbsent!
More information about the Vm-dev
mailing list