Skip to content

Commit e76802f

Browse files
authored
Add a prefix to TaggedLuData flag to have it auto-enabled in flags ON mode (luau-lang#1130)
1 parent ff502f0 commit e76802f

File tree

6 files changed

+11
-11
lines changed

6 files changed

+11
-11
lines changed

VM/src/lobject.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ int luaO_rawequalObj(const TValue* t1, const TValue* t2)
4848
case LUA_TBOOLEAN:
4949
return bvalue(t1) == bvalue(t2); // boolean true must be 1 !!
5050
case LUA_TLIGHTUSERDATA:
51-
return pvalue(t1) == pvalue(t2) && (!FFlag::TaggedLuData || lightuserdatatag(t1) == lightuserdatatag(t2));
51+
return pvalue(t1) == pvalue(t2) && (!FFlag::LuauTaggedLuData || lightuserdatatag(t1) == lightuserdatatag(t2));
5252
default:
5353
LUAU_ASSERT(iscollectable(t1));
5454
return gcvalue(t1) == gcvalue(t2);
@@ -71,7 +71,7 @@ int luaO_rawequalKey(const TKey* t1, const TValue* t2)
7171
case LUA_TBOOLEAN:
7272
return bvalue(t1) == bvalue(t2); // boolean true must be 1 !!
7373
case LUA_TLIGHTUSERDATA:
74-
return pvalue(t1) == pvalue(t2) && (!FFlag::TaggedLuData || lightuserdatatag(t1) == lightuserdatatag(t2));
74+
return pvalue(t1) == pvalue(t2) && (!FFlag::LuauTaggedLuData || lightuserdatatag(t1) == lightuserdatatag(t2));
7575
default:
7676
LUAU_ASSERT(iscollectable(t1));
7777
return gcvalue(t1) == gcvalue(t2);

VM/src/lobject.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
#include "lua.h"
66
#include "lcommon.h"
77

8+
LUAU_FASTFLAG(LuauTaggedLuData)
9+
810
/*
911
** Union of all collectible objects
1012
*/
@@ -498,5 +500,3 @@ LUAI_FUNC int luaO_str2d(const char* s, double* result);
498500
LUAI_FUNC const char* luaO_pushvfstring(lua_State* L, const char* fmt, va_list argp);
499501
LUAI_FUNC const char* luaO_pushfstring(lua_State* L, const char* fmt, ...);
500502
LUAI_FUNC const char* luaO_chunkid(char* buf, size_t buflen, const char* source, size_t srclen);
501-
502-
LUAU_FASTFLAG(TaggedLuData)

VM/src/ltm.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ const TString* luaT_objtypenamestr(lua_State* L, const TValue* o)
129129
if (ttisstring(type))
130130
return tsvalue(type);
131131
}
132-
else if (FFlag::TaggedLuData && ttislightuserdata(o))
132+
else if (FFlag::LuauTaggedLuData && ttislightuserdata(o))
133133
{
134134
int tag = lightuserdatatag(o);
135135

VM/src/lvmexecute.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
// Does VM support native execution via ExecutionCallbacks? We mostly assume it does but keep the define to make it easy to quantify the cost.
136136
#define VM_HAS_NATIVE 1
137137

138-
LUAU_FASTFLAGVARIABLE(TaggedLuData, false)
138+
LUAU_FASTFLAGVARIABLE(LuauTaggedLuData, false)
139139

140140
LUAU_NOINLINE void luau_callhook(lua_State* L, lua_Hook hook, void* userdata)
141141
{
@@ -1112,7 +1112,7 @@ static void luau_execute(lua_State* L)
11121112
VM_NEXT();
11131113

11141114
case LUA_TLIGHTUSERDATA:
1115-
pc += (pvalue(ra) == pvalue(rb) && (!FFlag::TaggedLuData || lightuserdatatag(ra) == lightuserdatatag(rb))) ? LUAU_INSN_D(insn) : 1;
1115+
pc += (pvalue(ra) == pvalue(rb) && (!FFlag::LuauTaggedLuData || lightuserdatatag(ra) == lightuserdatatag(rb))) ? LUAU_INSN_D(insn) : 1;
11161116
LUAU_ASSERT(unsigned(pc - cl->l.p->code) < unsigned(cl->l.p->sizecode));
11171117
VM_NEXT();
11181118

@@ -1227,7 +1227,7 @@ static void luau_execute(lua_State* L)
12271227
VM_NEXT();
12281228

12291229
case LUA_TLIGHTUSERDATA:
1230-
pc += (pvalue(ra) != pvalue(rb) || (FFlag::TaggedLuData && lightuserdatatag(ra) != lightuserdatatag(rb))) ? LUAU_INSN_D(insn) : 1;
1230+
pc += (pvalue(ra) != pvalue(rb) || (FFlag::LuauTaggedLuData && lightuserdatatag(ra) != lightuserdatatag(rb))) ? LUAU_INSN_D(insn) : 1;
12311231
LUAU_ASSERT(unsigned(pc - cl->l.p->code) < unsigned(cl->l.p->sizecode));
12321232
VM_NEXT();
12331233

VM/src/lvmutils.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ int luaV_equalval(lua_State* L, const TValue* t1, const TValue* t2)
288288
case LUA_TBOOLEAN:
289289
return bvalue(t1) == bvalue(t2); // true must be 1 !!
290290
case LUA_TLIGHTUSERDATA:
291-
return pvalue(t1) == pvalue(t2) && (!FFlag::TaggedLuData || lightuserdatatag(t1) == lightuserdatatag(t2));
291+
return pvalue(t1) == pvalue(t2) && (!FFlag::LuauTaggedLuData || lightuserdatatag(t1) == lightuserdatatag(t2));
292292
case LUA_TUSERDATA:
293293
{
294294
tm = get_compTM(L, uvalue(t1)->metatable, uvalue(t2)->metatable, TM_EQ);

tests/Conformance.test.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ LUAU_FASTFLAG(LuauBufferDefinitions);
3232
LUAU_FASTFLAG(LuauCodeGenFixByteLower);
3333
LUAU_FASTFLAG(LuauCompileBufferAnnotation);
3434
LUAU_FASTFLAG(LuauLoopInterruptFix);
35-
LUAU_FASTFLAG(TaggedLuData);
35+
LUAU_FASTFLAG(LuauTaggedLuData);
3636
LUAU_DYNAMIC_FASTFLAG(LuauStricterUtf8);
3737
LUAU_FASTINT(CodegenHeuristicsInstructionLimit);
3838

@@ -1703,7 +1703,7 @@ TEST_CASE("UserdataApi")
17031703

17041704
TEST_CASE("LightuserdataApi")
17051705
{
1706-
ScopedFastFlag taggedLuData{FFlag::TaggedLuData, true};
1706+
ScopedFastFlag luauTaggedLuData{FFlag::LuauTaggedLuData, true};
17071707

17081708
StateRef globalState(luaL_newstate(), lua_close);
17091709
lua_State* L = globalState.get();

0 commit comments

Comments
 (0)