webmcp
view framework/env/slot/reset_all.lua @ 257:78a2ae40c88e
Code optimization in slot.reset_all{...}
| author | jbe | 
|---|---|
| date | Sun Mar 15 01:06:04 2015 +0100 (2015-03-15) | 
| parents | 09f749330d13 | 
| children | f491011ebe16 | 
 line source
     1 --[[--
     2 slot.reset_all{
     3   except =  except  -- Reset all slots, except slots named in this list
     4 }
     6 Calling this function resets all slots to be empty. An exclusion list may be passed to the function as named argument.
     8 --]]--
    10 function slot.reset_all(args)
    11   local saved
    12   if args and args.except then
    13     saved = {}
    14     for i, key in ipairs(args.except) do
    15       saved[key] = slot._data[key]
    16     end
    17   end
    18   slot._data = setmetatable({}, slot._data_metatable)
    19   if saved then
    20     for key, value in pairs(saved) do
    21       slot._data[key] = value
    22     end
    23   end
    24 end
