[Tarantool-patches] [PATCH v2] lua: remove excess Lua call from table encoding

Sergey Kaplun skaplun at tarantool.org
Tue Jun 2 17:16:36 MSK 2020


Hi! Thanks for the review!

On 02.06.20, Igor Munkin wrote:
> Sergey,
> 
> Thanks, the patch LGTM except the one typo below.
> 
> On 02.06.20, Sergey Kaplun wrote:
> > For safe table encoding <lua_field_try_serialize> function is pushed
> > to Lua stack along with auxiliary lightuserdata and table object to be
> > encoded. Its further protected call catches Lua error if one is raised
> > while encoding. It is only necessary when the object to be serialized
> > has __serialize field in metatable and this field is a Lua function.
> > 
> > This change reduces GC usage since a Lua function object is not
> > created. Moreover the function serializing the given object is called
> > without excess protected frame and auxiliary status struct.
> > ---
> > 
> > branch: https://github.com/tarantool/tarantool/tree/skaplun/no-ticket-lua-inspect-table-refactoring
> > 
> >  src/lua/utils.c | 136 +++++++++++++++++-------------------------------
> >  1 file changed, 48 insertions(+), 88 deletions(-)
> > 
> > diff --git a/src/lua/utils.c b/src/lua/utils.c
> > index d410a3d03..67cab802c 100644
> > --- a/src/lua/utils.c
> > +++ b/src/lua/utils.c
> 
> <snipped>
> 
> > +		/* Fallthrouth with res == 1 */
> 
> Typo again: s/Fallthrouth/Fallthrough/.
> 
> <snipped>
> 

I added corresponding fix to the branch

diff --git a/src/lua/utils.c b/src/lua/utils.c
index 67cab802c..0b05d7257 100644
--- a/src/lua/utils.c
+++ b/src/lua/utils.c
@@ -548,7 +548,7 @@ lua_field_inspect_table(struct lua_State *L, struct luaL_serializer *cfg,
        (void)top;
        if (res == 0)
            return 0;
-       /* Fallthrouth with res == 1 */
+       /* Fallthrough with res == 1 */
    }
 
    field->type = MP_ARRAY;


> > -- 
> > 2.24.1
> > 
> 
> -- 
> Best regards,
> IM

-- 
Best regards,
Sergey Kaplun


More information about the Tarantool-patches mailing list