@@ -41,7 +41,7 @@ using namespace godot;
4141namespace luagdextension {
4242
4343template <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
6464template <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
9998void 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}
0 commit comments