diff options
author | Kim Alvefur <zash@zash.se> | 2019-07-08 02:46:27 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2019-07-08 02:46:27 +0200 |
commit | e081fd664251a2eb7ab68262c2b8a3cad4b381c7 (patch) | |
tree | ed7768f531d3923c9d6169e0d1fceafe67638fb1 | |
parent | 70e3e96c0225d0e43224a14f902b951b6b480996 (diff) | |
download | prosody-e081fd664251a2eb7ab68262c2b8a3cad4b381c7.tar.gz prosody-e081fd664251a2eb7ab68262c2b8a3cad4b381c7.zip |
util.serialization: Cache default serialization instance (fixes #1389)
Most serialization uses still use the default serialize() and thus
duplicate much of the setup, which negates some of the performance
improvements of the rewrite.
-rw-r--r-- | util/serialization.lua | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/util/serialization.lua b/util/serialization.lua index dd6a2a2b..5121a9f9 100644 --- a/util/serialization.lua +++ b/util/serialization.lua @@ -272,10 +272,15 @@ local function deserialize(str) return ret; end +local default = new(); return { new = new; serialize = function (x, opt) - return new(opt)(x); + if opt == nil then + return default(x); + else + return new(opt)(x); + end end; deserialize = deserialize; }; |