[squeak-dev] The Trunk: Compiler-eem.365.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Jan 6 04:21:24 UTC 2018

Eliot Miranda uploaded a new version of Compiler to project The Trunk:

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

Name: Compiler-eem.365
Author: eem
Time: 5 January 2018, 8:21:15.192014 pm
UUID: e3702a86-124d-46ca-bd7d-0707ab249ab4
Ancestors: Compiler-eem.364

Make reindexingLiteralsDo: more robust when literals get added during blocks and hence weren't saved before the block was generated.

=============== Diff against Compiler-eem.364 ===============

Item was changed:
  ----- Method: BytecodeEncoder>>reindexingLiteralsDo: (in category 'code generation') -----
  reindexingLiteralsDo: aBlock
  	| savedLiterals saveBlock |
  	savedLiterals := PluggableDictionary new equalBlock: litSet equalBlock.
  	saveBlock := [:assoc| savedLiterals at: assoc key put: assoc value shallowCopy].
  	litSet associationsDo: saveBlock.
  	litIndSet associationsDo: saveBlock.
  	selectorSet associationsDo: saveBlock.
  	^aBlock ensure:
  		[| restoreBlock |
+ 		 restoreBlock := [:assoc| assoc value resetFromCopy: (savedLiterals at: assoc key ifAbsent: [assoc value])].
- 		 restoreBlock := [:assoc| assoc value resetFromCopy: (savedLiterals at: assoc key)].
  		 litSet associationsDo: restoreBlock.
  		 litIndSet associationsDo: restoreBlock.
  		 selectorSet associationsDo: restoreBlock]!

More information about the Squeak-dev mailing list