aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2019-07-08 02:46:27 +0200
committerKim Alvefur <zash@zash.se>2019-07-08 02:46:27 +0200
commite22a26259927efe96a2808964e98f1dd42a573e5 (patch)
treeed7768f531d3923c9d6169e0d1fceafe67638fb1 /util
parent005aa17e7a8a7e16a41113def642d8aabb3507fd (diff)
downloadprosody-e22a26259927efe96a2808964e98f1dd42a573e5.tar.gz
prosody-e22a26259927efe96a2808964e98f1dd42a573e5.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.lua7
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;
};