From: Eugene Blikh <bigbes@gmail.com>
To: tarantool-patches@freelists.org
Cc: Eugine Blikh <bigbes@gmail.com>
Subject: [tarantool-patches] [PATCH tarantool 2/2] Using luaT_tolstring in conversion function, instead lua_tostring
Date: Mon, 6 Aug 2018 10:17:00 +0300 [thread overview]
Message-ID: <2a49d596262a59a2ee1846d67926bc52a795e048.1533292738.git.bigbes@gmail.com> (raw)
In-Reply-To: <cover.1533292738.git.bigbes@gmail.com>
In-Reply-To: <cover.1533292738.git.bigbes@gmail.com>
From: Eugine Blikh <bigbes@gmail.com>
We can throw any Lua object as Lua error, but current behaviour won't
convert it to string. So diag error's object will have NULL, instead of
string.
luaT_tolstring honors __tostring metamethod and thus can convert table
to it's string representation.
For example, old behaviour is:
```
tarantool> fiber.create(error, 'help')
LuajitError: help
tarantool> fiber.create(error, { message = 'help' })
LuajitError:
tarantool> fiber.create(error, setmetatable({ message = 'help' }, {
__tostring = function(self) return self.message end
}))
LuajitError:
```
New behaviour is:
```
tarantool> fiber.create(error, 'help')
LuajitError: help
tarantool> fiber.create(error, { 'help' })
LuajitError: table: 0x0108fa2790
tarantool> fiber.create(error, setmetatable({ message = 'help' }, {
__tostring = function(self) return self.message end
}))
LuajitError: help
```
It won't break anything, but'll add new behaviour
---
src/lua/utils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lua/utils.c b/src/lua/utils.c
index afc44b581..56df2bfb6 100644
--- a/src/lua/utils.c
+++ b/src/lua/utils.c
@@ -920,7 +920,7 @@ luaT_toerror(lua_State *L)
diag_add_error(&fiber()->diag, e);
} else {
/* Convert Lua error to a Tarantool exception. */
- diag_set(LuajitError, lua_tostring(L, -1));
+ diag_set(LuajitError, luaT_tolstring(L, -1, NULL));
}
return 1;
}
--
2.16.2
prev parent reply other threads:[~2018-08-06 7:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-06 7:16 [tarantool-patches] [PATCH tarantool 0/2] Using luaT_tolstring in error " Eugene Blikh
2018-08-06 7:16 ` [tarantool-patches] [PATCH tarantool 1/2] Introduce luaT_tolstring Eugene Blikh
2018-08-06 7:17 ` Eugene Blikh [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2a49d596262a59a2ee1846d67926bc52a795e048.1533292738.git.bigbes@gmail.com \
--to=bigbes@gmail.com \
--cc=tarantool-patches@freelists.org \
--subject='Re: [tarantool-patches] [PATCH tarantool 2/2] Using luaT_tolstring in conversion function, instead lua_tostring' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox