On 04 Sep 2014, at 10:12, Yuriy Tymchuk <[email protected]> wrote:

> I’ve investigated an error.
> 
> It occurs as follows:
> 1. Two class variables (assoc subclass) are checked for equality. This also 
> checks the equality of assoc. values.
> 2. When two registers are checked for equality their code is checked. #code 
> method in AJx64RipRegister throws an error.
> 
> one thing that bothers me is that global variables comparison relies on their 
> content’s functionality.
> 
> On the other hand there is no way to compare AJx64RipRegister registers, as 
> #= inherited from AJBaseReg will %100 crash.
> 
I think the solution is to use #identityIncludes: in 

whichSelectorsReferTo: literal special: specialFlag byte: specialByte
    "Answer a set of selectors whose methods access the argument as a literal."

    | who |
    who := IdentitySet new.
    self selectorsAndMethodsDo: 
        [:sel :method |
        ((method hasLiteral: literal) or: [specialFlag and: [method scanFor: 
specialByte]])
            ifTrue:
                [((literal isVariableBinding) not
                    or: [method literals allButLast identityIncludes: literal])
                        ifTrue: [who add: sel]]].
    ^ who




> Uko
> 
> On 04 Sep 2014, at 09:55, Yuriy Tymchuk <[email protected]> wrote:
> 
>> Sure https://pharo.fogbugz.com/f/cases/13952/Pool-access-lookup-crash
>> 
>> On 04 Sep 2014, at 09:44, Marcus Denker <[email protected]> wrote:
>> 
>>> Hi,
>>> 
>>> No, not yet reported. Can you open an issue?
>>> 
>>> 
>>> On Wed, Sep 3, 2014 at 8:43 PM, Yuriy Tymchuk <[email protected]> wrote:
>>> Hi everyone,
>>> 
>>> when you go to AJx86Registers class, press “Show class variables” and 
>>> select ‘IP’, then it crashes with: 'RIP register IP cannot be used only for 
>>> relative addressing’. I couldn’t find related bug report, should I open one?
>>> 
>>> <Screen Shot 2014-09-03 at 20.40.17.png>
>>> 
>>> Uko
>>> 
>>> 
>>> 
>>> -- 
>>> --
>>> Marcus Denker  --  [email protected]
>>> http://www.marcusdenker.de
>> 
> 

Reply via email to