Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve unsafe reflect value handling.
This commit modifies the unsafeReflectValue function to recognize reference types even when the indirection flag is not set for the series of golang commits after ecccf07e7f9d and before 82f48826c6c7 which introduced the additional scalar field in the reflect.Value struct. That additional field has since been removed, but the intention of this code is to work properly across all Go versions and other packages make use of the logic. Thanks to @shurcooL for providing example code which wasn't working properly with the function when it was exported and therefore being called in ways which spew itself does not.
- Loading branch information
83f84dc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be accurate to say the intention is to work properly across all released Go versions? As in, 1.3.3, 1.4 (when the final version does come out), but not necessary in-between versions that are not released?
83f84dc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's the intent. That said, as far as I know, it does actually work across everything from 1.0 forward, including the in-between versions.
83f84dc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very cool.
As a heads up, this change fixes my reflection-based widget from:
To a working state:
Reflection and OpenGL LOD Bias.mov