aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/modules/net')
-rw-r--r--src/lua/modules/net/Buffer.cpp10
-rw-r--r--src/lua/modules/net/Buffer.h3
2 files changed, 8 insertions, 5 deletions
diff --git a/src/lua/modules/net/Buffer.cpp b/src/lua/modules/net/Buffer.cpp
index cc9f2b4..1a62c9a 100644
--- a/src/lua/modules/net/Buffer.cpp
+++ b/src/lua/modules/net/Buffer.cpp
@@ -68,10 +68,12 @@ namespace net
{
BufferRef ref = checkNetBuffer(L);
int offset = luax_checkinteger(L, 2);
- int len;
- const char* str = ref->grabString(&len, offset);
- luax_pushstring(L, str);
- luax_pushinteger(L, len);
+ unsigned int len;
+ char* data = ref->grabString(&len, offset);
+ Array<char> str;
+ str.bind(data, len);
+ luax_pushstring(L, &str);
+ luax_pushinteger(L, str.count());
return 2;
}
diff --git a/src/lua/modules/net/Buffer.h b/src/lua/modules/net/Buffer.h
index 31e6df8..172682d 100644
--- a/src/lua/modules/net/Buffer.h
+++ b/src/lua/modules/net/Buffer.h
@@ -52,7 +52,8 @@ namespace net
return;
}
- const char* grabString(int* length, int offset = 0)
+ /* grab and create a string */
+ char* grabString(unsigned int* length, int offset = 0)
{
int l = offset;
for (; l < size; ++l)