From fc7d5461b177c6d8253e847476e80888215c5320 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Thu, 29 May 2014 13:35:11 -0700 Subject: [PATCH] feat(library/kernel_bindings): add to_io_state_ext helper function Signed-off-by: Leonardo de Moura --- src/library/kernel_bindings.cpp | 7 +++++++ src/library/kernel_bindings.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/library/kernel_bindings.cpp b/src/library/kernel_bindings.cpp index dcee2c914..ad5194f5a 100644 --- a/src/library/kernel_bindings.cpp +++ b/src/library/kernel_bindings.cpp @@ -1280,6 +1280,13 @@ static void open_environment(lua_State * L) { // IO state DECL_UDATA(io_state) +io_state to_io_state_ext(lua_State * L, int idx) { + if (idx <= lua_gettop(L)) + return to_io_state(L, idx); + else + return get_io_state(L); +} + int mk_io_state(lua_State * L) { int nargs = lua_gettop(L); if (nargs == 0) diff --git a/src/library/kernel_bindings.h b/src/library/kernel_bindings.h index 568367092..338a9ffa5 100644 --- a/src/library/kernel_bindings.h +++ b/src/library/kernel_bindings.h @@ -76,5 +76,6 @@ public: */ io_state * get_io_state_ptr(lua_State * L); io_state get_io_state(lua_State * L); +io_state to_io_state_ext(lua_State * L, int idx); void open_io_state(lua_State * L); }