From 9033ca087bfd7eb69959e933eebfb64fd946eb7a Mon Sep 17 00:00:00 2001 From: hailaz <739476267@qq.com> Date: Fri, 16 May 2025 17:55:00 +0800 Subject: [PATCH] fix(net/ghttp): improve GetMetaTag method to handle nil and type checks --- net/ghttp/ghttp_server_router_serve.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/net/ghttp/ghttp_server_router_serve.go b/net/ghttp/ghttp_server_router_serve.go index abb9bd590..d034c98ab 100644 --- a/net/ghttp/ghttp_server_router_serve.go +++ b/net/ghttp/ghttp_server_router_serve.go @@ -294,12 +294,11 @@ func (h *HandlerItemParsed) MarshalJSON() ([]byte, error) { // GetMetaTag retrieves and returns the metadata value associated with the given key from the request struct. // The meta value is from struct tags from g.Meta/gmeta.Meta type. func (h *HandlerItem) GetMetaTag(key string) string { - if h == nil { - return "" - } - metaValue := gmeta.Get(h.Info.Type.In(1), key) - if metaValue != nil { - return metaValue.String() + if h != nil && h.Info.Type != nil && h.Info.Type.NumIn() == 2 { + metaValue := gmeta.Get(h.Info.Type.In(1), key) + if metaValue != nil { + return metaValue.String() + } } return "" }