runtime optimization - table.copy is bad
parent
1394026751
commit
9f17e17bc1
|
@ -77,8 +77,8 @@ function bdev:get_removable_disk(removable_type)
|
|||
if not self.stack then
|
||||
return false
|
||||
end
|
||||
local drop_pos = table.copy(self.bdev.os.pos)
|
||||
drop_pos = { x=drop_pos.x+math.random()*2-1, y=drop_pos.y,z=drop_pos.z+math.random()*2-1 }
|
||||
local p = self.bdev.os.pos
|
||||
local drop_pos = { x=p.x+math.random()*2-1, y=p.y,z=p.z+math.random()*2-1 }
|
||||
minetest.item_drop(self.stack, nil, drop_pos)
|
||||
self.stack = nil
|
||||
return true
|
||||
|
@ -192,7 +192,10 @@ end
|
|||
|
||||
-- Get handler
|
||||
function laptop.get_bdev_handler(mtos)
|
||||
local bdevobj = table.copy(bdev)
|
||||
local bdevobj = {}
|
||||
for k,v in pairs(bdev) do
|
||||
bdevobj[k] = v
|
||||
end
|
||||
bdevobj.os = mtos
|
||||
return bdevobj
|
||||
end
|
||||
|
|
13
mtos.lua
13
mtos.lua
|
@ -208,10 +208,12 @@ function os_class:set_theme(theme)
|
|||
end
|
||||
|
||||
function os_class:get_os_attr()
|
||||
local os_attr = table.copy(laptop.os_version_attr.default)
|
||||
if self.hwdef.os_version then
|
||||
os_attr = table.copy(laptop.os_version_attr[self.hwdef.os_version])
|
||||
local os_attr = {}
|
||||
local os_version = self.hwdef.os_version or 'default'
|
||||
for k, v in pairs(laptop.os_version_attr[os_version]) do
|
||||
os_attr[k] = v
|
||||
end
|
||||
|
||||
os_attr.tty_style = self.hwdef.tty_style or os_attr.tty_style
|
||||
if self.hwdef.tty_monochrome ~= nil then
|
||||
os_attr.tty_monochrome = self.hwdef.tty_monochrome
|
||||
|
@ -278,7 +280,10 @@ function os_class:get_app(name)
|
|||
if not template then
|
||||
return
|
||||
end
|
||||
local app = setmetatable(table.copy(template), laptop.class_lib.app)
|
||||
local app = setmetatable({}, laptop.class_lib.app)
|
||||
for k,v in pairs(template) do
|
||||
app[k] = v
|
||||
end
|
||||
app.name = name
|
||||
app.os = self
|
||||
return app
|
||||
|
|
|
@ -111,8 +111,11 @@ end
|
|||
|
||||
|
||||
function laptop.get_theme(theme_name)
|
||||
local self = setmetatable(table.copy(laptop.themes.default), theme_class)
|
||||
theme_name = theme_name or "Freedom"
|
||||
local self = setmetatable({}, theme_class)
|
||||
for k, v in pairs(laptop.themes.default) do
|
||||
self[k] = v
|
||||
end
|
||||
if theme_name and laptop.themes[theme_name] then
|
||||
for k,v in pairs(laptop.themes[theme_name]) do
|
||||
self[k] = v
|
||||
|
|
Loading…
Reference in New Issue