Comparison

plugins/storage/sqlbasic.lib.lua @ 5021:85b2689dbcfe

Eliminate direct setfenv usage
author Florian Zeitz <florob@babelmonkeys.de>
date Fri, 08 Jun 2012 05:04:38 +0200
parent 2678:c5882e2e12b5
comparison
equal deleted inserted replaced
5020:ef1eb65acbba 5021:85b2689dbcfe
1 1
2 -- Basic SQL driver 2 -- Basic SQL driver
3 -- This driver stores data as simple key-values 3 -- This driver stores data as simple key-values
4 4
5 local ser = require "util.serialization".serialize; 5 local ser = require "util.serialization".serialize;
6 local envload = require "util.envload".envload;
6 local deser = function(data) 7 local deser = function(data)
7 module:log("debug", "deser: %s", tostring(data)); 8 module:log("debug", "deser: %s", tostring(data));
8 if not data then return nil; end 9 if not data then return nil; end
9 local f = loadstring("return "..data); 10 local f = envload("return "..data, nil, {});
10 if not f then return nil; end 11 if not f then return nil; end
11 setfenv(f, {});
12 local s, d = pcall(f); 12 local s, d = pcall(f);
13 if not s then return nil; end 13 if not s then return nil; end
14 return d; 14 return d;
15 end; 15 end;
16 16