From 10047e31ab4b33014c09fd091453e691aea267b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen?= Date: Sun, 28 Dec 2025 21:54:51 +0100 Subject: [PATCH] codec --- .../Modules/ChannelSync.lua | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/TradeSkillMaster_AuctionDB/Modules/ChannelSync.lua b/TradeSkillMaster_AuctionDB/Modules/ChannelSync.lua index 9e6c1d1..539202b 100644 --- a/TradeSkillMaster_AuctionDB/Modules/ChannelSync.lua +++ b/TradeSkillMaster_AuctionDB/Modules/ChannelSync.lua @@ -27,7 +27,16 @@ local strbyte = string.byte local libS = LibStub:GetLibrary("AceSerializer-3.0") local libC = LibStub:GetLibrary("LibCompress") -local libCE = libC:GetChatEncodeTable("", "\031") +local libCE + +local function GetCodec() + if libCE then return libCE end + libCE = libC:GetChatEncodeTable("", "\031") + if not libCE then + libCE = libC:GetChatEncodeTable() + end + return libCE +end local function HashString(str) local hash = 0 @@ -74,18 +83,22 @@ end local function EncodePayload(payload) local serialized = libS:Serialize(payload) - local encoded = libCE:Encode(libC:CompressHuffman(serialized)) + local codec = GetCodec() + if not codec then return end + local encoded = codec:Encode(libC:CompressHuffman(serialized)) if not encoded then - encoded = libCE:Encode(libC:CompressLZW(serialized)) + encoded = codec:Encode(libC:CompressLZW(serialized)) end if not encoded then - encoded = libCE:Encode("\001" .. serialized) + encoded = codec:Encode("\001" .. serialized) end return encoded end local function DecodePayload(encoded) - local decoded = libCE:Decode(encoded) + local codec = GetCodec() + if not codec then return end + local decoded = codec:Decode(encoded) if not decoded then return end local decompressed = libC:Decompress(decoded) if not decompressed then return end