You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
https://go.dev/cl/466095 lightly refactored the runtime in a way that broke extractNameOff. In particular, the code func cfuncname(f funcInfo) *byte { if !f.valid() || f.nameOff == 0 { return nil } return &f.datap.funcnametab[f.nameOff] } func funcname(f funcInfo) string { return gostringnocopy(cfuncname(f)) } is now simply func funcname(f funcInfo) string { if !f.valid() { return "" } return f.datap.funcName(f.nameOff) } Since extractNameOff looked for the func named cfuncname, and looked for the nameOff selector inside an index expression, all of that code no longer worked properly. It all existed to find the name of the field, nameOff, so that we would automatically adapt if upstream renames it. Unsurprisingly, the code using the field got refactored first. It doesn't seem like the extra code on our part is helping us, and assuming the name of the field works for all Go versions, so do that instead. If upstream does rename the field in the future, the obfuscated Go builds will start failing in an obvious way. If or when that comes to pass, we can change our constant string. |
2 years ago | |
---|---|---|
.. | ||
workflows | 2 years ago | |
FUNDING.yml | 2 years ago | |
ISSUE_TEMPLATE.md | 4 years ago |