From 68ce3abb113fc5523e3ba4d2e3bf79d79835637b Mon Sep 17 00:00:00 2001 From: iTryIt <383560140@qq.com> Date: Fri, 15 Dec 2023 21:06:34 +0800 Subject: [PATCH] fix nil ptr panic add valueOf.IsNil in Ptr --- filter/parser.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/filter/parser.go b/filter/parser.go index e897e67..e26ce46 100644 --- a/filter/parser.go +++ b/filter/parser.go @@ -17,9 +17,13 @@ func (t *fieldNodeTree) parseAny(key, scene string, valueOf reflect.Value, isSel TakePointerValue: //取指针的值 switch typeOf.Kind() { case reflect.Ptr: //如果是指针类型则取值重新判断类型 - valueOf = valueOf.Elem() - typeOf = typeOf.Elem() - goto TakePointerValue + if !valueOf.IsNil() { + valueOf = valueOf.Elem() + typeOf = typeOf.Elem() + goto TakePointerValue + } else { + parserNilInterface(t, key) + } case reflect.Interface: if !valueOf.IsNil() { valueOf = reflect.ValueOf(valueOf.Interface())