[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