Fix luaV_doarith not setting tag for vectors.

This commit is contained in:
Petri Häkkinen 2021-11-17 09:51:03 +02:00
parent cf53beb648
commit e00b92c3c6

View file

@ -398,6 +398,8 @@ void luaV_doarith(lua_State* L, StkId ra, const TValue* rb, const TValue* rc, TM
if (vb && vc) if (vb && vc)
{ {
setttype(ra, LUA_TVECTOR);
switch (op) switch (op)
{ {
case TM_ADD: case TM_ADD:
@ -423,8 +425,6 @@ void luaV_doarith(lua_State* L, StkId ra, const TValue* rb, const TValue* rc, TM
default: default:
break; break;
} }
setttype(ra, LUA_TVECTOR);
} }
else if (vb) else if (vb)
{ {
@ -433,6 +433,8 @@ void luaV_doarith(lua_State* L, StkId ra, const TValue* rb, const TValue* rc, TM
if (c) if (c)
{ {
float nc = cast_to(float, nvalue(c)); float nc = cast_to(float, nvalue(c));
setttype(ra, LUA_TVECTOR);
switch (op) switch (op)
{ {
case TM_MUL: case TM_MUL:
@ -446,7 +448,6 @@ void luaV_doarith(lua_State* L, StkId ra, const TValue* rb, const TValue* rc, TM
default: default:
break; break;
} }
setttype(ra, LUA_TVECTOR);
} }
} }
else if (vc) else if (vc)
@ -456,6 +457,8 @@ void luaV_doarith(lua_State* L, StkId ra, const TValue* rb, const TValue* rc, TM
if (b) if (b)
{ {
float nb = cast_to(float, nvalue(b)); float nb = cast_to(float, nvalue(b));
setttype(ra, LUA_TVECTOR);
switch (op) switch (op)
{ {
case TM_MUL: case TM_MUL:
@ -469,7 +472,6 @@ void luaV_doarith(lua_State* L, StkId ra, const TValue* rb, const TValue* rc, TM
default: default:
break; break;
} }
setttype(ra, LUA_TVECTOR);
} }
} }