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 | 23eb311e20cfdcba0fbc497fd45e448ee619f640 (patch) | |
tree | ed7768f531d3923c9d6169e0d1fceafe67638fb1 /util | |
parent | 04384c44a021d128e8f61e67c7cf18d3a900b040 (diff) | |
download | prosody-23eb311e20cfdcba0fbc497fd45e448ee619f640.tar.gz prosody-23eb311e20cfdcba0fbc497fd45e448ee619f640.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.
Diffstat (limited to 'util')
-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; }; |