more bits for version

This commit is contained in:
BlackMATov
2025-03-10 02:27:33 +07:00
parent 1070246679
commit c1075b54df
2 changed files with 30 additions and 5 deletions

View File

@@ -7,6 +7,31 @@ do
assert(e1 ~= e2)
end
do
local i = evo.id()
for _ = 1, 0xFFE do
local _, v0 = evo.unpack(i)
evo.destroy(i)
i = evo.id()
local _, v1 = evo.unpack(i)
assert(v1 == v0 + 1)
end
do
local _, v = evo.unpack(i)
assert(v == 0xFFF)
end
evo.destroy(i)
i = evo.id()
do
local _, v = evo.unpack(i)
assert(v == 1)
end
end
do
do
local i0 = evo.id(0)
@@ -5055,9 +5080,9 @@ do
end
do
local id = evo.pack(0xFFFFF, 0x7FF)
local id = evo.pack(0xFFFFF, 0xFFF)
local index, version = evo.unpack(id)
assert(index == 0xFFFFF and version == 0x7FF)
assert(index == 0xFFFFF and version == 0xFFF)
end
do

View File

@@ -247,7 +247,7 @@ local function __release_id(id)
__lua_error('id is not acquired or already released')
end
shifted_version = shifted_version == 0x7FF00000
shifted_version = shifted_version == 0xFFF00000
and 0x100000
or shifted_version + 0x100000
@@ -4507,8 +4507,8 @@ __evolved_pack = function(index, version)
__lua_error('id index out of range [1;0xFFFFF]')
end
if version < 1 or version > 0x7FF then
__lua_error('id version out of range [1;0x7FF]')
if version < 1 or version > 0xFFF then
__lua_error('id version out of range [1;0xFFF]')
end
local shifted_version = version * 0x100000