зеркало из
https://github.com/Hilbis/Hilbish
synced 2025-07-18 16:52:02 +00:00
fix(util): SetField on a table with a metatable causing panic
Этот коммит содержится в:
родитель
bd35e3b871
Коммит
abfd4e5196
@ -29,12 +29,16 @@ func SetField(rtm *rt.Runtime, module *rt.Table, field string, value rt.Value, d
|
|||||||
|
|
||||||
if mt == nil {
|
if mt == nil {
|
||||||
mt = rt.NewTable()
|
mt = rt.NewTable()
|
||||||
docProp := rt.NewTable()
|
|
||||||
mt.Set(rt.StringValue("__docProp"), rt.TableValue(docProp))
|
|
||||||
|
|
||||||
module.SetMetatable(mt)
|
module.SetMetatable(mt)
|
||||||
}
|
}
|
||||||
|
|
||||||
docProp := mt.Get(rt.StringValue("__docProp"))
|
docProp := mt.Get(rt.StringValue("__docProp"))
|
||||||
|
if docProp == rt.NilValue {
|
||||||
|
docPropTbl := rt.NewTable()
|
||||||
|
mt.Set(rt.StringValue("__docProp"), rt.TableValue(docPropTbl))
|
||||||
|
docProp = mt.Get(rt.StringValue("__docProp"))
|
||||||
|
}
|
||||||
|
|
||||||
docProp.AsTable().Set(rt.StringValue(field), rt.StringValue(doc))
|
docProp.AsTable().Set(rt.StringValue(field), rt.StringValue(doc))
|
||||||
module.Set(rt.StringValue(field), value)
|
module.Set(rt.StringValue(field), value)
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user