unsafe: Removes most of the unsafe
casts.
#81
Labels
imported PR
Pull Request imported from google/grumpy
waiting feedback
Waiting confirmation of changes or fixes
google#58 opened on Jan 6, 2017 by @nairb774
Rather than forcing casts from an *Object to the desired type, we store a "self" reference on the object to allow us to get back to the containing type. This does increase the amount of ram each object takes up (~2 more pointers), the chance of miscasting code goes down dramatically.
There is still a bad cast resulting from values coming out of WrapNative, and this has helped corner that cast. The actual fix is quite involved, but this should prevent similar problems in the future (hopefully).
I expect that this might be a little controversial, but the WrapNative bug I am trying to pin down is the result of the following:
The returned value is a memory mashup of an Int and a Long. There is a similar test already, but it only uses a raw
uint64
rather than something likefoo
above.Thoughts?
The text was updated successfully, but these errors were encountered: