Skip to content

Commit 53e8fee

Browse files
authored
Rework Variant.h (#714)
1 parent 41ff7ad commit 53e8fee

File tree

3 files changed

+196
-184
lines changed

3 files changed

+196
-184
lines changed

src/jvm_wrapper/memory/transfer_context.cpp

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include "transfer_context.h"
22

3-
#include "script/jvm_script_manager.h"
43
#include "script/jvm_instance.h"
54

65
const int MAX_STACK_SIZE = MAX_FUNCTION_ARG_COUNT * 8;
@@ -30,28 +29,28 @@ SharedBuffer* TransferContext::get_and_rewind_buffer(jni::Env& p_env) {
3029

3130
void TransferContext::read_return_value(jni::Env& p_env, Variant& r_ret) {
3231
SharedBuffer* buffer {get_and_rewind_buffer(p_env)};
33-
ktvariant::get_variant_from_buffer(buffer, r_ret);
32+
BufferToVariant::read_variant(buffer, r_ret);
3433
}
3534

3635
void TransferContext::write_args(jni::Env& p_env, const Variant** p_args, int args_size) {
3736
SharedBuffer* buffer {get_and_rewind_buffer(p_env)};
3837
buffer->increment_position(encode_uint32(args_size, buffer->get_cursor()));
3938
for (auto i = 0; i < args_size; ++i) {
40-
ktvariant::send_variant_to_buffer(*p_args[i], buffer);
39+
VariantToBuffer::write_variant(*p_args[i], buffer);
4140
}
4241
}
4342

4443
uint32_t TransferContext::read_args(jni::Env& p_env, Variant* args) {
4544
SharedBuffer* buffer {get_and_rewind_buffer(p_env)};
4645
uint32_t size {read_args_size(buffer)};
4746
for (uint32_t i = 0; i < size; ++i) {
48-
ktvariant::get_variant_from_buffer(buffer, args[i]);
47+
BufferToVariant::read_variant(buffer, args[i]);
4948
}
5049
return size;
5150
}
5251

5352
void TransferContext::write_return_value(jni::Env& p_env, Variant& variant) {
54-
ktvariant::send_variant_to_buffer(variant, get_and_rewind_buffer(p_env));
53+
VariantToBuffer::write_variant(variant, get_and_rewind_buffer(p_env));
5554
}
5655

5756
void TransferContext::write_object_data(jni::Env& p_env, uintptr_t ptr, ObjectID id) {
@@ -77,7 +76,14 @@ void TransferContext::icall(JNIEnv* rawEnv, jobject instance, jlong j_ptr, jlong
7776

7877
MethodBind* method_bind {reinterpret_cast<MethodBind*>(static_cast<uintptr_t>(j_method_ptr))};
7978

80-
JVM_DEV_ASSERT(args_size <= MAX_FUNCTION_ARG_COUNT, "Cannot have more than %s arguments for method call but tried to call method \"%s::%s\" with %s args", MAX_FUNCTION_ARG_COUNT, method_bind->get_instance_class(), method_bind->get_name(), args_size);
79+
JVM_DEV_ASSERT(
80+
args_size <= MAX_FUNCTION_ARG_COUNT,
81+
"Cannot have more than %s arguments for method call but tried to call method \"%s::%s\" with %s args",
82+
MAX_FUNCTION_ARG_COUNT,
83+
method_bind->get_instance_class(),
84+
method_bind->get_name(),
85+
args_size
86+
);
8187

8288
Callable::CallError r_error {Callable::CallError::CALL_OK};
8389

@@ -93,7 +99,7 @@ void TransferContext::icall(JNIEnv* rawEnv, jobject instance, jlong j_ptr, jlong
9399
const Variant& ret_value {method_bind->call(ptr, args_ptr, args_size, r_error)};
94100

95101
buffer->rewind();
96-
ktvariant::send_variant_to_buffer(ret_value, buffer);
102+
VariantToBuffer::write_variant(ret_value, buffer);
97103
} else {
98104
Variant* args {variant_args + stack_offset};
99105
read_args_to_array(buffer, args, args_size);
@@ -109,7 +115,7 @@ void TransferContext::icall(JNIEnv* rawEnv, jobject instance, jlong j_ptr, jlong
109115
stack_offset -= args_size;
110116

111117
buffer->rewind();
112-
ktvariant::send_variant_to_buffer(ret_value, buffer);
118+
VariantToBuffer::write_variant(ret_value, buffer);
113119
}
114120

115121
#ifdef DEBUG_ENABLED

src/jvm_wrapper/memory/transfer_context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ JVM_SINGLETON_WRAPPER(TransferContext, "godot.core.memory.TransferContext") {
3636

3737
_FORCE_INLINE_ static void read_args_to_array(SharedBuffer* buffer, Variant* p_args, uint32_t args_size) {
3838
for (uint32_t i = 0; i < args_size; ++i) {
39-
ktvariant::get_variant_from_buffer(buffer, p_args[i]);
39+
BufferToVariant::read_variant(buffer, p_args[i]);
4040
}
4141
}
4242
};

0 commit comments

Comments
 (0)