projects
/
project
/
luci.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
37b5ef4
)
Heavy memory/performance optimizations #4
author
Steven Barth
<steven@midlink.org>
Fri, 5 Sep 2008 18:35:09 +0000
(18:35 +0000)
committer
Steven Barth
<steven@midlink.org>
Fri, 5 Sep 2008 18:35:09 +0000
(18:35 +0000)
libs/web/luasrc/dispatcher.lua
patch
|
blob
|
history
diff --git
a/libs/web/luasrc/dispatcher.lua
b/libs/web/luasrc/dispatcher.lua
index
09e99e7
..
599d652
100644
(file)
--- a/
libs/web/luasrc/dispatcher.lua
+++ b/
libs/web/luasrc/dispatcher.lua
@@
-160,9
+160,10
@@
function dispatch(request)
-- Init template engine
if not track.notemplate then
local tpl = require("luci.template")
-- Init template engine
if not track.notemplate then
local tpl = require("luci.template")
- local viewns =
{}
+ local viewns =
setmetatable({}, {__index=_G})
tpl.context.viewns = viewns
viewns.write = luci.http.write
tpl.context.viewns = viewns
viewns.write = luci.http.write
+ viewns.include = function(name) tpl.Template(name):render(getfenv(2)) end
viewns.translate = function(...) return require("luci.i18n").translate(...) end
viewns.striptags = util.striptags
viewns.controller = luci.http.getenv("SCRIPT_NAME")
viewns.translate = function(...) return require("luci.i18n").translate(...) end
viewns.striptags = util.striptags
viewns.controller = luci.http.getenv("SCRIPT_NAME")
@@
-219,7
+220,15
@@
function dispatch(request)
context.dispatched = c
util.copcall(function()
context.dispatched = c
util.copcall(function()
- util.updfenv(c.target, require(c.module))
+ local oldenv = getfenv(c.target)
+ local module = require(c.module)
+ local env = setmetatable({}, {__index=
+
+ function(tbl, key)
+ return rawget(tbl, key) or module[key] or oldenv[key]
+ end})
+
+ setfenv(c.target, env)
end)
c.target(unpack(args))
end)
c.target(unpack(args))