update gotip and adapt to upstream changes
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.pull/706/head
parent
9d04637009
commit
1f39d0af72
Loading…
Reference in New Issue