summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--acf2/model/node.lua7
1 files changed, 4 insertions, 3 deletions
diff --git a/acf2/model/node.lua b/acf2/model/node.lua
index 85fc416..ff187b8 100644
--- a/acf2/model/node.lua
+++ b/acf2/model/node.lua
@@ -25,6 +25,9 @@ function M.BoundMember:init(parent, name, field)
function mt.__index(t, k)
local member = field[k]
if type(member) ~= 'function' then return member end
+
+ local addr = field.addr or pth.escape(name)
+ if type(addr) == 'function' then addr = addr(pmt.addr) end
return function(self, ...)
return member(
field,
@@ -32,9 +35,7 @@ function M.BoundMember:init(parent, name, field)
txn=pmt.txn,
parent=parent,
path=pth.join(pmt.path, name),
- addr=pth.to_absolute(
- field.addr or pth.escape(name), pmt.addr
- )
+ addr=pth.to_absolute(addr, pmt.addr)
},
...
)