From 626664a0fe277be8ce3a52bf5efd67bd029acdb9 Mon Sep 17 00:00:00 2001 From: gamax92 Date: Sun, 11 Aug 2019 12:05:48 +0200 Subject: [PATCH] BaseLib: fix handling of __tostring --- src/core/org/luaj/vm2/lib/BaseLib.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/org/luaj/vm2/lib/BaseLib.java b/src/core/org/luaj/vm2/lib/BaseLib.java index 0c2f43e0..d0dbf6b3 100644 --- a/src/core/org/luaj/vm2/lib/BaseLib.java +++ b/src/core/org/luaj/vm2/lib/BaseLib.java @@ -350,8 +350,11 @@ public class BaseLib extends TwoArgFunction implements ResourceFinder { static final class tostring extends LibFunction { public LuaValue call(LuaValue arg) { LuaValue h = arg.metatag(TOSTRING); - if ( ! h.isnil() ) - return h.call(arg); + if ( ! h.isnil() ) { + LuaValue v = h.call(arg); + LuaValue vs = v.tostring(); + return !vs.isnil() ? vs : v; + } LuaValue v = arg.tostring(); if ( ! v.isnil() ) return v;