@@ -263,13 +263,13 @@ GCObject *luaC_newobj (lua_State *L, LuaT tt, size_t sz) {
263263*/
264264static void reallymarkobject (global_State *g, GCObject *o) {
265265 g->setGCMarked (g->getGCMarked () + objsize (o));
266- switch (o->getType ()) {
267- case LuaT::SHRSTR:
268- case LuaT::LNGSTR: {
266+ switch (static_cast < int >( o->getType () )) {
267+ case static_cast < int >( ctb ( LuaT::SHRSTR)) :
268+ case static_cast < int >( ctb ( LuaT::LNGSTR)) : {
269269 set2black (o); /* nothing to visit */
270270 break ;
271271 }
272- case LuaT::UPVAL: {
272+ case static_cast < int >( ctb ( LuaT::UPVAL)) : {
273273 UpVal *uv = gco2upv (o);
274274 if (uv->isOpen ())
275275 set2gray (uv); /* open upvalues are kept gray */
@@ -278,7 +278,7 @@ static void reallymarkobject (global_State *g, GCObject *o) {
278278 markvalue (g, uv->getVP ()); /* mark its content */
279279 break ;
280280 }
281- case LuaT::USERDATA: {
281+ case static_cast < int >( ctb ( LuaT::USERDATA)) : {
282282 Udata *u = gco2u (o);
283283 if (u->getNumUserValues () == 0 ) { /* no user values? */
284284 markobjectN (g, u->getMetatable ()); /* mark its metatable */
@@ -287,8 +287,8 @@ static void reallymarkobject (global_State *g, GCObject *o) {
287287 }
288288 /* else... */
289289 } /* FALLTHROUGH */
290- case LuaT::LCL: case LuaT::CCL: case LuaT::TABLE:
291- case LuaT::THREAD: case LuaT::PROTO: {
290+ case static_cast < int >( ctb ( LuaT::LCL)) : case static_cast < int >( ctb ( LuaT::CCL)) : case static_cast < int >( ctb ( LuaT::TABLE)) :
291+ case static_cast < int >( ctb ( LuaT::THREAD)) : case static_cast < int >( ctb ( LuaT::PROTO)) : {
292292 linkobjgclist (o, *g->getGrayPtr ()); /* to be visited later */
293293 break ;
294294 }
@@ -390,46 +390,46 @@ static void freeupval(lua_State* L, UpVal* uv) {
390390// Made non-static for use by gc_sweeping module (Phase 2)
391391void freeobj (lua_State *L, GCObject *o) {
392392 assert_code (l_mem newmem = G (L)->getTotalBytes () - objsize (o));
393- switch (o->getType ()) {
394- case LuaT::PROTO: {
393+ switch (static_cast < int >( o->getType () )) {
394+ case static_cast < int >( ctb ( LuaT::PROTO)) : {
395395 Proto *p = gco2p (o);
396396 p->free (L); /* Phase 25b - frees internal arrays */
397397 // Proto destructor is trivial, but call it for completeness
398398 p->~Proto ();
399399 break ;
400400 }
401- case LuaT::UPVAL: {
401+ case static_cast < int >( ctb ( LuaT::UPVAL)) : {
402402 UpVal *uv = gco2upv (o);
403403 freeupval (L, uv); // Note: freeupval calls destructor internally
404404 break ;
405405 }
406- case LuaT::LCL: {
406+ case static_cast < int >( ctb ( LuaT::LCL)) : {
407407 LClosure *cl = gco2lcl (o);
408408 cl->~LClosure (); // Call destructor
409409 luaM_freemem (L, cl, sizeLclosure (cl->getNumUpvalues ()));
410410 break ;
411411 }
412- case LuaT::CCL: {
412+ case static_cast < int >( ctb ( LuaT::CCL)) : {
413413 CClosure *cl = gco2ccl (o);
414414 cl->~CClosure (); // Call destructor
415415 luaM_freemem (L, cl, sizeCclosure (cl->getNumUpvalues ()));
416416 break ;
417417 }
418- case LuaT::TABLE: {
418+ case static_cast < int >( ctb ( LuaT::TABLE)) : {
419419 Table *t = gco2t (o);
420420 luaH_free (L, t); // Note: luaH_free calls destroy() which should handle cleanup
421421 break ;
422422 }
423- case LuaT::THREAD:
423+ case static_cast < int >( ctb ( LuaT::THREAD)) :
424424 luaE_freethread (L, gco2th (o));
425425 break ;
426- case LuaT::USERDATA: {
426+ case static_cast < int >( ctb ( LuaT::USERDATA)) : {
427427 Udata *u = gco2u (o);
428428 u->~Udata (); // Call destructor
429429 luaM_freemem (L, o, sizeudata (u->getNumUserValues (), u->getLen ()));
430430 break ;
431431 }
432- case LuaT::SHRSTR: {
432+ case static_cast < int >( ctb ( LuaT::SHRSTR)) : {
433433 TString *ts = gco2ts (o);
434434 size_t sz = sizestrshr (cast_uint (ts->getShrlen ()));
435435 ts->remove (L); /* use method instead of free function */
@@ -438,7 +438,7 @@ void freeobj (lua_State *L, GCObject *o) {
438438 luaM_freemem (L, ts, sz);
439439 break ;
440440 }
441- case LuaT::LNGSTR: {
441+ case static_cast < int >( ctb ( LuaT::LNGSTR)) : {
442442 TString *ts = gco2ts (o);
443443 if (ts->getShrlen () == LSTRMEM) /* must free external string? */
444444 (*ts->getFalloc ())(ts->getUserData (), ts->getContentsField (), ts->getLnglen () + 1 , 0 );
0 commit comments