summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Sluift/Lua/Check.cpp')
-rw-r--r--Sluift/Lua/Check.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/Sluift/Lua/Check.cpp b/Sluift/Lua/Check.cpp
index 65ada7b..a9b8f02 100644
--- a/Sluift/Lua/Check.cpp
+++ b/Sluift/Lua/Check.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013 Remko Tronçon
+ * Copyright (c) 2013-2014 Remko Tronçon
* Licensed under the GNU General Public License.
* See the COPYING file for more information.
*/
@@ -12,6 +12,7 @@
#include <lua.hpp>
#include <Sluift/Lua/Exception.h>
+#include <Swiften/Base/ByteArray.h>
using namespace Swift;
@@ -43,6 +44,15 @@ std::string Lua::checkString(lua_State* L, int arg) {
return std::string(s);
}
+ByteArray Lua::checkByteArray(lua_State* L, int arg) {
+ size_t len;
+ const char *s = lua_tolstring(L, arg, &len);
+ if (!s) {
+ throw Lua::Exception(getArgTypeError(L, arg, LUA_TSTRING));
+ }
+ return createByteArray(s, len);
+}
+
void* Lua::checkUserDataRaw(lua_State* L, int arg) {
void* userData = lua_touserdata(L, arg);
if (!userData) {