Skip to content

Commit 0b9b3f2

Browse files
committed
Return object instead of stack_object in some Lua wrapper functions
1 parent ff3437c commit 0b9b3f2

13 files changed

+45
-41
lines changed

src/LuaCoroutine.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ Variant LuaCoroutine::resume(const Variant **args, GDExtensionInt arg_count, GDE
5353
lua_State *L = lua_object.thread_state();
5454
if (arg_count > 0) {
5555
for (int i = 0; i < arg_count; i++) {
56-
std::ignore = lua_push(L, *args[i]);
56+
lua_push(L, *args[i]);
5757
}
5858
}
5959

@@ -69,7 +69,7 @@ Variant LuaCoroutine::resumev(const Array& args) {
6969
lua_State *L = lua_object.thread_state();
7070
int arg_count = args.size();
7171
for (int i = 0; i < arg_count; i++) {
72-
std::ignore = lua_push(L, args[i]);
72+
lua_push(L, args[i]);
7373
}
7474

7575
int nresults;

src/LuaFunction.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Variant LuaFunction::invokev(const Array& args) {
4545

4646
lua_State *L = lua_object.lua_state();
4747
for (int i = 0; i < arg_count; i++) {
48-
std::ignore = lua_push(L, args[i]);
48+
lua_push(L, args[i]);
4949
}
5050
sol::variadic_args lua_args(L, -arg_count);
5151
return to_variant(lua_object.call(lua_args));
@@ -59,7 +59,7 @@ Variant LuaFunction::invoke(const Variant **args, GDExtensionInt arg_count, GDEx
5959

6060
lua_State *L = lua_object.lua_state();
6161
for (int i = 0; i < arg_count; i++) {
62-
std::ignore = lua_push(L, *args[i]);
62+
lua_push(L, *args[i]);
6363
}
6464
sol::variadic_args lua_args(L, -arg_count);
6565
return to_variant(lua_object.call(lua_args));
@@ -73,9 +73,9 @@ Variant LuaFunction::invoke_method(const Variant& self, const Variant **args, GD
7373
error.error = GDEXTENSION_CALL_OK;
7474

7575
lua_State *L = lua_object.lua_state();
76-
std::ignore = lua_push(L, self);
76+
lua_push(L, self);
7777
for (int i = 0; i < arg_count; i++) {
78-
std::ignore = lua_push(L, *args[i]);
78+
lua_push(L, *args[i]);
7979
}
8080
sol::variadic_args lua_args(L, -(1 + arg_count));
8181
return to_variant(lua_object.call(lua_args));

src/LuaTable.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ sol::optional<Variant> LuaTable::try_get(const Variant& key, bool raw) const {
4040
StackTopChecker topcheck(lua_object.lua_state());
4141
lua_State *L = lua_object.lua_state();
4242
sol::stack::push(L, lua_object);
43-
std::ignore = lua_push(L, key);
43+
lua_push(L, key);
4444
if (raw) {
4545
lua_rawget(L, -2);
4646
}
@@ -62,8 +62,8 @@ bool LuaTable::try_set(const Variant& key, const Variant& value, bool raw) {
6262
StackTopChecker topcheck(lua_object.lua_state());
6363
lua_State *L = lua_object.lua_state();
6464
auto table_popper = sol::stack::push_pop(L, lua_object);
65-
std::ignore = lua_push(L, key);
66-
std::ignore = lua_push(L, value);
65+
lua_push(L, key);
66+
lua_push(L, value);
6767
if (raw) {
6868
lua_rawset(L, -3);
6969
}
@@ -130,7 +130,7 @@ bool LuaTable::_iter_next(const Variant& iter) const {
130130
lua_State *L = lua_object.lua_state();
131131
Array arg = iter;
132132
auto table_popper = sol::stack::push_pop(lua_object);
133-
auto key = lua_push(L, arg[0]);
133+
lua_push(L, arg[0]);
134134
if (lua_next(L, -2)) {
135135
arg[0] = to_variant(L, -2);
136136
lua_pop(L, 2);

src/luaopen/variant.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ using namespace godot;
4141
namespace luagdextension {
4242

4343
template<Variant::Operator VarOperator>
44-
sol::stack_object evaluate_binary_operator(sol::this_state state, const sol::stack_object& a, const sol::stack_object& b) {
44+
sol::object evaluate_binary_operator(sol::this_state state, const sol::stack_object& a, const sol::stack_object& b) {
4545
bool is_valid;
4646
Variant result;
4747
Variant var_a = to_variant(a);
@@ -58,11 +58,11 @@ sol::stack_object evaluate_binary_operator(sol::this_state state, const sol::sta
5858
b_str.get_data()
5959
);
6060
}
61-
return lua_push(state, result);
61+
return to_lua(state, result);
6262
}
6363

6464
template<Variant::Operator VarOperator>
65-
sol::stack_object evaluate_unary_operator(sol::this_state state, const sol::stack_object& a) {
65+
sol::object evaluate_unary_operator(sol::this_state state, const sol::stack_object& a) {
6666
bool is_valid;
6767
Variant result;
6868
Variant var_a = to_variant(a);
@@ -76,24 +76,23 @@ sol::stack_object evaluate_unary_operator(sol::this_state state, const sol::stac
7676
a_str.get_data()
7777
);
7878
}
79-
return lua_push(state, result);
79+
return to_lua(state, result);
8080
}
8181

82-
sol::stack_object variant__index(sol::this_state state, const Variant& variant, const sol::stack_object& key) {
82+
sol::object variant__index(sol::this_state state, const Variant& variant, const sol::stack_object& key) {
8383
bool is_valid;
8484
if (key.get_type() == sol::type::string) {
8585
StringName string_name = key.as<StringName>();
8686
if (Variant::has_member(variant.get_type(), string_name)) {
87-
return lua_push(state, variant.get_named(string_name, is_valid));
87+
return to_lua(state, variant.get_named(string_name, is_valid));
8888
}
8989
else if (variant.has_method(string_name)) {
90-
sol::stack::push(state, MethodBindByName(string_name));
91-
return sol::stack_object(state, -1);
90+
return sol::make_object(state, MethodBindByName(string_name));
9291
}
9392
}
9493

9594
Variant result = variant.get(to_variant(key), &is_valid);
96-
return lua_push(state, result);
95+
return to_lua(state, result);
9796
}
9897

9998
void variant__newindex(sol::this_state state, Variant& variant, const sol::stack_object& key, const sol::stack_object& value) {
@@ -113,7 +112,7 @@ void variant__newindex(sol::this_state state, Variant& variant, const sol::stack
113112
}
114113
}
115114

116-
sol::stack_object variant__length(sol::this_state state, Variant& variant) {
115+
sol::object variant__length(sol::this_state state, Variant& variant) {
117116
return variant_call_string_name(state, variant, "size", sol::variadic_args(state, 0));
118117
}
119118

@@ -167,7 +166,7 @@ sol::object variant__call(sol::this_state state, const Variant& variant, sol::va
167166
Callable callable = variant;
168167
VariantArguments var_args = args;
169168
Variant result = callable.callv(var_args.get_array());
170-
return lua_push(state, result);
169+
return to_lua(state, result);
171170
}
172171

173172
}

src/utils/DictionaryIterator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ std::tuple<sol::object, sol::object> DictionaryIterator::iter_next_lua(sol::this
4444
if (kvp.has_value()) {
4545
Variant key, value;
4646
std::tie(key, value) = kvp.value();
47-
return std::make_tuple(lua_push(state, key), lua_push(state, value));
47+
return std::make_tuple(to_lua(state, key), to_lua(state, value));
4848
}
4949
else {
5050
return std::make_tuple(sol::nil, sol::nil);

src/utils/IndexedIterator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ std::tuple<sol::object, sol::object> IndexedIterator::iter_next_lua(sol::this_st
3636
bool is_valid, is_out_of_bounds;
3737
Variant result = variant.get_indexed(index, is_valid, is_out_of_bounds);
3838
if (is_valid && !is_out_of_bounds) {
39-
return std::make_tuple(sol::make_object(state, index), lua_push(state, result));
39+
return std::make_tuple(sol::make_object(state, index), to_lua(state, result));
4040
}
4141
else {
4242
return std::make_tuple(sol::nil, sol::nil);

src/utils/MethodBindByName.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,8 @@
2121
*/
2222
#include "MethodBindByName.hpp"
2323

24-
#include "VariantArguments.hpp"
2524
#include "VariantType.hpp"
2625
#include "convert_godot_lua.hpp"
27-
#include "convert_godot_std.hpp"
2826

2927
#include <godot_cpp/variant/utility_functions.hpp>
3028

@@ -36,7 +34,7 @@ const StringName& MethodBindByName::get_method_name() const {
3634
return method_name;
3735
}
3836

39-
sol::stack_object MethodBindByName::call(sol::this_state state, const sol::stack_object& self, const sol::variadic_args& args) const {
37+
sol::object MethodBindByName::call(sol::this_state state, const sol::stack_object& self, const sol::variadic_args& args) const {
4038
if (self.is<VariantType>()) {
4139
VariantType var_type = self.as<VariantType>();
4240
return variant_static_call_string_name(state, var_type.get_type(), method_name, args);

src/utils/MethodBindByName.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class MethodBindByName {
4040
MethodBindByName(const StringName& method_name);
4141

4242
const StringName& get_method_name() const;
43-
sol::stack_object call(sol::this_state state, const sol::stack_object& self, const sol::variadic_args& args) const;
43+
sol::object call(sol::this_state state, const sol::stack_object& self, const sol::variadic_args& args) const;
4444

4545
static void register_usertype(sol::state_view& state);
4646
};

src/utils/ObjectIterator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Variant ObjectIterator::iter_next() {
4242
sol::object ObjectIterator::iter_next_lua(sol::this_state state) {
4343
bool is_valid;
4444
if (variant.iter_next(iterator, is_valid)) {
45-
return lua_push(state, variant.iter_get(iterator, is_valid));
45+
return to_lua(state, variant.iter_get(iterator, is_valid));
4646
}
4747
else {
4848
return sol::nil;

src/utils/_G_metatable.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ sol::object __index(sol::this_state state, sol::global_table _G, sol::stack_obje
4545
auto class_name = key.as<StringName>();
4646
if (engine->has_singleton(class_name)) {
4747
Variant singleton = engine->get_singleton(class_name);
48-
return _G[key] = lua_push(state, singleton);
48+
return _G[key] = to_lua(state, singleton);
4949
}
5050
}
5151
if (registry.get_or(module_names::classes, false)) {

0 commit comments

Comments
 (0)