diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-06-28 07:00:01 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-06-28 13:40:05 +0300 |
commit | 00166624a85afdbe24722c7e2e3320316cfbae93 (patch) | |
tree | f9484b7eb7c2c889c048b318a402d19a7e8ac5ff /acf/model/root.lua | |
parent | 37396d77b3e911b1c5351ab56ff3ec5797e2f62d (diff) | |
download | aconf-00166624a85afdbe24722c7e2e3320316cfbae93.tar.bz2 aconf-00166624a85afdbe24722c7e2e3320316cfbae93.tar.xz |
prevent deletion of objects referred to by other objects
Diffstat (limited to 'acf/model/root.lua')
-rw-r--r-- | acf/model/root.lua | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/acf/model/root.lua b/acf/model/root.lua index d17f8a9..2d3b2a0 100644 --- a/acf/model/root.lua +++ b/acf/model/root.lua @@ -40,7 +40,7 @@ function topology(addr, create) else addr = pth.split(addr) end local function defaults(top) - return util.setdefaults(top, {members={}, paths={}}) + return util.setdefaults(top, {members={}, paths={}, referrers={}}) end while #addr > 0 do @@ -77,14 +77,11 @@ function register(name, field, params) table.insert(top.paths, record.path) if record.scope then - set( - 'scope', - node.addr( - root:fetch( - pth.to_absolute(record.scope, pth.parent(record.path)) - ) - ) + local scope = node.addr( + root:fetch(pth.to_absolute(record.scope, pth.parent(record.path))) ) + set('scope', scope) + table.insert(topology(scope, true).referrers, record.path) end end end |