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.
tailscale/ipn
Nick Khyl da9965d51c cmd/viewer,types/views,various: avoid allocations in pointer field getters whenever possible
In this PR, we add a generic views.ValuePointer type that can be used as a view for pointers
to basic types and struct types that do not require deep cloning and do not have corresponding
view types. Its Get/GetOk methods return stack-allocated shallow copies of the underlying value.

We then update the cmd/viewer codegen to produce getters that return either concrete views
when available or ValuePointer views when not, for pointer fields in generated view types.
This allows us to avoid unnecessary allocations compared to returning pointers to newly
allocated shallow copies.

Updates #14570

Signed-off-by: Nick Khyl <nickk@tailscale.com>
11 months ago
..
conffile ipn/conffile: don't depend on hujson on iOS/Android 1 year ago
ipnauth ipn/{ipnauth,ipnlocal,ipnserver}: send the auth URL to the user who started interactive login 1 year ago
ipnlocal cmd/viewer,types/views,various: avoid allocations in pointer field getters whenever possible 11 months ago
ipnserver all: illumos/solaris userspace only support 11 months ago
ipnstate all: illumos/solaris userspace only support 11 months ago
localapi util/uniq,types/lazy,*: delete code that's now in Go std 11 months ago
policy ipn,tailconfig: clean up unreleased and removed app connector service 2 years ago
store kube/{kubeapi,kubeclient},ipn/store/kubestore,cmd/{containerboot,k8s-operator}: emit kube store Events (#14112) 1 year ago
backend.go ipn: declare NotifyWatchOpt consts without using iota 11 months ago
conf.go ipn/conf.go: add VIPServices to tailscaled configfile (#14345) 11 months ago
doc.go IPN: Update ServeConfig to accept configuration for Services. 1 year ago
ipn_clone.go IPN: Update ServeConfig to accept configuration for Services. 1 year ago
ipn_test.go all: do not depend on the testing package 2 years ago
ipn_view.go IPN: Update ServeConfig to accept configuration for Services. 1 year ago
prefs.go cmd/tailscale,ipn,tailcfg: add `tailscale advertise` subcommand behind envknob (#13734) 1 year ago
prefs_test.go cmd/tailscale,ipn,tailcfg: add `tailscale advertise` subcommand behind envknob (#13734) 1 year ago
serve.go ipn/ipnlocal: connect serve config to c2n endpoint 11 months ago
serve_test.go cmd/serve: don't convert localhost to 127.0.0.1 1 year ago
store.go ipn: add comment about thread-safety to StateStore 2 years ago
store_test.go ipn: avoid useless no-op WriteState calls 2 years ago