On 12 January 2013 18:57, Jesus Nuñez <poissonbreaker@gmail.com> wrote:
Ok, but happens that #value: uses #fieldAt: was inherited from NBExternalStructure, which is no longer in the hierarchy. But I understand that it will no longer work with the change I made, any idea?
Yes, because address is not a structure. Initially it was like that to reuse some code pieces, but it not worth it.
Best Regards,
Jesus
2013/1/12 Igor Stasenko <siguctua@gmail.com>
No, it should be NBExternalAddress value: addr because method should answer an instance of NBExternalAddress not integer.
On 12 January 2013 15:25, Jesus Nuñez <poissonbreaker@gmail.com> wrote:
Sorry. NBExternalAddress new ulongAt: adress
2013/1/12 Jesus Nuñez <poissonbreaker@gmail.com>
I have made a small change in the code because NBExternalAdress does not inherit from NBExternalStructure anymore. It is safe?. I mean so far no problems but my understanding is limited so I haven't make any commit.
getGlobalSymbolPointer: symbolName | bytes addr | bytes := ByteArray new: 8. self bootstrapGetGlobalSymbolPointer: symbolName into: bytes. addr := bytes unsignedLongAt: 1 bigEndian: false. addr = 0 ifTrue: [self error: 'failed to get a symbol address: ' , symbolName]. +^ NBExternalAddress ulongAt: addr -^ NBExternalAddress value: addr
Cheers
-- Best regards, Igor Stasenko.
-- Best regards, Igor Stasenko.