1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-07 12:30:27 +00:00

Store current capacity in CowData buffers, and rewrite most of it.

Add `reserve` to `CowData`, `Vector` and `Array`.

# Conflicts:
#	core/os/memory.h
#	core/templates/cowdata.h
This commit is contained in:
Lukas Tenbrink
2025-05-01 23:31:54 +02:00
parent 1f7630f1bf
commit 1bf821c1e1
11 changed files with 441 additions and 201 deletions

View File

@@ -1568,6 +1568,54 @@ void godotsharp_object_to_string(Object *p_ptr, godot_string *r_str) {
}
#endif
int64_t godotsharp_string_size(const String *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_byte_array_size(const PackedByteArray *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_int32_array_size(const PackedInt32Array *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_int64_array_size(const PackedInt64Array *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_float32_array_size(const PackedFloat32Array *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_float64_array_size(const PackedFloat64Array *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_string_array_size(const PackedStringArray *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_vector2_array_size(const PackedVector2Array *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_vector3_array_size(const PackedVector3Array *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_vector4_array_size(const PackedVector4Array *p_self) {
return p_self->size();
}
int64_t godotsharp_packed_color_array_size(const PackedColorArray *p_self) {
return p_self->size();
}
int64_t godotsharp_array_size(const Array *p_self) {
return p_self->size();
}
// The order in this array must match the declaration order of
// the methods in 'GodotSharp/Core/NativeInterop/NativeFuncs.cs'.
static const void *unmanaged_callbacks[]{
@@ -1796,6 +1844,18 @@ static const void *unmanaged_callbacks[]{
(void *)godotsharp_var_to_str,
(void *)godotsharp_err_print_error,
(void *)godotsharp_object_to_string,
(void *)godotsharp_string_size,
(void *)godotsharp_packed_byte_array_size,
(void *)godotsharp_packed_int32_array_size,
(void *)godotsharp_packed_int64_array_size,
(void *)godotsharp_packed_float32_array_size,
(void *)godotsharp_packed_float64_array_size,
(void *)godotsharp_packed_string_array_size,
(void *)godotsharp_packed_vector2_array_size,
(void *)godotsharp_packed_vector3_array_size,
(void *)godotsharp_packed_vector4_array_size,
(void *)godotsharp_packed_color_array_size,
(void *)godotsharp_array_size,
};
const void **godotsharp::get_runtime_interop_funcs(int32_t &r_size) {