J'ai un objet que je crée en utilisant la fonction suivantevariable fonction deepcopying donne des résultats inattendus
local function newObject(functionVariable)
...
functionVariable = functionVariable or nop
...
return setmetatable({
...
functionVariable = functionVariable,
...
}, Objectmt)
end
Quand je deepcopy cet objet en utilisant ce
local function deepcopy(t)
if t == nil then return nil end
if type(t) == 'table' then
local copy = {}
for k, v in pairs(t) do
copy[k] = deepcopy(v)
end
setmetatable(copy, deepcopy(getmetatable(t)))
return copy
else -- number, string, boolean, etc
return t
end
end
et la charge dans l'objet en utilisant ce
for k, v in pairs(state.objectsTable) do objectsTable[k] = v end
La variable de fonction est totalement erronée. Ce n'est pas la fonction qui a été passée dans l'objet et donne des résultats inattendus