From dc2493e7525bb7633f697ef10f72b72b46222249 Mon Sep 17 00:00:00 2001 From: Andy Belle-Isle Date: Fri, 30 Aug 2019 00:45:36 -0400 Subject: Forget what I said, I just need to change git attributes to mark for vendor --- lib/sol2/examples/source/protect.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lib/sol2/examples/source/protect.cpp (limited to 'lib/sol2/examples/source/protect.cpp') diff --git a/lib/sol2/examples/source/protect.cpp b/lib/sol2/examples/source/protect.cpp new file mode 100644 index 0000000..4d044c6 --- /dev/null +++ b/lib/sol2/examples/source/protect.cpp @@ -0,0 +1,28 @@ +#define SOL_ALL_SAFETIES_ON 1 +#include + +#include "assert.hpp" + +int main(int, char*[]) { + + struct protect_me { + int gen(int x) { + return x; + } + }; + + sol::state lua; + lua.open_libraries(sol::lib::base); + lua.new_usertype("protect_me", + "gen", sol::protect( &protect_me::gen ) + ); + + lua.script(R"__( + pm = protect_me.new() + value = pcall(pm.gen,"wrong argument") + )__"); + bool value = lua["value"]; + c_assert(!value); + + return 0; +} -- cgit v1.2.3