From 459d31db7e38738f3b49d9c4fde31bc1c519d307 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Wed, 31 Jul 2019 19:24:17 -0300 Subject: [PATCH] Fix the Data-returning variant of love.filesystem.read/File:read to return the size that was read. Now it's consistent with the string-returning variant. --- src/modules/filesystem/wrap_File.cpp | 13 +++---------- src/modules/filesystem/wrap_Filesystem.cpp | 13 +++---------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/src/modules/filesystem/wrap_File.cpp b/src/modules/filesystem/wrap_File.cpp index 614d7e727..d4625a810 100644 --- a/src/modules/filesystem/wrap_File.cpp +++ b/src/modules/filesystem/wrap_File.cpp @@ -132,21 +132,14 @@ int w_File_read(lua_State *L) return luax_ioError(L, "%s", e.what()); } - int nret = 0; - if (ctype == love::data::CONTAINER_DATA) - { luax_pushtype(L, d.get()); - nret = 1; - } else - { lua_pushlstring(L, (const char *) d->getData(), d->getSize()); - lua_pushinteger(L, d->getSize()); - nret = 2; - } - return nret; + lua_pushinteger(L, d->getSize()); + + return 2; } int w_File_write(lua_State *L) diff --git a/src/modules/filesystem/wrap_Filesystem.cpp b/src/modules/filesystem/wrap_Filesystem.cpp index 5fd863ce4..df95ee71b 100644 --- a/src/modules/filesystem/wrap_Filesystem.cpp +++ b/src/modules/filesystem/wrap_Filesystem.cpp @@ -488,24 +488,17 @@ int w_read(lua_State *L) if (data == nullptr) return luax_ioError(L, "File could not be read."); - int nret = 0; - if (ctype == love::data::CONTAINER_DATA) - { luax_pushtype(L, data); - nret = 1; - } else - { lua_pushlstring(L, (const char *) data->getData(), data->getSize()); - lua_pushinteger(L, data->getSize()); - nret = 2; - } + + lua_pushinteger(L, data->getSize()); // Lua has a copy now, so we can free it. data->release(); - return nret; + return 2; } static int w_write_or_append(lua_State *L, File::Mode mode)