jchv / go-webview2

WebView2 bindings for pure Go, without CGo, based on the webview/webview bindings.
Other
263 stars 64 forks source link

Use runtime.Pin to remove unsafe code #74

Open jchv opened 3 months ago

jchv commented 3 months ago

Time has passed and now it should be trivially possible to fix our broken reliance on pointers not moving, as runtime.Pin eventually did arrive in Go 1.21.

https://github.com/jchv/go-webview2/blob/master/pkg/edge/chromium.go#L49-L59

We probably just need one pinner for all of the handlers. One open question is when to execute the unpin; a finalizer might be the safest bet.

I'm considering this a bug since the code is relying on behavior that is explicitly not guaranteed.