@@ -472,18 +472,16 @@ int register_c_class(lua_State *L, int idx) {
472
472
int luaC_register (lua_State * L , int index ) {
473
473
if (lua_isuserdata (L , index )) return register_c_class (L , index );
474
474
if (!luaC_isclass (L , index )) return 0 ;
475
- int top = lua_gettop (L ), ret = 0 ;
476
- lua_pushvalue (L , index ); // push class
477
- while (luaC_getname (L , -1 )) { // get name
478
- lua_pushvalue (L , -2 ); // push class
479
- luaC_setreg (L ); // register class
480
- if (!luaC_getparent (L , -1 )) {
481
- ret = 1 ; // no more parents, operation successful
482
- break ;
483
- }
484
- }
475
+ int top = lua_gettop (L );
476
+ lua_pushvalue (L , index ); // push class
477
+ do {
478
+ if (luaC_getname (L , -1 )) { // get name
479
+ lua_pushvalue (L , -2 ); // push class
480
+ luaC_setreg (L ); // register class
481
+ } else lua_pop (L , 1 ); // anonymous class, skip
482
+ } while (luaC_getparent (L , -1 ));
485
483
lua_settop (L , top );
486
- return ret ;
484
+ return 1 ;
487
485
}
488
486
489
487
void luaC_unregister (lua_State * L , const char * name ) {
0 commit comments