internal/impl: pass *coderFieldInfo into fast-path functions
Refactor the fast-path size, marshal, unmarshal, and isinit functions to
take the *coderFieldInfo for the field as input.
This replaces a number of closures capturing field-specific information
with functions taking that information as an explicit parameter.
Change-Id: I8cb39701265edb7b673f6f04a0152d5f4dbb4d5d
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/218937
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/internal/impl/isinit.go b/internal/impl/isinit.go
index d3a01bc..63d1fa5 100644
--- a/internal/impl/isinit.go
+++ b/internal/impl/isinit.go
@@ -54,7 +54,7 @@
if f.funcs.isInit == nil {
continue
}
- if err := f.funcs.isInit(fptr); err != nil {
+ if err := f.funcs.isInit(fptr, f); err != nil {
return err
}
}