[squeak-dev] The Trunk: Tools-eem.832.mcz
Eliot Miranda
eliot.miranda at gmail.com
Wed Oct 17 01:28:41 UTC 2018
Apologies. This has a bad mistake in it. Ive deleted it and am sitting on
the correct fix for a bit longer, given Chris' recent reminding of the
trunk committing rules.
On Tue, Oct 16, 2018 at 4:21 PM <commits at source.squeak.org> wrote:
> Eliot Miranda uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-eem.832.mcz
>
> ==================== Summary ====================
>
> Name: Tools-eem.832
> Author: eem
> Time: 16 October 2018, 4:20:50.731928 pm
> UUID: 9aa4b922-fe6a-41cb-8cba-974b14632177
> Ancestors: Tools-cmm.831
>
> Fix a bug with DebuggerMethodMap and full blocks (Sista V1 bytecode set).
> DebuggerMethodMap must be careful to use the right kind iof dictionry
> (Dictionary vs IdentityDictionary) for mapping startKeys to block starts
> and block starts to temps. startKeys may be values (startpc with embedded
> blocks) or objects (initialPC and block itself for full blocks). And
> blockExtentsToTempRefs must always be a Dictionary ince block extents are
> ranges.
>
> =============== Diff against Tools-cmm.831 ===============
>
> Item was changed:
> ----- Method:
> DebuggerMethodMapForClosureCompiledMethods>>privateTempRefsForContext:startKeysToBlockExtents:
> (in category 'private') -----
> privateTempRefsForContext: aContext startKeysToBlockExtents:
> theContextsStartKeysToBlockExtents
> "Answer the sequence of temps in scope in aContext in the natural
> order,
> outermost arguments and temporaries first, innermost last. Each
> temp is
> a pair of the temp's name followed by a reference. The reference
> can be
> integer - index of temp in aContext
> #( indirectionVectorIndex tempIndex ) - remote temp in
> indirectionVector at index in aContext
> #( outer. temp reference ) - a temp reference in an outer
> context."
> blockExtentsToTempRefs ifNil:
> [blockExtentsToTempRefs := (aContext method holdsTempNames
>
> ifTrue: [aContext method]
>
> ifFalse: [methodNode]) blockExtentsToTempsMap.
> + blockExtentsToTempRefs
> + ifNil: ["an empty method. shouldn't be able to
> step into here but it
> + can happen in weird circumstances (i.e.
> with MethodWrapper)."
> + blockExtentsToTempRefs := Dictionary new.
> + blockExtentsToTempRefs
> + at:
> (theContextsStartKeysToBlockExtents at: aContext startKey)
> + put: {}]
> + ifNotNil:
> + [(blockExtentsToTempRefs isKindOf:
> IdentityDictionary) ifTrue:
> + [blockExtentsToTempRefs :=
> Dictionary withAll: blockExtentsToTempRefs associations]].
> + startKeysToTempRefs := aContext homeMethod
> newBlockStartMap].
> - blockExtentsToTempRefs ifNil:
> - ["an empty method. shouldn't be able to step into
> here but it
> - can happen in weird circumstances (i.e. with
> MethodWrapper)."
> - blockExtentsToTempRefs := Dictionary new.
> - blockExtentsToTempRefs
> - at: (theContextsStartKeysToBlockExtents
> at: aContext startKey)
> - put: {}].
> - startKeysToTempRefs := Dictionary new].
> ^startKeysToTempRefs
> at: aContext startKey
> ifAbsentPut:
> [| localRefs |
> localRefs := blockExtentsToTempRefs at:
> (theContextsStartKeysToBlockExtents at: aContext startKey) ifAbsent: [#()].
> aContext outerContext
> ifNil: [localRefs]
> ifNotNil:
> [:outer| | outerTemps |
> "Present temps in the order
> outermost to innermost left-to-right, but replace
> copied outermost temps with their
> innermost copies"
> outerTemps := (self
>
> privateTempRefsForContext: outer
>
> startKeysToBlockExtents: theContextsStartKeysToBlockExtents) collect:
> [:outerPair|
> localRefs
> detect:
> [:localPair| outerPair first = localPair first]
> ifNone: [{
> outerPair first. { #outer. outerPair last } }]].
> outerTemps,
> (localRefs reject: [:localPair|
> outerTemps anySatisfy: [:outerPair| localPair first = outerPair first]])]]!
>
>
>
--
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20181016/b02447fd/attachment.html>
More information about the Squeak-dev
mailing list
|