[squeak-dev] The Trunk: Kernel-eem.1139.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Jan 11 01:37:35 UTC 2018


Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.1139.mcz

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

Name: Kernel-eem.1139
Author: eem
Time: 10 January 2018, 5:37:26.591853 pm
UUID: 54bd97b7-0152-4647-b109-78c294afc74e
Ancestors: Kernel-eem.1138

Add CompiledBlock>>pragmaAt:.  Make the accessors that defer to the home mehtod use homeMehtod instaed of chaining through outerCode.  The stack depth is one less as a result.

=============== Diff against Kernel-eem.1138 ===============

Item was changed:
  ----- Method: CompiledBlock>>encoderClass (in category 'accessing') -----
  encoderClass
  	"Answer the encoder class that encoded the bytecodes in this method.
  	 The sign flag bit is used by the VM to select a bytecode set.  This formulation
  	 may seem odd but this has to be fast, so no property probe unless needed."
  
  	^self header >= 0
  		ifTrue: 
  			[PrimaryBytecodeSetEncoderClass]
  		ifFalse:
  			[PrimaryBytecodeSetEncoderClass == SecondaryBytecodeSetEncoderClass
  				ifTrue: "Support for testing prior to installing another set"
+ 					[(self homeMethod propertyValueAt: #encoderClass) ifNil: [SecondaryBytecodeSetEncoderClass]]
- 					[(self outerCode propertyValueAt: #encoderClass) ifNil: [SecondaryBytecodeSetEncoderClass]]
  				ifFalse:
  					[SecondaryBytecodeSetEncoderClass]]!

Item was changed:
  ----- Method: CompiledBlock>>holdsTempNames (in category 'source code management') -----
  holdsTempNames
+ 	^self homeMethod holdsTempNames!
- 	^self outerCode holdsTempNames!

Item was changed:
  ----- Method: CompiledBlock>>methodClass (in category 'accessing') -----
  methodClass
  	"Answer the class that I am installed in."
+ 	^self homeMethod methodClass!
- 	| outerCodeOrMethodClassAssoc |
- 	outerCodeOrMethodClassAssoc := self outerCode.
- 	outerCodeOrMethodClassAssoc isVariableBinding ifTrue:
- 		[self assert: outerCodeOrMethodClassAssoc value isBehavior.
- 		 ^outerCodeOrMethodClassAssoc value].
- 	^outerCodeOrMethodClassAssoc methodClass!

Item was changed:
  ----- Method: CompiledBlock>>methodForDecompile (in category 'decompiling') -----
  methodForDecompile
+ 	^self homeMethod methodForDecompile!
- 	^self outerCode methodForDecompile!

Item was changed:
  ----- Method: CompiledBlock>>methodNode (in category 'accessing') -----
  methodNode
+ 	^ self homeMethod methodNode!
- 	^ self outerCode methodNode!

Item was added:
+ ----- Method: CompiledBlock>>pragmaAt: (in category 'accessing-pragmas & properties') -----
+ pragmaAt: aKey
+ 	"Answer the pragma with selector aKey, or nil if none."
+ 	^self homeMethod pragmaAt: aKey!

Item was changed:
  ----- Method: CompiledBlock>>selector (in category 'accessing') -----
  selector
+ 	^ self homeMethod selector!
- 	^ self outerCode selector!



More information about the Squeak-dev mailing list