Core: Drop custom `copymem`/`zeromem` defines

We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.

There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
This commit is contained in:
Rémi Verschelde 2021-04-27 16:19:21 +02:00
parent 288f484d0a
commit 8247667a3e
No known key found for this signature in database
GPG Key ID: C3336907360768E1
70 changed files with 200 additions and 268 deletions

View File

@ -33,7 +33,6 @@
#include "core/io/resource.h" #include "core/io/resource.h"
#include "core/math/transform_2d.h" #include "core/math/transform_2d.h"
#include "core/os/copymem.h"
#include "core/string/ustring.h" #include "core/string/ustring.h"
#include "core/typedefs.h" #include "core/typedefs.h"

View File

@ -32,7 +32,6 @@
#include "core/config/project_settings.h" #include "core/config/project_settings.h"
#include "core/io/zip_io.h" #include "core/io/zip_io.h"
#include "core/os/copymem.h"
#include "thirdparty/misc/fastlz.h" #include "thirdparty/misc/fastlz.h"
@ -44,8 +43,8 @@ int Compression::compress(uint8_t *p_dst, const uint8_t *p_src, int p_src_size,
case MODE_FASTLZ: { case MODE_FASTLZ: {
if (p_src_size < 16) { if (p_src_size < 16) {
uint8_t src[16]; uint8_t src[16];
zeromem(&src[p_src_size], 16 - p_src_size); memset(&src[p_src_size], 0, 16 - p_src_size);
copymem(src, p_src, p_src_size); memcpy(src, p_src, p_src_size);
return fastlz_compress(src, 16, p_dst); return fastlz_compress(src, 16, p_dst);
} else { } else {
return fastlz_compress(p_src, p_src_size, p_dst); return fastlz_compress(p_src, p_src_size, p_dst);
@ -136,7 +135,7 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_max_size, const uint8_t *p
if (p_dst_max_size < 16) { if (p_dst_max_size < 16) {
uint8_t dst[16]; uint8_t dst[16];
ret_size = fastlz_decompress(p_src, p_src_size, dst, 16); ret_size = fastlz_decompress(p_src, p_src_size, dst, 16);
copymem(p_dst, dst, p_dst_max_size); memcpy(p_dst, dst, p_dst_max_size);
} else { } else {
ret_size = fastlz_decompress(p_src, p_src_size, p_dst, p_dst_max_size); ret_size = fastlz_decompress(p_src, p_src_size, p_dst, p_dst_max_size);
} }

View File

@ -31,7 +31,6 @@
#include "file_access_encrypted.h" #include "file_access_encrypted.h"
#include "core/crypto/crypto_core.h" #include "core/crypto/crypto_core.h"
#include "core/os/copymem.h"
#include "core/string/print_string.h" #include "core/string/print_string.h"
#include "core/variant/variant.h" #include "core/variant/variant.h"
@ -151,7 +150,7 @@ void FileAccessEncrypted::_release() {
ERR_FAIL_COND(CryptoCore::md5(data.ptr(), data.size(), hash) != OK); // Bug? ERR_FAIL_COND(CryptoCore::md5(data.ptr(), data.size(), hash) != OK); // Bug?
compressed.resize(len); compressed.resize(len);
zeromem(compressed.ptrw(), len); memset(compressed.ptrw(), 0, len);
for (int i = 0; i < data.size(); i++) { for (int i = 0; i < data.size(); i++) {
compressed.write[i] = data[i]; compressed.write[i] = data[i];
} }

View File

@ -31,7 +31,6 @@
#include "file_access_memory.h" #include "file_access_memory.h"
#include "core/config/project_settings.h" #include "core/config/project_settings.h"
#include "core/os/copymem.h"
#include "core/os/dir_access.h" #include "core/os/dir_access.h"
#include "core/templates/map.h" #include "core/templates/map.h"
@ -149,7 +148,7 @@ int FileAccessMemory::get_buffer(uint8_t *p_dst, int p_length) const {
WARN_PRINT("Reading less data than requested"); WARN_PRINT("Reading less data than requested");
} }
copymem(p_dst, &data[pos], read); memcpy(p_dst, &data[pos], read);
pos += p_length; pos += p_length;
return read; return read;
@ -176,6 +175,6 @@ void FileAccessMemory::store_buffer(const uint8_t *p_src, int p_length) {
WARN_PRINT("Writing less data than requested"); WARN_PRINT("Writing less data than requested");
} }
copymem(&data[pos], p_src, write); memcpy(&data[pos], p_src, write);
pos += p_length; pos += p_length;
} }

View File

@ -32,7 +32,6 @@
#include "file_access_zip.h" #include "file_access_zip.h"
#include "core/os/copymem.h"
#include "core/os/file_access.h" #include "core/os/file_access.h"
ZipArchive *ZipArchive::instance = nullptr; ZipArchive *ZipArchive::instance = nullptr;
@ -120,7 +119,7 @@ unzFile ZipArchive::get_file_handle(String p_file) const {
ERR_FAIL_COND_V_MSG(!f, nullptr, "Cannot open file '" + packages[file.package].filename + "'."); ERR_FAIL_COND_V_MSG(!f, nullptr, "Cannot open file '" + packages[file.package].filename + "'.");
zlib_filefunc_def io; zlib_filefunc_def io;
zeromem(&io, sizeof(io)); memset(&io, 0, sizeof(io));
io.opaque = f; io.opaque = f;
io.zopen_file = godot_open; io.zopen_file = godot_open;

View File

@ -633,7 +633,7 @@ PackedByteArray HTTPClient::read_response_body_chunk() {
ret.resize(chunk.size() - 2); ret.resize(chunk.size() - 2);
uint8_t *w = ret.ptrw(); uint8_t *w = ret.ptrw();
copymem(w, chunk.ptr(), chunk.size() - 2); memcpy(w, chunk.ptr(), chunk.size() - 2);
chunk.clear(); chunk.clear();
} }

View File

@ -34,7 +34,6 @@
#include "core/io/image_loader.h" #include "core/io/image_loader.h"
#include "core/io/resource_loader.h" #include "core/io/resource_loader.h"
#include "core/math/math_funcs.h" #include "core/math/math_funcs.h"
#include "core/os/copymem.h"
#include "core/string/print_string.h" #include "core/string/print_string.h"
#include "core/templates/hash_map.h" #include "core/templates/hash_map.h"
@ -1537,7 +1536,7 @@ void Image::shrink_x2() {
uint8_t *w = new_img.ptrw(); uint8_t *w = new_img.ptrw();
const uint8_t *r = data.ptr(); const uint8_t *r = data.ptr();
copymem(w, &r[ofs], new_size); memcpy(w, &r[ofs], new_size);
} }
width = MAX(width / 2, 1); width = MAX(width / 2, 1);
@ -1932,7 +1931,7 @@ Error Image::generate_mipmap_roughness(RoughnessChannel p_roughness_channel, con
uint8_t* wr = imgdata.ptrw(); uint8_t* wr = imgdata.ptrw();
copymem(wr.ptr(), ptr, size); memcpy(wr.ptr(), ptr, size);
wr = uint8_t*(); wr = uint8_t*();
Ref<Image> im; Ref<Image> im;
im.instance(); im.instance();
@ -1982,7 +1981,7 @@ void Image::create(int p_width, int p_height, bool p_use_mipmaps, Format p_forma
{ {
uint8_t *w = data.ptrw(); uint8_t *w = data.ptrw();
zeromem(w, size); memset(w, 0, size);
} }
width = p_width; width = p_width;
@ -3295,7 +3294,7 @@ Ref<Image> Image::get_image_from_mipmap(int p_mipamp) const {
{ {
uint8_t *wr = new_data.ptrw(); uint8_t *wr = new_data.ptrw();
const uint8_t *rd = data.ptr(); const uint8_t *rd = data.ptr();
copymem(wr, rd + ofs, size); memcpy(wr, rd + ofs, size);
} }
Ref<Image> image; Ref<Image> image;
@ -3622,5 +3621,5 @@ Ref<Resource> Image::duplicate(bool p_subresources) const {
} }
void Image::set_as_black() { void Image::set_as_black() {
zeromem(data.ptrw(), data.size()); memset(data.ptrw(), 0, data.size());
} }

View File

@ -851,7 +851,7 @@ static void _encode_string(const String &p_string, uint8_t *&buf, int &r_len) {
if (buf) { if (buf) {
encode_uint32(utf8.length(), buf); encode_uint32(utf8.length(), buf);
buf += 4; buf += 4;
copymem(buf, utf8.get_data(), utf8.length()); memcpy(buf, utf8.get_data(), utf8.length());
buf += utf8.length(); buf += utf8.length();
} }
@ -995,7 +995,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
if (buf) { if (buf) {
encode_uint32(utf8.length(), buf); encode_uint32(utf8.length(), buf);
buf += 4; buf += 4;
copymem(buf, utf8.get_data(), utf8.length()); memcpy(buf, utf8.get_data(), utf8.length());
buf += pad + utf8.length(); buf += pad + utf8.length();
} }
@ -1079,7 +1079,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
Transform2D val = p_variant; Transform2D val = p_variant;
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) { for (int j = 0; j < 2; j++) {
copymem(&buf[(i * 2 + j) * 4], &val.elements[i][j], sizeof(float)); memcpy(&buf[(i * 2 + j) * 4], &val.elements[i][j], sizeof(float));
} }
} }
} }
@ -1130,7 +1130,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
Basis val = p_variant; Basis val = p_variant;
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) { for (int j = 0; j < 3; j++) {
copymem(&buf[(i * 3 + j) * 4], &val.elements[i][j], sizeof(float)); memcpy(&buf[(i * 3 + j) * 4], &val.elements[i][j], sizeof(float));
} }
} }
} }
@ -1143,7 +1143,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
Transform val = p_variant; Transform val = p_variant;
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) { for (int j = 0; j < 3; j++) {
copymem(&buf[(i * 3 + j) * 4], &val.basis.elements[i][j], sizeof(float)); memcpy(&buf[(i * 3 + j) * 4], &val.basis.elements[i][j], sizeof(float));
} }
} }
@ -1258,7 +1258,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
if (buf) { if (buf) {
encode_uint32(utf8.length()+1,buf); encode_uint32(utf8.length()+1,buf);
buf+=4; buf+=4;
copymem(buf,utf8.get_data(),utf8.length()+1); memcpy(buf,utf8.get_data(),utf8.length()+1);
} }
r_len+=4+utf8.length()+1; r_len+=4+utf8.length()+1;
@ -1314,7 +1314,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
encode_uint32(datalen, buf); encode_uint32(datalen, buf);
buf += 4; buf += 4;
const uint8_t *r = data.ptr(); const uint8_t *r = data.ptr();
copymem(buf, &r[0], datalen * datasize); memcpy(buf, &r[0], datalen * datasize);
buf += datalen * datasize; buf += datalen * datasize;
} }
@ -1412,7 +1412,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
if (buf) { if (buf) {
encode_uint32(utf8.length() + 1, buf); encode_uint32(utf8.length() + 1, buf);
buf += 4; buf += 4;
copymem(buf, utf8.get_data(), utf8.length() + 1); memcpy(buf, utf8.get_data(), utf8.length() + 1);
buf += utf8.length() + 1; buf += utf8.length() + 1;
} }

View File

@ -897,7 +897,7 @@ void MultiplayerAPI::_send_rpc(Node *p_from, int p_to, bool p_unreliable, bool p
// Special optimization when only the byte vector is sent. // Special optimization when only the byte vector is sent.
const Vector<uint8_t> data = *p_arg[0]; const Vector<uint8_t> data = *p_arg[0];
MAKE_ROOM(ofs + data.size()); MAKE_ROOM(ofs + data.size());
copymem(&(packet_cache.write[ofs]), data.ptr(), sizeof(uint8_t) * data.size()); memcpy(&(packet_cache.write[ofs]), data.ptr(), sizeof(uint8_t) * data.size());
ofs += data.size(); ofs += data.size();
} else { } else {
// Arguments // Arguments

View File

@ -317,7 +317,7 @@ Error PackedDataContainer::pack(const Variant &p_data) {
datalen = tmpdata.size(); datalen = tmpdata.size();
data.resize(tmpdata.size()); data.resize(tmpdata.size());
uint8_t *w = data.ptrw(); uint8_t *w = data.ptrw();
copymem(w, tmpdata.ptr(), tmpdata.size()); memcpy(w, tmpdata.ptr(), tmpdata.size());
return OK; return OK;
} }

View File

@ -433,7 +433,7 @@ Error StreamPeerBuffer::put_data(const uint8_t *p_data, int p_bytes) {
} }
uint8_t *w = data.ptrw(); uint8_t *w = data.ptrw();
copymem(&w[pointer], p_data, p_bytes); memcpy(&w[pointer], p_data, p_bytes);
pointer += p_bytes; pointer += p_bytes;
return OK; return OK;
@ -466,7 +466,7 @@ Error StreamPeerBuffer::get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_
} }
const uint8_t *r = data.ptr(); const uint8_t *r = data.ptr();
copymem(p_buffer, r + pointer, r_received); memcpy(p_buffer, r + pointer, r_received);
pointer += r_received; pointer += r_received;
// FIXME: return what? OK or ERR_* // FIXME: return what? OK or ERR_*

View File

@ -433,7 +433,7 @@ Error XMLParser::open_buffer(const Vector<uint8_t> &p_buffer) {
length = p_buffer.size(); length = p_buffer.size();
data = memnew_arr(char, length + 1); data = memnew_arr(char, length + 1);
copymem(data, p_buffer.ptr(), length); memcpy(data, p_buffer.ptr(), length);
data[length] = 0; data[length] = 0;
P = data; P = data;
return OK; return OK;

View File

@ -30,8 +30,6 @@
#include "zip_io.h" #include "zip_io.h"
#include "core/os/copymem.h"
void *zipio_open(void *data, const char *p_fname, int mode) { void *zipio_open(void *data, const char *p_fname, int mode) {
FileAccess *&f = *(FileAccess **)data; FileAccess *&f = *(FileAccess **)data;
@ -103,7 +101,7 @@ int zipio_testerror(voidpf opaque, voidpf stream) {
voidpf zipio_alloc(voidpf opaque, uInt items, uInt size) { voidpf zipio_alloc(voidpf opaque, uInt items, uInt size) {
voidpf ptr = memalloc(items * size); voidpf ptr = memalloc(items * size);
zeromem(ptr, items * size); memset(ptr, 0, items * size);
return ptr; return ptr;
} }

View File

@ -31,7 +31,6 @@
#include "basis.h" #include "basis.h"
#include "core/math/math_funcs.h" #include "core/math/math_funcs.h"
#include "core/os/copymem.h"
#include "core/string/print_string.h" #include "core/string/print_string.h"
#define cofac(row1, col1, row2, col2) \ #define cofac(row1, col1, row2, col2) \

View File

@ -343,7 +343,7 @@ void DynamicBVH::aabb_query(const AABB &p_box, QueryResult &r_result) {
if (depth > threshold) { if (depth > threshold) {
if (aux_stack.is_empty()) { if (aux_stack.is_empty()) {
aux_stack.resize(ALLOCA_STACK_SIZE * 2); aux_stack.resize(ALLOCA_STACK_SIZE * 2);
copymem(aux_stack.ptr(), stack, ALLOCA_STACK_SIZE * sizeof(const Node *)); memcpy(aux_stack.ptr(), stack, ALLOCA_STACK_SIZE * sizeof(const Node *));
} else { } else {
aux_stack.resize(aux_stack.size() * 2); aux_stack.resize(aux_stack.size() * 2);
} }
@ -399,7 +399,7 @@ void DynamicBVH::convex_query(const Plane *p_planes, int p_plane_count, const Ve
if (depth > threshold) { if (depth > threshold) {
if (aux_stack.is_empty()) { if (aux_stack.is_empty()) {
aux_stack.resize(ALLOCA_STACK_SIZE * 2); aux_stack.resize(ALLOCA_STACK_SIZE * 2);
copymem(aux_stack.ptr(), stack, ALLOCA_STACK_SIZE * sizeof(const Node *)); memcpy(aux_stack.ptr(), stack, ALLOCA_STACK_SIZE * sizeof(const Node *));
} else { } else {
aux_stack.resize(aux_stack.size() * 2); aux_stack.resize(aux_stack.size() * 2);
} }
@ -456,7 +456,7 @@ void DynamicBVH::ray_query(const Vector3 &p_from, const Vector3 &p_to, QueryResu
if (depth > threshold) { if (depth > threshold) {
if (aux_stack.is_empty()) { if (aux_stack.is_empty()) {
aux_stack.resize(ALLOCA_STACK_SIZE * 2); aux_stack.resize(ALLOCA_STACK_SIZE * 2);
copymem(aux_stack.ptr(), stack, ALLOCA_STACK_SIZE * sizeof(const Node *)); memcpy(aux_stack.ptr(), stack, ALLOCA_STACK_SIZE * sizeof(const Node *));
} else { } else {
aux_stack.resize(aux_stack.size() * 2); aux_stack.resize(aux_stack.size() * 2);
} }

View File

@ -358,7 +358,7 @@ Vector<Point2i> Geometry2D::pack_rects(const Vector<Size2i> &p_sizes, const Size
Vector<Vector3i> Geometry2D::partial_pack_rects(const Vector<Vector2i> &p_sizes, const Size2i &p_atlas_size) { Vector<Vector3i> Geometry2D::partial_pack_rects(const Vector<Vector2i> &p_sizes, const Size2i &p_atlas_size) {
Vector<stbrp_node> nodes; Vector<stbrp_node> nodes;
nodes.resize(p_atlas_size.width); nodes.resize(p_atlas_size.width);
zeromem(nodes.ptrw(), sizeof(stbrp_node) * nodes.size()); memset(nodes.ptrw(), 0, sizeof(stbrp_node) * nodes.size());
stbrp_context context; stbrp_context context;
stbrp_init_target(&context, p_atlas_size.width, p_atlas_size.height, nodes.ptrw(), p_atlas_size.width); stbrp_init_target(&context, p_atlas_size.width, p_atlas_size.height, nodes.ptrw(), p_atlas_size.width);

View File

@ -31,7 +31,6 @@
#include "transform.h" #include "transform.h"
#include "core/math/math_funcs.h" #include "core/math/math_funcs.h"
#include "core/os/copymem.h"
#include "core/string/print_string.h" #include "core/string/print_string.h"
void Transform::affine_invert() { void Transform::affine_invert() {

View File

@ -32,7 +32,6 @@
#define CALLABLE_METHOD_POINTER_H #define CALLABLE_METHOD_POINTER_H
#include "core/object/object.h" #include "core/object/object.h"
#include "core/os/copymem.h"
#include "core/templates/hashfuncs.h" #include "core/templates/hashfuncs.h"
#include "core/templates/simple_type.h" #include "core/templates/simple_type.h"
#include "core/variant/binder_common.h" #include "core/variant/binder_common.h"
@ -98,7 +97,7 @@ public:
} }
CallableCustomMethodPointer(T *p_instance, void (T::*p_method)(P...)) { CallableCustomMethodPointer(T *p_instance, void (T::*p_method)(P...)) {
zeromem(&data, sizeof(Data)); // Clear beforehand, may have padding bytes. memset(&data, 0, sizeof(Data)); // Clear beforehand, may have padding bytes.
data.instance = p_instance; data.instance = p_instance;
#ifdef DEBUG_ENABLED #ifdef DEBUG_ENABLED
data.object_id = p_instance->get_instance_id(); data.object_id = p_instance->get_instance_id();
@ -153,7 +152,7 @@ public:
} }
CallableCustomMethodPointerRet(T *p_instance, R (T::*p_method)(P...)) { CallableCustomMethodPointerRet(T *p_instance, R (T::*p_method)(P...)) {
zeromem(&data, sizeof(Data)); // Clear beforehand, may have padding bytes. memset(&data, 0, sizeof(Data)); // Clear beforehand, may have padding bytes.
data.instance = p_instance; data.instance = p_instance;
#ifdef DEBUG_ENABLED #ifdef DEBUG_ENABLED
data.object_id = p_instance->get_instance_id(); data.object_id = p_instance->get_instance_id();
@ -208,7 +207,7 @@ public:
} }
CallableCustomMethodPointerRetC(T *p_instance, R (T::*p_method)(P...) const) { CallableCustomMethodPointerRetC(T *p_instance, R (T::*p_method)(P...) const) {
zeromem(&data, sizeof(Data)); // Clear beforehand, may have padding bytes. memset(&data, 0, sizeof(Data)); // Clear beforehand, may have padding bytes.
data.instance = p_instance; data.instance = p_instance;
#ifdef DEBUG_ENABLED #ifdef DEBUG_ENABLED
data.object_id = p_instance->get_instance_id(); data.object_id = p_instance->get_instance_id();

View File

@ -1,50 +0,0 @@
/*************************************************************************/
/* copymem.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef COPYMEM_H
#define COPYMEM_H
#include "core/typedefs.h"
#ifdef PLATFORM_COPYMEM
#include "platform_copymem.h" // included from platform/<current_platform>/platform_copymem.h"
#else
#include <string.h>
#define copymem(to, from, count) memcpy(to, from, count)
#define zeromem(to, count) memset(to, 0, count)
#define movemem(to, from, count) memmove(to, from, count)
#endif
#endif // COPYMEM_H

View File

@ -31,7 +31,6 @@
#include "memory.h" #include "memory.h"
#include "core/error/error_macros.h" #include "core/error/error_macros.h"
#include "core/os/copymem.h"
#include "core/templates/safe_refcount.h" #include "core/templates/safe_refcount.h"
#include <stdio.h> #include <stdio.h>

View File

@ -31,7 +31,6 @@
#include "pool_allocator.h" #include "pool_allocator.h"
#include "core/error/error_macros.h" #include "core/error/error_macros.h"
#include "core/os/copymem.h"
#include "core/os/memory.h" #include "core/os/memory.h"
#include "core/os/os.h" #include "core/os/os.h"
#include "core/string/print_string.h" #include "core/string/print_string.h"
@ -42,7 +41,7 @@
do { \ do { \
void *_dst = &((unsigned char *)pool)[m_to_pos]; \ void *_dst = &((unsigned char *)pool)[m_to_pos]; \
void *_src = &((unsigned char *)pool)[(m_entry).pos]; \ void *_src = &((unsigned char *)pool)[(m_entry).pos]; \
movemem(_dst, _src, aligned((m_entry).len)); \ memmove(_dst, _src, aligned((m_entry).len)); \
(m_entry).pos = m_to_pos; \ (m_entry).pos = m_to_pos; \
} while (0); } while (0);

View File

@ -4765,7 +4765,7 @@ Vector<uint8_t> String::to_ascii_buffer() const {
size_t len = charstr.length(); size_t len = charstr.length();
retval.resize(len); retval.resize(len);
uint8_t *w = retval.ptrw(); uint8_t *w = retval.ptrw();
copymem(w, charstr.ptr(), len); memcpy(w, charstr.ptr(), len);
return retval; return retval;
} }
@ -4781,7 +4781,7 @@ Vector<uint8_t> String::to_utf8_buffer() const {
size_t len = charstr.length(); size_t len = charstr.length();
retval.resize(len); retval.resize(len);
uint8_t *w = retval.ptrw(); uint8_t *w = retval.ptrw();
copymem(w, charstr.ptr(), len); memcpy(w, charstr.ptr(), len);
return retval; return retval;
} }
@ -4797,7 +4797,7 @@ Vector<uint8_t> String::to_utf16_buffer() const {
size_t len = charstr.length() * sizeof(char16_t); size_t len = charstr.length() * sizeof(char16_t);
retval.resize(len); retval.resize(len);
uint8_t *w = retval.ptrw(); uint8_t *w = retval.ptrw();
copymem(w, (const void *)charstr.ptr(), len); memcpy(w, (const void *)charstr.ptr(), len);
return retval; return retval;
} }
@ -4812,7 +4812,7 @@ Vector<uint8_t> String::to_utf32_buffer() const {
size_t len = s->length() * sizeof(char32_t); size_t len = s->length() * sizeof(char32_t);
retval.resize(len); retval.resize(len);
uint8_t *w = retval.ptrw(); uint8_t *w = retval.ptrw();
copymem(w, (const void *)s->ptr(), len); memcpy(w, (const void *)s->ptr(), len);
return retval; return retval;
} }

View File

@ -32,7 +32,6 @@
#define LOCAL_VECTOR_H #define LOCAL_VECTOR_H
#include "core/error/error_macros.h" #include "core/error/error_macros.h"
#include "core/os/copymem.h"
#include "core/os/memory.h" #include "core/os/memory.h"
#include "core/templates/sort_array.h" #include "core/templates/sort_array.h"
#include "core/templates/vector.h" #include "core/templates/vector.h"
@ -216,7 +215,7 @@ public:
Vector<T> ret; Vector<T> ret;
ret.resize(size()); ret.resize(size());
T *w = ret.ptrw(); T *w = ret.ptrw();
copymem(w, data, sizeof(T) * count); memcpy(w, data, sizeof(T) * count);
return ret; return ret;
} }
@ -224,7 +223,7 @@ public:
Vector<uint8_t> ret; Vector<uint8_t> ret;
ret.resize(count * sizeof(T)); ret.resize(count * sizeof(T));
uint8_t *w = ret.ptrw(); uint8_t *w = ret.ptrw();
copymem(w, data, sizeof(T) * count); memcpy(w, data, sizeof(T) * count);
return ret; return ret;
} }

View File

@ -32,7 +32,6 @@
#define OA_HASH_MAP_H #define OA_HASH_MAP_H
#include "core/math/math_funcs.h" #include "core/math/math_funcs.h"
#include "core/os/copymem.h"
#include "core/os/memory.h" #include "core/os/memory.h"
#include "core/templates/hashfuncs.h" #include "core/templates/hashfuncs.h"

View File

@ -38,7 +38,6 @@
*/ */
#include "core/error/error_macros.h" #include "core/error/error_macros.h"
#include "core/os/copymem.h"
#include "core/os/memory.h" #include "core/os/memory.h"
#include "core/templates/cowdata.h" #include "core/templates/cowdata.h"
#include "core/templates/sort_array.h" #include "core/templates/sort_array.h"
@ -134,7 +133,7 @@ public:
Vector<uint8_t> to_byte_array() const { Vector<uint8_t> to_byte_array() const {
Vector<uint8_t> ret; Vector<uint8_t> ret;
ret.resize(size() * sizeof(T)); ret.resize(size() * sizeof(T));
copymem(ret.ptrw(), ptr(), sizeof(T) * size()); memcpy(ret.ptrw(), ptr(), sizeof(T) * size());
return ret; return ret;
} }

View File

@ -500,7 +500,7 @@ struct _VariantCall {
const uint8_t *r = p_instance->ptr(); const uint8_t *r = p_instance->ptr();
CharString cs; CharString cs;
cs.resize(p_instance->size() + 1); cs.resize(p_instance->size() + 1);
copymem(cs.ptrw(), r, p_instance->size()); memcpy(cs.ptrw(), r, p_instance->size());
cs[p_instance->size()] = 0; cs[p_instance->size()] = 0;
s = cs.get_data(); s = cs.get_data();

View File

@ -1365,10 +1365,10 @@ void register_op(Variant::Operator p_op, Variant::Type p_type_a, Variant::Type p
} }
void Variant::_register_variant_operators() { void Variant::_register_variant_operators() {
zeromem(operator_return_type_table, sizeof(operator_return_type_table)); memset(operator_return_type_table, 0, sizeof(operator_return_type_table));
zeromem(operator_evaluator_table, sizeof(operator_evaluator_table)); memset(operator_evaluator_table, 0, sizeof(operator_evaluator_table));
zeromem(validated_operator_evaluator_table, sizeof(validated_operator_evaluator_table)); memset(validated_operator_evaluator_table, 0, sizeof(validated_operator_evaluator_table));
zeromem(ptr_operator_evaluator_table, sizeof(ptr_operator_evaluator_table)); memset(ptr_operator_evaluator_table, 0, sizeof(ptr_operator_evaluator_table));
register_op<OperatorEvaluatorAdd<int64_t, int64_t, int64_t>>(Variant::OP_ADD, Variant::INT, Variant::INT); register_op<OperatorEvaluatorAdd<int64_t, int64_t, int64_t>>(Variant::OP_ADD, Variant::INT, Variant::INT);
register_op<OperatorEvaluatorAdd<double, int64_t, double>>(Variant::OP_ADD, Variant::INT, Variant::FLOAT); register_op<OperatorEvaluatorAdd<double, int64_t, double>>(Variant::OP_ADD, Variant::INT, Variant::FLOAT);

View File

@ -70,7 +70,7 @@ OSStatus AudioDriverCoreAudio::output_device_address_cb(AudioObjectID inObjectID
Error AudioDriverCoreAudio::init() { Error AudioDriverCoreAudio::init() {
AudioComponentDescription desc; AudioComponentDescription desc;
zeromem(&desc, sizeof(desc)); memset(&desc, 0, sizeof(desc));
desc.componentType = kAudioUnitType_Output; desc.componentType = kAudioUnitType_Output;
#ifdef OSX_ENABLED #ifdef OSX_ENABLED
desc.componentSubType = kAudioUnitSubType_HALOutput; desc.componentSubType = kAudioUnitSubType_HALOutput;
@ -97,7 +97,7 @@ Error AudioDriverCoreAudio::init() {
AudioStreamBasicDescription strdesc; AudioStreamBasicDescription strdesc;
zeromem(&strdesc, sizeof(strdesc)); memset(&strdesc, 0, sizeof(strdesc));
UInt32 size = sizeof(strdesc); UInt32 size = sizeof(strdesc);
result = AudioUnitGetProperty(audio_unit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, kOutputBus, &strdesc, &size); result = AudioUnitGetProperty(audio_unit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, kOutputBus, &strdesc, &size);
ERR_FAIL_COND_V(result != noErr, FAILED); ERR_FAIL_COND_V(result != noErr, FAILED);
@ -118,7 +118,7 @@ Error AudioDriverCoreAudio::init() {
mix_rate = GLOBAL_GET("audio/driver/mix_rate"); mix_rate = GLOBAL_GET("audio/driver/mix_rate");
zeromem(&strdesc, sizeof(strdesc)); memset(&strdesc, 0, sizeof(strdesc));
strdesc.mFormatID = kAudioFormatLinearPCM; strdesc.mFormatID = kAudioFormatLinearPCM;
strdesc.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked; strdesc.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
strdesc.mChannelsPerFrame = channels; strdesc.mChannelsPerFrame = channels;
@ -148,7 +148,7 @@ Error AudioDriverCoreAudio::init() {
print_verbose("CoreAudio: audio buffer frames: " + itos(buffer_frames) + " calculated latency: " + itos(buffer_frames * 1000 / mix_rate) + "ms"); print_verbose("CoreAudio: audio buffer frames: " + itos(buffer_frames) + " calculated latency: " + itos(buffer_frames * 1000 / mix_rate) + "ms");
AURenderCallbackStruct callback; AURenderCallbackStruct callback;
zeromem(&callback, sizeof(AURenderCallbackStruct)); memset(&callback, 0, sizeof(AURenderCallbackStruct));
callback.inputProc = &AudioDriverCoreAudio::output_callback; callback.inputProc = &AudioDriverCoreAudio::output_callback;
callback.inputProcRefCon = this; callback.inputProcRefCon = this;
result = AudioUnitSetProperty(audio_unit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, kOutputBus, &callback, sizeof(callback)); result = AudioUnitSetProperty(audio_unit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, kOutputBus, &callback, sizeof(callback));
@ -173,7 +173,7 @@ OSStatus AudioDriverCoreAudio::output_callback(void *inRefCon,
if (!ad->active || !ad->try_lock()) { if (!ad->active || !ad->try_lock()) {
for (unsigned int i = 0; i < ioData->mNumberBuffers; i++) { for (unsigned int i = 0; i < ioData->mNumberBuffers; i++) {
AudioBuffer *abuf = &ioData->mBuffers[i]; AudioBuffer *abuf = &ioData->mBuffers[i];
zeromem(abuf->mData, abuf->mDataByteSize); memset(abuf->mData, 0, abuf->mDataByteSize);
}; };
return 0; return 0;
}; };
@ -293,7 +293,7 @@ void AudioDriverCoreAudio::finish() {
lock(); lock();
AURenderCallbackStruct callback; AURenderCallbackStruct callback;
zeromem(&callback, sizeof(AURenderCallbackStruct)); memset(&callback, 0, sizeof(AURenderCallbackStruct));
result = AudioUnitSetProperty(audio_unit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, kOutputBus, &callback, sizeof(callback)); result = AudioUnitSetProperty(audio_unit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, kOutputBus, &callback, sizeof(callback));
if (result != noErr) { if (result != noErr) {
ERR_PRINT("AudioUnitSetProperty failed"); ERR_PRINT("AudioUnitSetProperty failed");
@ -337,7 +337,7 @@ void AudioDriverCoreAudio::finish() {
Error AudioDriverCoreAudio::capture_init() { Error AudioDriverCoreAudio::capture_init() {
AudioComponentDescription desc; AudioComponentDescription desc;
zeromem(&desc, sizeof(desc)); memset(&desc, 0, sizeof(desc));
desc.componentType = kAudioUnitType_Output; desc.componentType = kAudioUnitType_Output;
#ifdef OSX_ENABLED #ifdef OSX_ENABLED
desc.componentSubType = kAudioUnitSubType_HALOutput; desc.componentSubType = kAudioUnitSubType_HALOutput;
@ -383,7 +383,7 @@ Error AudioDriverCoreAudio::capture_init() {
#endif #endif
AudioStreamBasicDescription strdesc; AudioStreamBasicDescription strdesc;
zeromem(&strdesc, sizeof(strdesc)); memset(&strdesc, 0, sizeof(strdesc));
size = sizeof(strdesc); size = sizeof(strdesc);
result = AudioUnitGetProperty(input_unit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, kInputBus, &strdesc, &size); result = AudioUnitGetProperty(input_unit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, kInputBus, &strdesc, &size);
ERR_FAIL_COND_V(result != noErr, FAILED); ERR_FAIL_COND_V(result != noErr, FAILED);
@ -405,7 +405,7 @@ Error AudioDriverCoreAudio::capture_init() {
mix_rate = GLOBAL_GET("audio/driver/mix_rate"); mix_rate = GLOBAL_GET("audio/driver/mix_rate");
zeromem(&strdesc, sizeof(strdesc)); memset(&strdesc, 0, sizeof(strdesc));
strdesc.mFormatID = kAudioFormatLinearPCM; strdesc.mFormatID = kAudioFormatLinearPCM;
strdesc.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked; strdesc.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
strdesc.mChannelsPerFrame = capture_channels; strdesc.mChannelsPerFrame = capture_channels;
@ -419,7 +419,7 @@ Error AudioDriverCoreAudio::capture_init() {
ERR_FAIL_COND_V(result != noErr, FAILED); ERR_FAIL_COND_V(result != noErr, FAILED);
AURenderCallbackStruct callback; AURenderCallbackStruct callback;
zeromem(&callback, sizeof(AURenderCallbackStruct)); memset(&callback, 0, sizeof(AURenderCallbackStruct));
callback.inputProc = &AudioDriverCoreAudio::input_callback; callback.inputProc = &AudioDriverCoreAudio::input_callback;
callback.inputProcRefCon = this; callback.inputProcRefCon = this;
result = AudioUnitSetProperty(input_unit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, kInputBus, &callback, sizeof(callback)); result = AudioUnitSetProperty(input_unit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, kInputBus, &callback, sizeof(callback));
@ -436,7 +436,7 @@ void AudioDriverCoreAudio::capture_finish() {
lock(); lock();
AURenderCallbackStruct callback; AURenderCallbackStruct callback;
zeromem(&callback, sizeof(AURenderCallbackStruct)); memset(&callback, 0, sizeof(AURenderCallbackStruct));
OSStatus result = AudioUnitSetProperty(input_unit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, 0, &callback, sizeof(callback)); OSStatus result = AudioUnitSetProperty(input_unit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, 0, &callback, sizeof(callback));
if (result != noErr) { if (result != noErr) {
ERR_PRINT("AudioUnitSetProperty failed"); ERR_PRINT("AudioUnitSetProperty failed");

View File

@ -88,7 +88,7 @@ Vector<uint8_t> ImageLoaderPNG::lossless_pack_png(const Ref<Image> &p_image) {
{ {
// must be closed before call to image_to_png // must be closed before call to image_to_png
uint8_t *writer = out_buffer.ptrw(); uint8_t *writer = out_buffer.ptrw();
copymem(writer, "PNG ", 4); memcpy(writer, "PNG ", 4);
} }
Error err = PNGDriverCommon::image_to_png(p_image, out_buffer); Error err = PNGDriverCommon::image_to_png(p_image, out_buffer);

View File

@ -60,7 +60,7 @@ static bool check_error(const png_image &image) {
Error png_to_image(const uint8_t *p_source, size_t p_size, bool p_force_linear, Ref<Image> p_image) { Error png_to_image(const uint8_t *p_source, size_t p_size, bool p_force_linear, Ref<Image> p_image) {
png_image png_img; png_image png_img;
zeromem(&png_img, sizeof(png_img)); memset(&png_img, 0, sizeof(png_img));
png_img.version = PNG_IMAGE_VERSION; png_img.version = PNG_IMAGE_VERSION;
// fetch image properties // fetch image properties
@ -134,7 +134,7 @@ Error image_to_png(const Ref<Image> &p_image, Vector<uint8_t> &p_buffer) {
ERR_FAIL_COND_V(source_image->is_compressed(), FAILED); ERR_FAIL_COND_V(source_image->is_compressed(), FAILED);
png_image png_img; png_image png_img;
zeromem(&png_img, sizeof(png_img)); memset(&png_img, 0, sizeof(png_img));
png_img.version = PNG_IMAGE_VERSION; png_img.version = PNG_IMAGE_VERSION;
png_img.width = source_image->get_width(); png_img.width = source_image->get_width();
png_img.height = source_image->get_height(); png_img.height = source_image->get_height();

View File

@ -106,7 +106,7 @@ size_t NetSocketPosix::_set_addr_storage(struct sockaddr_storage *p_addr, const
addr6->sin6_family = AF_INET6; addr6->sin6_family = AF_INET6;
addr6->sin6_port = htons(p_port); addr6->sin6_port = htons(p_port);
if (p_ip.is_valid()) { if (p_ip.is_valid()) {
copymem(&addr6->sin6_addr.s6_addr, p_ip.get_ipv6(), 16); memcpy(&addr6->sin6_addr.s6_addr, p_ip.get_ipv6(), 16);
} else { } else {
addr6->sin6_addr = in6addr_any; addr6->sin6_addr = in6addr_any;
} }
@ -121,7 +121,7 @@ size_t NetSocketPosix::_set_addr_storage(struct sockaddr_storage *p_addr, const
addr4->sin_port = htons(p_port); // short, network byte order addr4->sin_port = htons(p_port); // short, network byte order
if (p_ip.is_valid()) { if (p_ip.is_valid()) {
copymem(&addr4->sin_addr.s_addr, p_ip.get_ipv4(), 4); memcpy(&addr4->sin_addr.s_addr, p_ip.get_ipv4(), 4);
} else { } else {
addr4->sin_addr.s_addr = INADDR_ANY; addr4->sin_addr.s_addr = INADDR_ANY;
} }
@ -283,13 +283,13 @@ _FORCE_INLINE_ Error NetSocketPosix::_change_multicast_group(IP_Address p_ip, St
ERR_FAIL_COND_V(!if_ip.is_valid(), ERR_INVALID_PARAMETER); ERR_FAIL_COND_V(!if_ip.is_valid(), ERR_INVALID_PARAMETER);
struct ip_mreq greq; struct ip_mreq greq;
int sock_opt = p_add ? IP_ADD_MEMBERSHIP : IP_DROP_MEMBERSHIP; int sock_opt = p_add ? IP_ADD_MEMBERSHIP : IP_DROP_MEMBERSHIP;
copymem(&greq.imr_multiaddr, p_ip.get_ipv4(), 4); memcpy(&greq.imr_multiaddr, p_ip.get_ipv4(), 4);
copymem(&greq.imr_interface, if_ip.get_ipv4(), 4); memcpy(&greq.imr_interface, if_ip.get_ipv4(), 4);
ret = setsockopt(_sock, level, sock_opt, (const char *)&greq, sizeof(greq)); ret = setsockopt(_sock, level, sock_opt, (const char *)&greq, sizeof(greq));
} else { } else {
struct ipv6_mreq greq; struct ipv6_mreq greq;
int sock_opt = p_add ? IPV6_ADD_MEMBERSHIP : IPV6_DROP_MEMBERSHIP; int sock_opt = p_add ? IPV6_ADD_MEMBERSHIP : IPV6_DROP_MEMBERSHIP;
copymem(&greq.ipv6mr_multiaddr, p_ip.get_ipv6(), 16); memcpy(&greq.ipv6mr_multiaddr, p_ip.get_ipv6(), 16);
greq.ipv6mr_interface = if_v6id; greq.ipv6mr_interface = if_v6id;
ret = setsockopt(_sock, level, sock_opt, (const char *)&greq, sizeof(greq)); ret = setsockopt(_sock, level, sock_opt, (const char *)&greq, sizeof(greq));
} }

View File

@ -1600,7 +1600,7 @@ Error RenderingDeviceVulkan::_buffer_update(Buffer *p_buffer, size_t p_offset, c
} }
//copy to staging buffer //copy to staging buffer
copymem(((uint8_t *)data_ptr) + block_write_offset, p_data + submit_from, block_write_amount); memcpy(((uint8_t *)data_ptr) + block_write_offset, p_data + submit_from, block_write_amount);
//unmap //unmap
vmaUnmapMemory(allocator, staging_buffer_blocks[staging_buffer_current].allocation); vmaUnmapMemory(allocator, staging_buffer_blocks[staging_buffer_current].allocation);
@ -2558,7 +2558,7 @@ Vector<uint8_t> RenderingDeviceVulkan::_texture_get_data_from_image(Texture *tex
const uint8_t *rptr = slice_read_ptr + y * layout.rowPitch; const uint8_t *rptr = slice_read_ptr + y * layout.rowPitch;
uint8_t *wptr = write_ptr + y * line_width; uint8_t *wptr = write_ptr + y * line_width;
copymem(wptr, rptr, line_width); memcpy(wptr, rptr, line_width);
} }
} else { } else {
@ -2566,7 +2566,7 @@ Vector<uint8_t> RenderingDeviceVulkan::_texture_get_data_from_image(Texture *tex
for (uint32_t y = 0; y < height; y++) { for (uint32_t y = 0; y < height; y++) {
const uint8_t *rptr = slice_read_ptr + y * layout.rowPitch; const uint8_t *rptr = slice_read_ptr + y * layout.rowPitch;
uint8_t *wptr = write_ptr + y * pixel_size * width; uint8_t *wptr = write_ptr + y * pixel_size * width;
copymem(wptr, rptr, (uint64_t)pixel_size * width); memcpy(wptr, rptr, (uint64_t)pixel_size * width);
} }
} }
} }
@ -2699,7 +2699,7 @@ Vector<uint8_t> RenderingDeviceVulkan::texture_get_data(RID p_texture, uint32_t
{ {
buffer_data.resize(buffer_size); buffer_data.resize(buffer_size);
uint8_t *w = buffer_data.ptrw(); uint8_t *w = buffer_data.ptrw();
copymem(w, buffer_mem, buffer_size); memcpy(w, buffer_mem, buffer_size);
} }
vmaUnmapMemory(allocator, tmp_buffer.allocation); vmaUnmapMemory(allocator, tmp_buffer.allocation);
@ -5359,7 +5359,7 @@ Vector<uint8_t> RenderingDeviceVulkan::buffer_get_data(RID p_buffer) {
{ {
buffer_data.resize(buffer->size); buffer_data.resize(buffer->size);
uint8_t *w = buffer_data.ptrw(); uint8_t *w = buffer_data.ptrw();
copymem(w, buffer_mem, buffer->size); memcpy(w, buffer_mem, buffer->size);
} }
vmaUnmapMemory(allocator, tmp_buffer.allocation); vmaUnmapMemory(allocator, tmp_buffer.allocation);

View File

@ -346,7 +346,7 @@ void GPUParticles3DEditor::_generate_emission_points() {
{ {
uint8_t *iw = point_img.ptrw(); uint8_t *iw = point_img.ptrw();
zeromem(iw, w * h * 3 * sizeof(float)); memset(iw, 0, w * h * 3 * sizeof(float));
const Vector3 *r = points.ptr(); const Vector3 *r = points.ptr();
float *wf = (float *)iw; float *wf = (float *)iw;
for (int i = 0; i < point_count; i++) { for (int i = 0; i < point_count; i++) {
@ -374,7 +374,7 @@ void GPUParticles3DEditor::_generate_emission_points() {
{ {
uint8_t *iw = point_img2.ptrw(); uint8_t *iw = point_img2.ptrw();
zeromem(iw, w * h * 3 * sizeof(float)); memset(iw, 0, w * h * 3 * sizeof(float));
const Vector3 *r = normals.ptr(); const Vector3 *r = normals.ptr();
float *wf = (float *)iw; float *wf = (float *)iw;
for (int i = 0; i < point_count; i++) { for (int i = 0; i < point_count; i++) {

View File

@ -562,7 +562,7 @@ Error NetworkedMultiplayerENet::put_packet(const uint8_t *p_buffer, int p_buffer
ENetPacket *packet = enet_packet_create(nullptr, p_buffer_size + 8, packet_flags); ENetPacket *packet = enet_packet_create(nullptr, p_buffer_size + 8, packet_flags);
encode_uint32(unique_id, &packet->data[0]); // Source ID encode_uint32(unique_id, &packet->data[0]); // Source ID
encode_uint32(target_peer, &packet->data[4]); // Dest ID encode_uint32(target_peer, &packet->data[4]); // Dest ID
copymem(&packet->data[8], p_buffer, p_buffer_size); memcpy(&packet->data[8], p_buffer, p_buffer_size);
if (server) { if (server) {
if (target_peer == 0) { if (target_peer == 0) {
@ -673,7 +673,7 @@ size_t NetworkedMultiplayerENet::enet_compress(void *context, const ENetBuffer *
while (total) { while (total) {
for (size_t i = 0; i < inBufferCount; i++) { for (size_t i = 0; i < inBufferCount; i++) {
int to_copy = MIN(total, int(inBuffers[i].dataLength)); int to_copy = MIN(total, int(inBuffers[i].dataLength));
copymem(&enet->src_compressor_mem.write[ofs], inBuffers[i].data, to_copy); memcpy(&enet->src_compressor_mem.write[ofs], inBuffers[i].data, to_copy);
ofs += to_copy; ofs += to_copy;
total -= to_copy; total -= to_copy;
} }
@ -710,7 +710,7 @@ size_t NetworkedMultiplayerENet::enet_compress(void *context, const ENetBuffer *
return 0; // Do not bother return 0; // Do not bother
} }
copymem(outData, enet->dst_compressor_mem.ptr(), ret); memcpy(outData, enet->dst_compressor_mem.ptr(), ret);
return ret; return ret;
} }

View File

@ -90,8 +90,8 @@ struct NativeScriptDesc {
bool is_tool = false; bool is_tool = false;
inline NativeScriptDesc() { inline NativeScriptDesc() {
zeromem(&create_func, sizeof(godot_nativescript_instance_create_func)); memset(&create_func, 0, sizeof(godot_nativescript_instance_create_func));
zeromem(&destroy_func, sizeof(godot_nativescript_instance_destroy_func)); memset(&destroy_func, 0, sizeof(godot_nativescript_instance_destroy_func));
} }
}; };

View File

@ -32,7 +32,6 @@
#include "core/config/project_settings.h" #include "core/config/project_settings.h"
#include "core/io/json.h" #include "core/io/json.h"
#include "core/os/copymem.h"
#include "editor/doc_tools.h" #include "editor/doc_tools.h"
#include "editor/editor_log.h" #include "editor/editor_log.h"
#include "editor/editor_node.h" #include "editor/editor_node.h"

View File

@ -173,7 +173,7 @@ static Vector<uint8_t> _compile_shader_glsl(RenderingDevice::ShaderStage p_stage
ret.resize(SpirV.size() * sizeof(uint32_t)); ret.resize(SpirV.size() * sizeof(uint32_t));
{ {
uint8_t *w = ret.ptrw(); uint8_t *w = ret.ptrw();
copymem(w, &SpirV[0], SpirV.size() * sizeof(uint32_t)); memcpy(w, &SpirV[0], SpirV.size() * sizeof(uint32_t));
} }
return ret; return ret;

View File

@ -1157,7 +1157,7 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> state, const double *src,
} }
int64_t old_size = gltf_buffer.size(); int64_t old_size = gltf_buffer.size();
gltf_buffer.resize(old_size + (buffer.size() * sizeof(int8_t))); gltf_buffer.resize(old_size + (buffer.size() * sizeof(int8_t)));
copymem(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(int8_t)); memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(int8_t));
bv->byte_length = buffer.size() * sizeof(int8_t); bv->byte_length = buffer.size() * sizeof(int8_t);
} break; } break;
case COMPONENT_TYPE_UNSIGNED_BYTE: { case COMPONENT_TYPE_UNSIGNED_BYTE: {
@ -1203,7 +1203,7 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> state, const double *src,
} }
int64_t old_size = gltf_buffer.size(); int64_t old_size = gltf_buffer.size();
gltf_buffer.resize(old_size + (buffer.size() * sizeof(int16_t))); gltf_buffer.resize(old_size + (buffer.size() * sizeof(int16_t)));
copymem(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(int16_t)); memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(int16_t));
bv->byte_length = buffer.size() * sizeof(int16_t); bv->byte_length = buffer.size() * sizeof(int16_t);
} break; } break;
case COMPONENT_TYPE_UNSIGNED_SHORT: { case COMPONENT_TYPE_UNSIGNED_SHORT: {
@ -1227,7 +1227,7 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> state, const double *src,
} }
int64_t old_size = gltf_buffer.size(); int64_t old_size = gltf_buffer.size();
gltf_buffer.resize(old_size + (buffer.size() * sizeof(uint16_t))); gltf_buffer.resize(old_size + (buffer.size() * sizeof(uint16_t)));
copymem(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(uint16_t)); memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(uint16_t));
bv->byte_length = buffer.size() * sizeof(uint16_t); bv->byte_length = buffer.size() * sizeof(uint16_t);
} break; } break;
case COMPONENT_TYPE_INT: { case COMPONENT_TYPE_INT: {
@ -1247,7 +1247,7 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> state, const double *src,
} }
int64_t old_size = gltf_buffer.size(); int64_t old_size = gltf_buffer.size();
gltf_buffer.resize(old_size + (buffer.size() * sizeof(int32_t))); gltf_buffer.resize(old_size + (buffer.size() * sizeof(int32_t)));
copymem(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(int32_t)); memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(int32_t));
bv->byte_length = buffer.size() * sizeof(int32_t); bv->byte_length = buffer.size() * sizeof(int32_t);
} break; } break;
case COMPONENT_TYPE_FLOAT: { case COMPONENT_TYPE_FLOAT: {
@ -1267,7 +1267,7 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> state, const double *src,
} }
int64_t old_size = gltf_buffer.size(); int64_t old_size = gltf_buffer.size();
gltf_buffer.resize(old_size + (buffer.size() * sizeof(float))); gltf_buffer.resize(old_size + (buffer.size() * sizeof(float)));
copymem(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(float)); memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(float));
bv->byte_length = buffer.size() * sizeof(float); bv->byte_length = buffer.size() * sizeof(float);
} break; } break;
} }
@ -2864,7 +2864,7 @@ Error GLTFDocument::_serialize_images(Ref<GLTFState> state, const String &p_path
bv->byte_length = buffer.size(); bv->byte_length = buffer.size();
state->buffers.write[bi].resize(state->buffers[bi].size() + bv->byte_length); state->buffers.write[bi].resize(state->buffers[bi].size() + bv->byte_length);
copymem(&state->buffers.write[bi].write[bv->byte_offset], buffer.ptr(), buffer.size()); memcpy(&state->buffers.write[bi].write[bv->byte_offset], buffer.ptr(), buffer.size());
ERR_FAIL_COND_V(bv->byte_offset + bv->byte_length > state->buffers[bi].size(), ERR_FILE_CORRUPT); ERR_FAIL_COND_V(bv->byte_offset + bv->byte_length > state->buffers[bi].size(), ERR_FILE_CORRUPT);
state->buffer_views.push_back(bv); state->buffer_views.push_back(bv);

View File

@ -432,10 +432,10 @@ void LightmapperRD::_create_acceleration_structures(RenderingDevice *rd, Size2i
triangle_indices.resize(triangle_sort.size()); triangle_indices.resize(triangle_sort.size());
Vector<uint32_t> grid_indices; Vector<uint32_t> grid_indices;
grid_indices.resize(grid_size * grid_size * grid_size * 2); grid_indices.resize(grid_size * grid_size * grid_size * 2);
zeromem(grid_indices.ptrw(), grid_indices.size() * sizeof(uint32_t)); memset(grid_indices.ptrw(), 0, grid_indices.size() * sizeof(uint32_t));
Vector<bool> solid; Vector<bool> solid;
solid.resize(grid_size * grid_size * grid_size); solid.resize(grid_size * grid_size * grid_size);
zeromem(solid.ptrw(), solid.size() * sizeof(bool)); memset(solid.ptrw(), 0, solid.size() * sizeof(bool));
{ {
uint32_t *tiw = triangle_indices.ptrw(); uint32_t *tiw = triangle_indices.ptrw();
@ -1674,7 +1674,7 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
if (probe_positions.size() > 0) { if (probe_positions.size() > 0) {
probe_values.resize(probe_positions.size() * 9); probe_values.resize(probe_positions.size() * 9);
Vector<uint8_t> probe_data = rd->buffer_get_data(light_probe_buffer); Vector<uint8_t> probe_data = rd->buffer_get_data(light_probe_buffer);
copymem(probe_values.ptrw(), probe_data.ptr(), probe_data.size()); memcpy(probe_values.ptrw(), probe_data.ptr(), probe_data.size());
rd->free(light_probe_buffer); rd->free(light_probe_buffer);
#ifdef DEBUG_TEXTURES #ifdef DEBUG_TEXTURES
@ -1743,7 +1743,7 @@ Vector<Color> LightmapperRD::get_bake_probe_sh(int p_probe) const {
ERR_FAIL_INDEX_V(p_probe, probe_positions.size(), Vector<Color>()); ERR_FAIL_INDEX_V(p_probe, probe_positions.size(), Vector<Color>());
Vector<Color> ret; Vector<Color> ret;
ret.resize(9); ret.resize(9);
copymem(ret.ptrw(), &probe_values[p_probe * 9], sizeof(Color) * 9); memcpy(ret.ptrw(), &probe_values[p_probe * 9], sizeof(Color) * 9);
return ret; return ret;
} }

View File

@ -409,7 +409,7 @@ Vector<uint8_t> CryptoMbedTLS::sign(HashingContext::HashType p_hash_type, Vector
int ret = mbedtls_pk_sign(&(key->pkey), type, p_hash.ptr(), size, buf, &sig_size, mbedtls_ctr_drbg_random, &ctr_drbg); int ret = mbedtls_pk_sign(&(key->pkey), type, p_hash.ptr(), size, buf, &sig_size, mbedtls_ctr_drbg_random, &ctr_drbg);
ERR_FAIL_COND_V_MSG(ret, out, "Error while signing: " + itos(ret)); ERR_FAIL_COND_V_MSG(ret, out, "Error while signing: " + itos(ret));
out.resize(sig_size); out.resize(sig_size);
copymem(out.ptrw(), buf, sig_size); memcpy(out.ptrw(), buf, sig_size);
return out; return out;
} }
@ -432,7 +432,7 @@ Vector<uint8_t> CryptoMbedTLS::encrypt(Ref<CryptoKey> p_key, Vector<uint8_t> p_p
int ret = mbedtls_pk_encrypt(&(key->pkey), p_plaintext.ptr(), p_plaintext.size(), buf, &size, sizeof(buf), mbedtls_ctr_drbg_random, &ctr_drbg); int ret = mbedtls_pk_encrypt(&(key->pkey), p_plaintext.ptr(), p_plaintext.size(), buf, &size, sizeof(buf), mbedtls_ctr_drbg_random, &ctr_drbg);
ERR_FAIL_COND_V_MSG(ret, out, "Error while encrypting: " + itos(ret)); ERR_FAIL_COND_V_MSG(ret, out, "Error while encrypting: " + itos(ret));
out.resize(size); out.resize(size);
copymem(out.ptrw(), buf, size); memcpy(out.ptrw(), buf, size);
return out; return out;
} }
@ -446,6 +446,6 @@ Vector<uint8_t> CryptoMbedTLS::decrypt(Ref<CryptoKey> p_key, Vector<uint8_t> p_c
int ret = mbedtls_pk_decrypt(&(key->pkey), p_ciphertext.ptr(), p_ciphertext.size(), buf, &size, sizeof(buf), mbedtls_ctr_drbg_random, &ctr_drbg); int ret = mbedtls_pk_decrypt(&(key->pkey), p_ciphertext.ptr(), p_ciphertext.size(), buf, &size, sizeof(buf), mbedtls_ctr_drbg_random, &ctr_drbg);
ERR_FAIL_COND_V_MSG(ret, out, "Error while decrypting: " + itos(ret)); ERR_FAIL_COND_V_MSG(ret, out, "Error while decrypting: " + itos(ret));
out.resize(size); out.resize(size);
copymem(out.ptrw(), buf, size); memcpy(out.ptrw(), buf, size);
return out; return out;
} }

View File

@ -74,7 +74,7 @@ int PacketPeerMbedDTLS::bio_recv(void *ctx, unsigned char *buf, size_t len) {
if (err != OK) { if (err != OK) {
return MBEDTLS_ERR_SSL_INTERNAL_ERROR; return MBEDTLS_ERR_SSL_INTERNAL_ERROR;
} }
copymem(buf, buffer, buffer_size); memcpy(buf, buffer, buffer_size);
return buffer_size; return buffer_size;
} }
@ -89,8 +89,8 @@ int PacketPeerMbedDTLS::_set_cookie() {
uint8_t client_id[18]; uint8_t client_id[18];
IP_Address addr = base->get_packet_address(); IP_Address addr = base->get_packet_address();
uint16_t port = base->get_packet_port(); uint16_t port = base->get_packet_port();
copymem(client_id, addr.get_ipv6(), 16); memcpy(client_id, addr.get_ipv6(), 16);
copymem(&client_id[16], (uint8_t *)&port, 2); memcpy(&client_id[16], (uint8_t *)&port, 2);
return mbedtls_ssl_set_client_transport_id(ssl_ctx->get_context(), client_id, 18); return mbedtls_ssl_set_client_transport_id(ssl_ctx->get_context(), client_id, 18);
} }

View File

@ -172,7 +172,7 @@ void AudioStreamMP3::set_data(const Vector<uint8_t> &p_data) {
clear_data(); clear_data();
data = memalloc(src_data_len); data = memalloc(src_data_len);
copymem(data, src_datar, src_data_len); memcpy(data, src_datar, src_data_len);
data_len = src_data_len; data_len = src_data_len;
} }
@ -183,7 +183,7 @@ Vector<uint8_t> AudioStreamMP3::get_data() const {
vdata.resize(data_len); vdata.resize(data_len);
{ {
uint8_t *w = vdata.ptrw(); uint8_t *w = vdata.ptrw();
copymem(w, data, data_len); memcpy(w, data, data_len);
} }
} }

View File

@ -65,7 +65,7 @@ static void _compress_pvrtc1_4bpp(Image *p_img) {
img->get_mipmap_offset_size_and_dimensions(i, ofs, size, w, h); img->get_mipmap_offset_size_and_dimensions(i, ofs, size, w, h);
Javelin::RgbaBitmap bm(w, h); Javelin::RgbaBitmap bm(w, h);
void *dst = (void *)bm.GetData(); void *dst = (void *)bm.GetData();
copymem(dst, &r[ofs], size); memcpy(dst, &r[ofs], size);
Javelin::ColorRgba<unsigned char> *dp = bm.GetData(); Javelin::ColorRgba<unsigned char> *dp = bm.GetData();
for (int j = 0; j < size / 4; j++) { for (int j = 0; j < size / 4; j++) {
// Red and blue colors are swapped. // Red and blue colors are swapped.

View File

@ -204,7 +204,7 @@ void AudioStreamOGGVorbis::set_data(const Vector<uint8_t> &p_data) {
clear_data(); clear_data();
data = memalloc(src_data_len); data = memalloc(src_data_len);
copymem(data, src_datar, src_data_len); memcpy(data, src_datar, src_data_len);
data_len = src_data_len; data_len = src_data_len;
break; break;
@ -221,7 +221,7 @@ Vector<uint8_t> AudioStreamOGGVorbis::get_data() const {
vdata.resize(data_len); vdata.resize(data_len);
{ {
uint8_t *w = vdata.ptrw(); uint8_t *w = vdata.ptrw();
copymem(w, data, data_len); memcpy(w, data, data_len);
} }
} }

View File

@ -225,7 +225,7 @@ void VideoStreamPlaybackTheora::set_file(const String &p_file) {
/* identify the codec: try theora */ /* identify the codec: try theora */
if (!theora_p && th_decode_headerin(&ti, &tc, &ts, &op) >= 0) { if (!theora_p && th_decode_headerin(&ti, &tc, &ts, &op) >= 0) {
/* it is theora */ /* it is theora */
copymem(&to, &test, sizeof(test)); memcpy(&to, &test, sizeof(test));
theora_p = 1; theora_p = 1;
} else if (!vorbis_p && vorbis_synthesis_headerin(&vi, &vc, &op) >= 0) { } else if (!vorbis_p && vorbis_synthesis_headerin(&vi, &vc, &op) >= 0) {
/* it is vorbis */ /* it is vorbis */
@ -238,7 +238,7 @@ void VideoStreamPlaybackTheora::set_file(const String &p_file) {
audio_track_skip--; audio_track_skip--;
} else { } else {
copymem(&vo, &test, sizeof(test)); memcpy(&vo, &test, sizeof(test));
vorbis_p = 1; vorbis_p = 1;
} }
} else { } else {

View File

@ -1537,7 +1537,7 @@ Variant VisualScriptInstance::_call_internal(const StringName &p_method, void *p
state->flow_stack_pos = flow_stack_pos; state->flow_stack_pos = flow_stack_pos;
state->stack.resize(p_stack_size); state->stack.resize(p_stack_size);
state->pass = p_pass; state->pass = p_pass;
copymem(state->stack.ptrw(), p_stack, p_stack_size); memcpy(state->stack.ptrw(), p_stack, p_stack_size);
// Step 2, run away, return directly. // Step 2, run away, return directly.
r_error.error = Callable::CallError::CALL_OK; r_error.error = Callable::CallError::CALL_OK;
@ -1802,7 +1802,7 @@ Variant VisualScriptInstance::call(const StringName &p_method, const Variant **p
sequence_bits[i] = false; // All starts as false. sequence_bits[i] = false; // All starts as false.
} }
zeromem(pass_stack, f->pass_stack_size * sizeof(int)); memset(pass_stack, 0, f->pass_stack_size * sizeof(int));
Map<int, VisualScriptNodeInstance *>::Element *E = instances.find(f->node); Map<int, VisualScriptNodeInstance *>::Element *E = instances.find(f->node);
if (!E) { if (!E) {

View File

@ -68,7 +68,7 @@ static Vector<uint8_t> _webp_lossy_pack(const Ref<Image> &p_image, float p_quali
w[1] = 'E'; w[1] = 'E';
w[2] = 'B'; w[2] = 'B';
w[3] = 'P'; w[3] = 'P';
copymem(&w[4], dst_buff, dst_size); memcpy(&w[4], dst_buff, dst_size);
free(dst_buff); free(dst_buff);
return dst; return dst;

View File

@ -31,7 +31,6 @@
#ifndef PACKET_BUFFER_H #ifndef PACKET_BUFFER_H
#define PACKET_BUFFER_H #define PACKET_BUFFER_H
#include "core/os/copymem.h"
#include "core/templates/ring_buffer.h" #include "core/templates/ring_buffer.h"
template <class T> template <class T>
@ -66,7 +65,7 @@ public:
if (p_info) { if (p_info) {
_Packet p; _Packet p;
p.size = p_size; p.size = p_size;
copymem(&p.info, p_info, sizeof(T)); memcpy(&p.info, p_info, sizeof(T));
_packets.write(p); _packets.write(p);
} }
@ -86,7 +85,7 @@ public:
ERR_FAIL_COND_V(p_bytes < (int)p.size, ERR_OUT_OF_MEMORY); ERR_FAIL_COND_V(p_bytes < (int)p.size, ERR_OUT_OF_MEMORY);
r_read = p.size; r_read = p.size;
copymem(r_info, &p.info, sizeof(T)); memcpy(r_info, &p.info, sizeof(T));
_payload.read(r_payload, p.size); _payload.read(r_payload, p.size);
return OK; return OK;
} }

View File

@ -168,10 +168,10 @@ Vector<uint8_t> WebSocketMultiplayerPeer::_make_pkt(uint8_t p_type, int32_t p_fr
out.resize(PROTO_SIZE + p_data_size); out.resize(PROTO_SIZE + p_data_size);
uint8_t *w = out.ptrw(); uint8_t *w = out.ptrw();
copymem(&w[0], &p_type, 1); memcpy(&w[0], &p_type, 1);
copymem(&w[1], &p_from, 4); memcpy(&w[1], &p_from, 4);
copymem(&w[5], &p_to, 4); memcpy(&w[5], &p_to, 4);
copymem(&w[PROTO_SIZE], p_data, p_data_size); memcpy(&w[PROTO_SIZE], p_data, p_data_size);
return out; return out;
} }
@ -211,7 +211,7 @@ void WebSocketMultiplayerPeer::_store_pkt(int32_t p_source, int32_t p_dest, cons
packet.size = p_data_size; packet.size = p_data_size;
packet.source = p_source; packet.source = p_source;
packet.destination = p_dest; packet.destination = p_dest;
copymem(packet.data, &p_data[PROTO_SIZE], p_data_size); memcpy(packet.data, &p_data[PROTO_SIZE], p_data_size);
_incoming_packets.push_back(packet); _incoming_packets.push_back(packet);
emit_signal("peer_packet", p_source); emit_signal("peer_packet", p_source);
} }
@ -263,9 +263,9 @@ void WebSocketMultiplayerPeer::_process_multiplayer(Ref<WebSocketPeer> p_peer, u
uint8_t type = 0; uint8_t type = 0;
uint32_t from = 0; uint32_t from = 0;
int32_t to = 0; int32_t to = 0;
copymem(&type, in_buffer, 1); memcpy(&type, in_buffer, 1);
copymem(&from, &in_buffer[1], 4); memcpy(&from, &in_buffer[1], 4);
copymem(&to, &in_buffer[5], 4); memcpy(&to, &in_buffer[5], 4);
if (is_server()) { // Server can resend if (is_server()) { // Server can resend
@ -299,7 +299,7 @@ void WebSocketMultiplayerPeer::_process_multiplayer(Ref<WebSocketPeer> p_peer, u
// System message // System message
ERR_FAIL_COND(data_size < 4); ERR_FAIL_COND(data_size < 4);
int id = 0; int id = 0;
copymem(&id, &in_buffer[PROTO_SIZE], 4); memcpy(&id, &in_buffer[PROTO_SIZE], 4);
switch (type) { switch (type) {
case SYS_ADD: // Add peer case SYS_ADD: // Add peer

View File

@ -2247,7 +2247,7 @@ public:
} }
r_command_line_flags.resize(base + 4 + length); r_command_line_flags.resize(base + 4 + length);
encode_uint32(length, &r_command_line_flags.write[base]); encode_uint32(length, &r_command_line_flags.write[base]);
copymem(&r_command_line_flags.write[base + 4], command_line_argument.ptr(), length); memcpy(&r_command_line_flags.write[base + 4], command_line_argument.ptr(), length);
} }
} }
} }

View File

@ -209,7 +209,7 @@ PackedByteArray HTTPClient::read_response_body_chunk() {
return chunk; return chunk;
} }
chunk.resize(read); chunk.resize(read);
copymem(chunk.ptrw(), response_buffer.ptr(), read); memcpy(chunk.ptrw(), response_buffer.ptr(), read);
return chunk; return chunk;
} }

View File

@ -215,7 +215,7 @@ void _rgba8_to_packbits_encode(int p_ch, int p_size, Vector<uint8_t> &p_source,
if ((p_source.ptr()[(i + 1) * 4 + p_ch] == cur) && (p_source.ptr()[(i + 2) * 4 + p_ch] == cur)) { if ((p_source.ptr()[(i + 1) * 4 + p_ch] == cur) && (p_source.ptr()[(i + 2) * 4 + p_ch] == cur)) {
if (buf_size > 0) { if (buf_size > 0) {
result.write[res_size++] = (uint8_t)(buf_size - 1); result.write[res_size++] = (uint8_t)(buf_size - 1);
copymem(&result.write[res_size], &buf, buf_size); memcpy(&result.write[res_size], &buf, buf_size);
res_size += buf_size; res_size += buf_size;
buf_size = 0; buf_size = 0;
} }
@ -241,7 +241,7 @@ void _rgba8_to_packbits_encode(int p_ch, int p_size, Vector<uint8_t> &p_source,
buf[buf_size++] = cur; buf[buf_size++] = cur;
if (buf_size == 128) { if (buf_size == 128) {
result.write[res_size++] = (uint8_t)(buf_size - 1); result.write[res_size++] = (uint8_t)(buf_size - 1);
copymem(&result.write[res_size], &buf, buf_size); memcpy(&result.write[res_size], &buf, buf_size);
res_size += buf_size; res_size += buf_size;
buf_size = 0; buf_size = 0;
} }
@ -249,7 +249,7 @@ void _rgba8_to_packbits_encode(int p_ch, int p_size, Vector<uint8_t> &p_source,
} else { } else {
buf[buf_size++] = cur; buf[buf_size++] = cur;
result.write[res_size++] = (uint8_t)(buf_size - 1); result.write[res_size++] = (uint8_t)(buf_size - 1);
copymem(&result.write[res_size], &buf, buf_size); memcpy(&result.write[res_size], &buf, buf_size);
res_size += buf_size; res_size += buf_size;
buf_size = 0; buf_size = 0;
} }
@ -259,7 +259,7 @@ void _rgba8_to_packbits_encode(int p_ch, int p_size, Vector<uint8_t> &p_source,
int ofs = p_dest.size(); int ofs = p_dest.size();
p_dest.resize(p_dest.size() + res_size); p_dest.resize(p_dest.size() + res_size);
copymem(&p_dest.write[ofs], result.ptr(), res_size); memcpy(&p_dest.write[ofs], result.ptr(), res_size);
} }
void EditorExportPlatformOSX::_make_icon(const Ref<Image> &p_icon, Vector<uint8_t> &p_data) { void EditorExportPlatformOSX::_make_icon(const Ref<Image> &p_icon, Vector<uint8_t> &p_data) {
@ -318,7 +318,7 @@ void EditorExportPlatformOSX::_make_icon(const Ref<Image> &p_icon, Vector<uint8_
memdelete(f); memdelete(f);
len += 8; len += 8;
len = BSWAP32(len); len = BSWAP32(len);
copymem(&data.write[ofs], icon_infos[i].name, 4); memcpy(&data.write[ofs], icon_infos[i].name, 4);
encode_uint32(len, &data.write[ofs + 4]); encode_uint32(len, &data.write[ofs + 4]);
// Clean up generated file. // Clean up generated file.
@ -338,7 +338,7 @@ void EditorExportPlatformOSX::_make_icon(const Ref<Image> &p_icon, Vector<uint8_
int len = data.size() - ofs; int len = data.size() - ofs;
len = BSWAP32(len); len = BSWAP32(len);
copymem(&data.write[ofs], icon_infos[i].name, 4); memcpy(&data.write[ofs], icon_infos[i].name, 4);
encode_uint32(len, &data.write[ofs + 4]); encode_uint32(len, &data.write[ofs + 4]);
} }
@ -353,7 +353,7 @@ void EditorExportPlatformOSX::_make_icon(const Ref<Image> &p_icon, Vector<uint8_
} }
len += 8; len += 8;
len = BSWAP32(len); len = BSWAP32(len);
copymem(&data.write[ofs], icon_infos[i].mask_name, 4); memcpy(&data.write[ofs], icon_infos[i].mask_name, 4);
encode_uint32(len, &data.write[ofs + 4]); encode_uint32(len, &data.write[ofs + 4]);
} }
} }

View File

@ -1336,7 +1336,7 @@ public:
int base = clf.size(); int base = clf.size();
clf.resize(base + 4 + txt.length()); clf.resize(base + 4 + txt.length());
encode_uint32(txt.length(), &clf.write[base]); encode_uint32(txt.length(), &clf.write[base]);
copymem(&clf.write[base + 4], txt.ptr(), txt.length()); memcpy(&clf.write[base + 4], txt.ptr(), txt.length());
print_line(itos(i) + " param: " + cl[i]); print_line(itos(i) + " param: " + cl[i]);
} }

View File

@ -332,7 +332,7 @@ static BOOL CALLBACK _MonitorEnumProcUsableSize(HMONITOR hMonitor, HDC hdcMonito
EnumRectData *data = (EnumRectData *)dwData; EnumRectData *data = (EnumRectData *)dwData;
if (data->count == data->screen) { if (data->count == data->screen) {
MONITORINFO minfo; MONITORINFO minfo;
zeromem(&minfo, sizeof(MONITORINFO)); memset(&minfo, 0, sizeof(MONITORINFO));
minfo.cbSize = sizeof(MONITORINFO); minfo.cbSize = sizeof(MONITORINFO);
GetMonitorInfoA(hMonitor, &minfo); GetMonitorInfoA(hMonitor, &minfo);

View File

@ -976,7 +976,7 @@ void CPUParticles2D::_update_particle_data_buffer() {
ptr[7] = t.elements[2][1]; ptr[7] = t.elements[2][1];
} else { } else {
zeromem(ptr, sizeof(float) * 8); memset(ptr, 0, sizeof(float) * 8);
} }
Color c = r[idx].color; Color c = r[idx].color;
@ -1080,7 +1080,7 @@ void CPUParticles2D::_notification(int p_what) {
ptr[7] = t.elements[2][1]; ptr[7] = t.elements[2][1];
} else { } else {
zeromem(ptr, sizeof(float) * 8); memset(ptr, 0, sizeof(float) * 8);
} }
ptr += 16; ptr += 16;

View File

@ -1050,7 +1050,7 @@ void CPUParticles3D::_update_particle_data_buffer() {
ptr[10] = t.basis.elements[2][2]; ptr[10] = t.basis.elements[2][2];
ptr[11] = t.origin.z; ptr[11] = t.origin.z;
} else { } else {
zeromem(ptr, sizeof(float) * 12); memset(ptr, 0, sizeof(float) * 12);
} }
Color c = r[idx].color; Color c = r[idx].color;
@ -1155,7 +1155,7 @@ void CPUParticles3D::_notification(int p_what) {
ptr[10] = t.basis.elements[2][2]; ptr[10] = t.basis.elements[2][2];
ptr[11] = t.origin.z; ptr[11] = t.origin.z;
} else { } else {
zeromem(ptr, sizeof(float) * 12); memset(ptr, 0, sizeof(float) * 12);
} }
ptr += 20; ptr += 20;

View File

@ -85,11 +85,11 @@ void SoftBodyRenderingServerHandler::commit_changes() {
} }
void SoftBodyRenderingServerHandler::set_vertex(int p_vertex_id, const void *p_vector3) { void SoftBodyRenderingServerHandler::set_vertex(int p_vertex_id, const void *p_vector3) {
copymem(&write_buffer[p_vertex_id * stride + offset_vertices], p_vector3, sizeof(float) * 3); memcpy(&write_buffer[p_vertex_id * stride + offset_vertices], p_vector3, sizeof(float) * 3);
} }
void SoftBodyRenderingServerHandler::set_normal(int p_vertex_id, const void *p_vector3) { void SoftBodyRenderingServerHandler::set_normal(int p_vertex_id, const void *p_vector3) {
copymem(&write_buffer[p_vertex_id * stride + offset_normal], p_vector3, sizeof(float) * 3); memcpy(&write_buffer[p_vertex_id * stride + offset_normal], p_vector3, sizeof(float) * 3);
} }
void SoftBodyRenderingServerHandler::set_aabb(const AABB &p_aabb) { void SoftBodyRenderingServerHandler::set_aabb(const AABB &p_aabb) {

View File

@ -123,7 +123,7 @@ Error HTTPRequest::request(const String &p_url, const Vector<String> &p_custom_h
size_t len = charstr.length(); size_t len = charstr.length();
raw_data.resize(len); raw_data.resize(len);
uint8_t *w = raw_data.ptrw(); uint8_t *w = raw_data.ptrw();
copymem(w, charstr.ptr(), len); memcpy(w, charstr.ptr(), len);
return request_raw(p_url, p_custom_headers, p_ssl_validate_domain, p_method, raw_data); return request_raw(p_url, p_custom_headers, p_ssl_validate_domain, p_method, raw_data);
} }

View File

@ -490,9 +490,9 @@ void AudioStreamSample::set_data(const Vector<uint8_t> &p_data) {
const uint8_t *r = p_data.ptr(); const uint8_t *r = p_data.ptr();
int alloc_len = datalen + DATA_PAD * 2; int alloc_len = datalen + DATA_PAD * 2;
data = memalloc(alloc_len); //alloc with some padding for interpolation data = memalloc(alloc_len); //alloc with some padding for interpolation
zeromem(data, alloc_len); memset(data, 0, alloc_len);
uint8_t *dataptr = (uint8_t *)data; uint8_t *dataptr = (uint8_t *)data;
copymem(dataptr + DATA_PAD, r, datalen); memcpy(dataptr + DATA_PAD, r, datalen);
data_bytes = datalen; data_bytes = datalen;
} }
@ -507,7 +507,7 @@ Vector<uint8_t> AudioStreamSample::get_data() const {
{ {
uint8_t *w = pv.ptrw(); uint8_t *w = pv.ptrw();
uint8_t *dataptr = (uint8_t *)data; uint8_t *dataptr = (uint8_t *)data;
copymem(w, dataptr + DATA_PAD, data_bytes); memcpy(w, dataptr + DATA_PAD, data_bytes);
} }
} }

View File

@ -39,7 +39,7 @@ void BitMap::create(const Size2 &p_size) {
width = p_size.width; width = p_size.width;
height = p_size.height; height = p_size.height;
bitmask.resize(((width * height) / 8) + 1); bitmask.resize(((width * height) / 8) + 1);
zeromem(bitmask.ptrw(), bitmask.size()); memset(bitmask.ptrw(), 0, bitmask.size());
} }
void BitMap::create_from_image_alpha(const Ref<Image> &p_image, float p_threshold) { void BitMap::create_from_image_alpha(const Ref<Image> &p_image, float p_threshold) {

View File

@ -1105,7 +1105,7 @@ void SurfaceTool::optimize_indices_for_cache() {
ERR_FAIL_COND(index_array.size() == 0); ERR_FAIL_COND(index_array.size() == 0);
LocalVector old_index_array = index_array; LocalVector old_index_array = index_array;
zeromem(index_array.ptr(), index_array.size() * sizeof(int)); memset(index_array.ptr(), 0, index_array.size() * sizeof(int));
optimize_vertex_cache_func((unsigned int *)index_array.ptr(), (unsigned int *)old_index_array.ptr(), old_index_array.size(), vertex_array.size()); optimize_vertex_cache_func((unsigned int *)index_array.ptr(), (unsigned int *)old_index_array.ptr(), old_index_array.size(), vertex_array.size());
} }

View File

@ -410,7 +410,7 @@ Ref<Image> StreamTexture2D::load_image_from_file(FileAccess *f, int p_size_limit
Vector<uint8_t> id = mipmap_images[i]->get_data(); Vector<uint8_t> id = mipmap_images[i]->get_data();
int len = id.size(); int len = id.size();
const uint8_t *r = id.ptr(); const uint8_t *r = id.ptr();
copymem(&wr[ofs], r, len); memcpy(&wr[ofs], r, len);
ofs += len; ofs += len;
} }
} }

View File

@ -86,13 +86,13 @@ ClusterBuilderSharedDataRD::ClusterBuilderSharedDataRD() {
Vector<uint8_t> vertex_data; Vector<uint8_t> vertex_data;
vertex_data.resize(sizeof(float) * icosphere_vertex_count * 3); vertex_data.resize(sizeof(float) * icosphere_vertex_count * 3);
copymem(vertex_data.ptrw(), icosphere_vertices, vertex_data.size()); memcpy(vertex_data.ptrw(), icosphere_vertices, vertex_data.size());
sphere_vertex_buffer = RD::get_singleton()->vertex_buffer_create(vertex_data.size(), vertex_data); sphere_vertex_buffer = RD::get_singleton()->vertex_buffer_create(vertex_data.size(), vertex_data);
Vector<uint8_t> index_data; Vector<uint8_t> index_data;
index_data.resize(sizeof(uint32_t) * icosphere_triangle_count * 3); index_data.resize(sizeof(uint32_t) * icosphere_triangle_count * 3);
copymem(index_data.ptrw(), icosphere_triangle_indices, index_data.size()); memcpy(index_data.ptrw(), icosphere_triangle_indices, index_data.size());
sphere_index_buffer = RD::get_singleton()->index_buffer_create(icosphere_triangle_count * 3, RD::INDEX_BUFFER_FORMAT_UINT32, index_data); sphere_index_buffer = RD::get_singleton()->index_buffer_create(icosphere_triangle_count * 3, RD::INDEX_BUFFER_FORMAT_UINT32, index_data);
@ -130,13 +130,13 @@ ClusterBuilderSharedDataRD::ClusterBuilderSharedDataRD() {
Vector<uint8_t> vertex_data; Vector<uint8_t> vertex_data;
vertex_data.resize(sizeof(float) * cone_vertex_count * 3); vertex_data.resize(sizeof(float) * cone_vertex_count * 3);
copymem(vertex_data.ptrw(), cone_vertices, vertex_data.size()); memcpy(vertex_data.ptrw(), cone_vertices, vertex_data.size());
cone_vertex_buffer = RD::get_singleton()->vertex_buffer_create(vertex_data.size(), vertex_data); cone_vertex_buffer = RD::get_singleton()->vertex_buffer_create(vertex_data.size(), vertex_data);
Vector<uint8_t> index_data; Vector<uint8_t> index_data;
index_data.resize(sizeof(uint32_t) * cone_triangle_count * 3); index_data.resize(sizeof(uint32_t) * cone_triangle_count * 3);
copymem(index_data.ptrw(), cone_triangle_indices, index_data.size()); memcpy(index_data.ptrw(), cone_triangle_indices, index_data.size());
cone_index_buffer = RD::get_singleton()->index_buffer_create(cone_triangle_count * 3, RD::INDEX_BUFFER_FORMAT_UINT32, index_data); cone_index_buffer = RD::get_singleton()->index_buffer_create(cone_triangle_count * 3, RD::INDEX_BUFFER_FORMAT_UINT32, index_data);
@ -184,13 +184,13 @@ ClusterBuilderSharedDataRD::ClusterBuilderSharedDataRD() {
Vector<uint8_t> vertex_data; Vector<uint8_t> vertex_data;
vertex_data.resize(sizeof(float) * box_vertex_count * 3); vertex_data.resize(sizeof(float) * box_vertex_count * 3);
copymem(vertex_data.ptrw(), box_vertices, vertex_data.size()); memcpy(vertex_data.ptrw(), box_vertices, vertex_data.size());
box_vertex_buffer = RD::get_singleton()->vertex_buffer_create(vertex_data.size(), vertex_data); box_vertex_buffer = RD::get_singleton()->vertex_buffer_create(vertex_data.size(), vertex_data);
Vector<uint8_t> index_data; Vector<uint8_t> index_data;
index_data.resize(sizeof(uint32_t) * box_triangle_count * 3); index_data.resize(sizeof(uint32_t) * box_triangle_count * 3);
copymem(index_data.ptrw(), box_triangle_indices, index_data.size()); memcpy(index_data.ptrw(), box_triangle_indices, index_data.size());
box_index_buffer = RD::get_singleton()->index_buffer_create(box_triangle_count * 3, RD::INDEX_BUFFER_FORMAT_UINT32, index_data); box_index_buffer = RD::get_singleton()->index_buffer_create(box_triangle_count * 3, RD::INDEX_BUFFER_FORMAT_UINT32, index_data);

View File

@ -226,7 +226,7 @@ RID EffectsRD::_get_compute_uniform_set_from_image_pair(RID p_texture1, RID p_te
} }
void EffectsRD::copy_to_atlas_fb(RID p_source_rd_texture, RID p_dest_framebuffer, const Rect2 &p_uv_rect, RD::DrawListID p_draw_list, bool p_flip_y, bool p_panorama) { void EffectsRD::copy_to_atlas_fb(RID p_source_rd_texture, RID p_dest_framebuffer, const Rect2 &p_uv_rect, RD::DrawListID p_draw_list, bool p_flip_y, bool p_panorama) {
zeromem(&copy_to_fb.push_constant, sizeof(CopyToFbPushConstant)); memset(&copy_to_fb.push_constant, 0, sizeof(CopyToFbPushConstant));
copy_to_fb.push_constant.use_section = true; copy_to_fb.push_constant.use_section = true;
copy_to_fb.push_constant.section[0] = p_uv_rect.position.x; copy_to_fb.push_constant.section[0] = p_uv_rect.position.x;
@ -247,7 +247,7 @@ void EffectsRD::copy_to_atlas_fb(RID p_source_rd_texture, RID p_dest_framebuffer
} }
void EffectsRD::copy_to_fb_rect(RID p_source_rd_texture, RID p_dest_framebuffer, const Rect2i &p_rect, bool p_flip_y, bool p_force_luminance, bool p_alpha_to_zero, bool p_srgb, RID p_secondary) { void EffectsRD::copy_to_fb_rect(RID p_source_rd_texture, RID p_dest_framebuffer, const Rect2i &p_rect, bool p_flip_y, bool p_force_luminance, bool p_alpha_to_zero, bool p_srgb, RID p_secondary) {
zeromem(&copy_to_fb.push_constant, sizeof(CopyToFbPushConstant)); memset(&copy_to_fb.push_constant, 0, sizeof(CopyToFbPushConstant));
if (p_flip_y) { if (p_flip_y) {
copy_to_fb.push_constant.flip_y = true; copy_to_fb.push_constant.flip_y = true;
@ -275,7 +275,7 @@ void EffectsRD::copy_to_fb_rect(RID p_source_rd_texture, RID p_dest_framebuffer,
} }
void EffectsRD::copy_to_rect(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y, bool p_force_luminance, bool p_all_source, bool p_8_bit_dst, bool p_alpha_to_one) { void EffectsRD::copy_to_rect(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y, bool p_force_luminance, bool p_all_source, bool p_8_bit_dst, bool p_alpha_to_one) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant)); memset(&copy.push_constant, 0, sizeof(CopyPushConstant));
if (p_flip_y) { if (p_flip_y) {
copy.push_constant.flags |= COPY_FLAG_FLIP_Y; copy.push_constant.flags |= COPY_FLAG_FLIP_Y;
} }
@ -309,7 +309,7 @@ void EffectsRD::copy_to_rect(RID p_source_rd_texture, RID p_dest_texture, const
} }
void EffectsRD::copy_cubemap_to_panorama(RID p_source_cube, RID p_dest_panorama, const Size2i &p_panorama_size, float p_lod, bool p_is_array) { void EffectsRD::copy_cubemap_to_panorama(RID p_source_cube, RID p_dest_panorama, const Size2i &p_panorama_size, float p_lod, bool p_is_array) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant)); memset(&copy.push_constant, 0, sizeof(CopyPushConstant));
copy.push_constant.section[0] = 0; copy.push_constant.section[0] = 0;
copy.push_constant.section[1] = 0; copy.push_constant.section[1] = 0;
@ -329,7 +329,7 @@ void EffectsRD::copy_cubemap_to_panorama(RID p_source_cube, RID p_dest_panorama,
} }
void EffectsRD::copy_depth_to_rect_and_linearize(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y, float p_z_near, float p_z_far) { void EffectsRD::copy_depth_to_rect_and_linearize(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y, float p_z_near, float p_z_far) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant)); memset(&copy.push_constant, 0, sizeof(CopyPushConstant));
if (p_flip_y) { if (p_flip_y) {
copy.push_constant.flags |= COPY_FLAG_FLIP_Y; copy.push_constant.flags |= COPY_FLAG_FLIP_Y;
} }
@ -353,7 +353,7 @@ void EffectsRD::copy_depth_to_rect_and_linearize(RID p_source_rd_texture, RID p_
} }
void EffectsRD::copy_depth_to_rect(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y) { void EffectsRD::copy_depth_to_rect(RID p_source_rd_texture, RID p_dest_texture, const Rect2i &p_rect, bool p_flip_y) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant)); memset(&copy.push_constant, 0, sizeof(CopyPushConstant));
if (p_flip_y) { if (p_flip_y) {
copy.push_constant.flags |= COPY_FLAG_FLIP_Y; copy.push_constant.flags |= COPY_FLAG_FLIP_Y;
} }
@ -375,7 +375,7 @@ void EffectsRD::copy_depth_to_rect(RID p_source_rd_texture, RID p_dest_texture,
} }
void EffectsRD::set_color(RID p_dest_texture, const Color &p_color, const Rect2i &p_region, bool p_8bit_dst) { void EffectsRD::set_color(RID p_dest_texture, const Color &p_color, const Rect2i &p_region, bool p_8bit_dst) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant)); memset(&copy.push_constant, 0, sizeof(CopyPushConstant));
copy.push_constant.section[0] = 0; copy.push_constant.section[0] = 0;
copy.push_constant.section[1] = 0; copy.push_constant.section[1] = 0;
@ -397,7 +397,7 @@ void EffectsRD::set_color(RID p_dest_texture, const Color &p_color, const Rect2i
} }
void EffectsRD::gaussian_blur(RID p_source_rd_texture, RID p_texture, RID p_back_texture, const Rect2i &p_region, bool p_8bit_dst) { void EffectsRD::gaussian_blur(RID p_source_rd_texture, RID p_texture, RID p_back_texture, const Rect2i &p_region, bool p_8bit_dst) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant)); memset(&copy.push_constant, 0, sizeof(CopyPushConstant));
uint32_t base_flags = 0; uint32_t base_flags = 0;
copy.push_constant.section[0] = p_region.position.x; copy.push_constant.section[0] = p_region.position.x;
@ -430,7 +430,7 @@ void EffectsRD::gaussian_blur(RID p_source_rd_texture, RID p_texture, RID p_back
} }
void EffectsRD::gaussian_glow(RID p_source_rd_texture, RID p_back_texture, const Size2i &p_size, float p_strength, bool p_high_quality, bool p_first_pass, float p_luminance_cap, float p_exposure, float p_bloom, float p_hdr_bleed_treshold, float p_hdr_bleed_scale, RID p_auto_exposure, float p_auto_exposure_grey) { void EffectsRD::gaussian_glow(RID p_source_rd_texture, RID p_back_texture, const Size2i &p_size, float p_strength, bool p_high_quality, bool p_first_pass, float p_luminance_cap, float p_exposure, float p_bloom, float p_hdr_bleed_treshold, float p_hdr_bleed_scale, RID p_auto_exposure, float p_auto_exposure_grey) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant)); memset(&copy.push_constant, 0, sizeof(CopyPushConstant));
CopyMode copy_mode = p_first_pass && p_auto_exposure.is_valid() ? COPY_MODE_GAUSSIAN_GLOW_AUTO_EXPOSURE : COPY_MODE_GAUSSIAN_GLOW; CopyMode copy_mode = p_first_pass && p_auto_exposure.is_valid() ? COPY_MODE_GAUSSIAN_GLOW_AUTO_EXPOSURE : COPY_MODE_GAUSSIAN_GLOW;
uint32_t base_flags = 0; uint32_t base_flags = 0;
@ -657,7 +657,7 @@ void EffectsRD::merge_specular(RID p_dest_framebuffer, RID p_specular, RID p_bas
} }
void EffectsRD::make_mipmap(RID p_source_rd_texture, RID p_dest_texture, const Size2i &p_size) { void EffectsRD::make_mipmap(RID p_source_rd_texture, RID p_dest_texture, const Size2i &p_size) {
zeromem(&copy.push_constant, sizeof(CopyPushConstant)); memset(&copy.push_constant, 0, sizeof(CopyPushConstant));
copy.push_constant.section[0] = 0; copy.push_constant.section[0] = 0;
copy.push_constant.section[1] = 0; copy.push_constant.section[1] = 0;
@ -694,7 +694,7 @@ void EffectsRD::copy_cubemap_to_dp(RID p_source_rd_texture, RID p_dst_framebuffe
} }
void EffectsRD::tonemapper(RID p_source_color, RID p_dst_framebuffer, const TonemapSettings &p_settings) { void EffectsRD::tonemapper(RID p_source_color, RID p_dst_framebuffer, const TonemapSettings &p_settings) {
zeromem(&tonemap.push_constant, sizeof(TonemapPushConstant)); memset(&tonemap.push_constant, 0, sizeof(TonemapPushConstant));
tonemap.push_constant.use_bcs = p_settings.use_bcs; tonemap.push_constant.use_bcs = p_settings.use_bcs;
tonemap.push_constant.bcs[0] = p_settings.brightness; tonemap.push_constant.bcs[0] = p_settings.brightness;
@ -1294,7 +1294,7 @@ void EffectsRD::roughness_limit(RID p_source_normal, RID p_roughness, const Size
} }
void EffectsRD::cubemap_roughness(RID p_source_rd_texture, RID p_dest_framebuffer, uint32_t p_face_id, uint32_t p_sample_count, float p_roughness, float p_size) { void EffectsRD::cubemap_roughness(RID p_source_rd_texture, RID p_dest_framebuffer, uint32_t p_face_id, uint32_t p_sample_count, float p_roughness, float p_size) {
zeromem(&roughness.push_constant, sizeof(CubemapRoughnessPushConstant)); memset(&roughness.push_constant, 0, sizeof(CubemapRoughnessPushConstant));
roughness.push_constant.face_id = p_face_id > 9 ? 0 : p_face_id; roughness.push_constant.face_id = p_face_id > 9 ? 0 : p_face_id;
roughness.push_constant.roughness = p_roughness; roughness.push_constant.roughness = p_roughness;
@ -1368,7 +1368,7 @@ void EffectsRD::cubemap_filter(RID p_source_cubemap, Vector<RID> p_dest_cubemap,
void EffectsRD::render_sky(RD::DrawListID p_list, float p_time, RID p_fb, RID p_samplers, RID p_fog, PipelineCacheRD *p_pipeline, RID p_uniform_set, RID p_texture_set, const CameraMatrix &p_camera, const Basis &p_orientation, float p_multiplier, const Vector3 &p_position) { void EffectsRD::render_sky(RD::DrawListID p_list, float p_time, RID p_fb, RID p_samplers, RID p_fog, PipelineCacheRD *p_pipeline, RID p_uniform_set, RID p_texture_set, const CameraMatrix &p_camera, const Basis &p_orientation, float p_multiplier, const Vector3 &p_position) {
SkyPushConstant sky_push_constant; SkyPushConstant sky_push_constant;
zeromem(&sky_push_constant, sizeof(SkyPushConstant)); memset(&sky_push_constant, 0, sizeof(SkyPushConstant));
sky_push_constant.proj[0] = p_camera.matrix[2][0]; sky_push_constant.proj[0] = p_camera.matrix[2][0];
sky_push_constant.proj[1] = p_camera.matrix[0][0]; sky_push_constant.proj[1] = p_camera.matrix[0][0];
@ -1510,7 +1510,7 @@ EffectsRD::EffectsRD() {
copy_modes.push_back("\n#define MODE_CUBEMAP_ARRAY_TO_PANORAMA\n"); copy_modes.push_back("\n#define MODE_CUBEMAP_ARRAY_TO_PANORAMA\n");
copy.shader.initialize(copy_modes); copy.shader.initialize(copy_modes);
zeromem(&copy.push_constant, sizeof(CopyPushConstant)); memset(&copy.push_constant, 0, sizeof(CopyPushConstant));
copy.shader_version = copy.shader.version_create(); copy.shader_version = copy.shader.version_create();
for (int i = 0; i < COPY_MODE_MAX; i++) { for (int i = 0; i < COPY_MODE_MAX; i++) {

View File

@ -2756,7 +2756,7 @@ void RenderForwardClustered::geometry_instance_set_lightmap_capture(GeometryInst
ginstance->lightmap_sh = geometry_instance_lightmap_sh.alloc(); ginstance->lightmap_sh = geometry_instance_lightmap_sh.alloc();
} }
copymem(ginstance->lightmap_sh->sh, p_sh9, sizeof(Color) * 9); memcpy(ginstance->lightmap_sh->sh, p_sh9, sizeof(Color) * 9);
} else { } else {
if (ginstance->lightmap_sh != nullptr) { if (ginstance->lightmap_sh != nullptr) {
geometry_instance_lightmap_sh.free(ginstance->lightmap_sh); geometry_instance_lightmap_sh.free(ginstance->lightmap_sh);

View File

@ -304,7 +304,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve
index_buffer.resize(p_indices.size() * sizeof(int32_t)); index_buffer.resize(p_indices.size() * sizeof(int32_t));
{ {
uint8_t *w = index_buffer.ptrw(); uint8_t *w = index_buffer.ptrw();
copymem(w, p_indices.ptr(), sizeof(int32_t) * p_indices.size()); memcpy(w, p_indices.ptr(), sizeof(int32_t) * p_indices.size());
} }
pb.index_buffer = RD::get_singleton()->index_buffer_create(p_indices.size(), RD::INDEX_BUFFER_FORMAT_UINT32, index_buffer); pb.index_buffer = RD::get_singleton()->index_buffer_create(p_indices.size(), RD::INDEX_BUFFER_FORMAT_UINT32, index_buffer);
pb.indices = RD::get_singleton()->index_array_create(pb.index_buffer, 0, p_indices.size()); pb.indices = RD::get_singleton()->index_array_create(pb.index_buffer, 0, p_indices.size());

View File

@ -1564,7 +1564,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region,
//clear dispatch indirect data //clear dispatch indirect data
SDFGIShader::PreprocessPushConstant push_constant; SDFGIShader::PreprocessPushConstant push_constant;
zeromem(&push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); memset(&push_constant, 0, sizeof(SDFGIShader::PreprocessPushConstant));
RENDER_TIMESTAMP("Scroll SDF"); RENDER_TIMESTAMP("Scroll SDF");
@ -2602,7 +2602,7 @@ void RendererSceneGIRD::GIProbeInstance::update(bool p_update_light_instances, c
p_scene_render->_render_material(to_world_xform * xform, cm, true, p_scene_render->cull_argument, dynamic_maps[0].fb, Rect2i(Vector2i(), rect.size)); p_scene_render->_render_material(to_world_xform * xform, cm, true, p_scene_render->cull_argument, dynamic_maps[0].fb, Rect2i(Vector2i(), rect.size));
GIProbeDynamicPushConstant push_constant; GIProbeDynamicPushConstant push_constant;
zeromem(&push_constant, sizeof(GIProbeDynamicPushConstant)); memset(&push_constant, 0, sizeof(GIProbeDynamicPushConstant));
push_constant.limits[0] = octree_size.x; push_constant.limits[0] = octree_size.x;
push_constant.limits[1] = octree_size.y; push_constant.limits[1] = octree_size.y;
push_constant.limits[2] = octree_size.z; push_constant.limits[2] = octree_size.z;

View File

@ -756,7 +756,7 @@ void RendererStorageRD::texture_3d_initialize(RID p_texture, Image::Format p_for
for (int i = 0; i < p_data.size(); i++) { for (int i = 0; i < p_data.size(); i++) {
uint32_t s = images[i]->get_data().size(); uint32_t s = images[i]->get_data().size();
copymem(&all_data.write[offset], images[i]->get_data().ptr(), s); memcpy(&all_data.write[offset], images[i]->get_data().ptr(), s);
{ {
Texture::BufferSlice3D slice; Texture::BufferSlice3D slice;
slice.size.width = images[i]->get_width(); slice.size.width = images[i]->get_width();
@ -919,7 +919,7 @@ void RendererStorageRD::texture_3d_update(RID p_texture, const Vector<Ref<Image>
for (int i = 0; i < p_data.size(); i++) { for (int i = 0; i < p_data.size(); i++) {
uint32_t s = images[i]->get_data().size(); uint32_t s = images[i]->get_data().size();
copymem(&all_data.write[offset], images[i]->get_data().ptr(), s); memcpy(&all_data.write[offset], images[i]->get_data().ptr(), s);
offset += s; offset += s;
} }
} }
@ -2108,13 +2108,13 @@ _FORCE_INLINE_ static void _fill_std140_ubo_empty(ShaderLanguage::DataType type,
case ShaderLanguage::TYPE_INT: case ShaderLanguage::TYPE_INT:
case ShaderLanguage::TYPE_UINT: case ShaderLanguage::TYPE_UINT:
case ShaderLanguage::TYPE_FLOAT: { case ShaderLanguage::TYPE_FLOAT: {
zeromem(data, 4); memset(data, 0, 4);
} break; } break;
case ShaderLanguage::TYPE_BVEC2: case ShaderLanguage::TYPE_BVEC2:
case ShaderLanguage::TYPE_IVEC2: case ShaderLanguage::TYPE_IVEC2:
case ShaderLanguage::TYPE_UVEC2: case ShaderLanguage::TYPE_UVEC2:
case ShaderLanguage::TYPE_VEC2: { case ShaderLanguage::TYPE_VEC2: {
zeromem(data, 8); memset(data, 0, 8);
} break; } break;
case ShaderLanguage::TYPE_BVEC3: case ShaderLanguage::TYPE_BVEC3:
case ShaderLanguage::TYPE_IVEC3: case ShaderLanguage::TYPE_IVEC3:
@ -2124,16 +2124,16 @@ _FORCE_INLINE_ static void _fill_std140_ubo_empty(ShaderLanguage::DataType type,
case ShaderLanguage::TYPE_IVEC4: case ShaderLanguage::TYPE_IVEC4:
case ShaderLanguage::TYPE_UVEC4: case ShaderLanguage::TYPE_UVEC4:
case ShaderLanguage::TYPE_VEC4: { case ShaderLanguage::TYPE_VEC4: {
zeromem(data, 16); memset(data, 0, 16);
} break; } break;
case ShaderLanguage::TYPE_MAT2: { case ShaderLanguage::TYPE_MAT2: {
zeromem(data, 32); memset(data, 0, 32);
} break; } break;
case ShaderLanguage::TYPE_MAT3: { case ShaderLanguage::TYPE_MAT3: {
zeromem(data, 48); memset(data, 0, 48);
} break; } break;
case ShaderLanguage::TYPE_MAT4: { case ShaderLanguage::TYPE_MAT4: {
zeromem(data, 64); memset(data, 0, 64);
} break; } break;
default: { default: {
@ -3412,10 +3412,10 @@ void RendererStorageRD::_multimesh_make_local(MultiMesh *multimesh) const {
Vector<uint8_t> buffer = RD::get_singleton()->buffer_get_data(multimesh->buffer); Vector<uint8_t> buffer = RD::get_singleton()->buffer_get_data(multimesh->buffer);
{ {
const uint8_t *r = buffer.ptr(); const uint8_t *r = buffer.ptr();
copymem(w, r, buffer.size()); memcpy(w, r, buffer.size());
} }
} else { } else {
zeromem(w, multimesh->instances * multimesh->stride_cache * sizeof(float)); memset(w, 0, multimesh->instances * multimesh->stride_cache * sizeof(float));
} }
} }
uint32_t data_cache_dirty_region_count = (multimesh->instances - 1) / MULTIMESH_DIRTY_REGION_SIZE + 1; uint32_t data_cache_dirty_region_count = (multimesh->instances - 1) / MULTIMESH_DIRTY_REGION_SIZE + 1;
@ -3771,7 +3771,7 @@ Vector<float> RendererStorageRD::multimesh_get_buffer(RID p_multimesh) const {
{ {
float *w = ret.ptrw(); float *w = ret.ptrw();
const uint8_t *r = buffer.ptr(); const uint8_t *r = buffer.ptr();
copymem(w, r, buffer.size()); memcpy(w, r, buffer.size());
} }
return ret; return ret;
@ -4068,7 +4068,7 @@ void RendererStorageRD::_particles_allocate_emission_buffer(Particles *particles
ERR_FAIL_COND(particles->emission_buffer != nullptr); ERR_FAIL_COND(particles->emission_buffer != nullptr);
particles->emission_buffer_data.resize(sizeof(ParticleEmissionBuffer::Data) * particles->amount + sizeof(uint32_t) * 4); particles->emission_buffer_data.resize(sizeof(ParticleEmissionBuffer::Data) * particles->amount + sizeof(uint32_t) * 4);
zeromem(particles->emission_buffer_data.ptrw(), particles->emission_buffer_data.size()); memset(particles->emission_buffer_data.ptrw(), 0, particles->emission_buffer_data.size());
particles->emission_buffer = (ParticleEmissionBuffer *)particles->emission_buffer_data.ptrw(); particles->emission_buffer = (ParticleEmissionBuffer *)particles->emission_buffer_data.ptrw();
particles->emission_buffer->particle_max = particles->amount; particles->emission_buffer->particle_max = particles->amount;
@ -5230,7 +5230,7 @@ void RendererStorageRD::skeleton_allocate_data(RID p_skeleton, int p_bones, bool
if (skeleton->size) { if (skeleton->size) {
skeleton->data.resize(skeleton->size * (skeleton->use_2d ? 8 : 12)); skeleton->data.resize(skeleton->size * (skeleton->use_2d ? 8 : 12));
skeleton->buffer = RD::get_singleton()->storage_buffer_create(skeleton->data.size() * sizeof(float)); skeleton->buffer = RD::get_singleton()->storage_buffer_create(skeleton->data.size() * sizeof(float));
zeromem(skeleton->data.ptrw(), skeleton->data.size() * sizeof(float)); memset(skeleton->data.ptrw(), 0, skeleton->data.size() * sizeof(float));
_skeleton_make_dirty(skeleton); _skeleton_make_dirty(skeleton);
@ -6872,7 +6872,7 @@ RID RendererStorageRD::render_target_get_sdf_texture(RID p_render_target) {
Vector<uint8_t> pv; Vector<uint8_t> pv;
pv.resize(16 * 4); pv.resize(16 * 4);
zeromem(pv.ptrw(), 16 * 4); memset(pv.ptrw(), 0, 16 * 4);
Vector<Vector<uint8_t>> vpv; Vector<Vector<uint8_t>> vpv;
rt->sdf_buffer_read = RD::get_singleton()->texture_create(tformat, RD::TextureView(), vpv); rt->sdf_buffer_read = RD::get_singleton()->texture_create(tformat, RD::TextureView(), vpv);
@ -7359,7 +7359,7 @@ void RendererStorageRD::_update_decal_atlas() {
v_offsetsv.resize(base_size); v_offsetsv.resize(base_size);
int *v_offsets = v_offsetsv.ptrw(); int *v_offsets = v_offsetsv.ptrw();
zeromem(v_offsets, sizeof(int) * base_size); memset(v_offsets, 0, sizeof(int) * base_size);
int max_height = 0; int max_height = 0;
@ -8115,7 +8115,7 @@ void RendererStorageRD::_update_global_variables() {
if (total_regions / global_variables.buffer_dirty_region_count <= 4) { if (total_regions / global_variables.buffer_dirty_region_count <= 4) {
// 25% of regions dirty, just update all buffer // 25% of regions dirty, just update all buffer
RD::get_singleton()->buffer_update(global_variables.buffer, 0, sizeof(GlobalVariables::Value) * global_variables.buffer_size, global_variables.buffer_values); RD::get_singleton()->buffer_update(global_variables.buffer, 0, sizeof(GlobalVariables::Value) * global_variables.buffer_size, global_variables.buffer_values);
zeromem(global_variables.buffer_dirty_regions, sizeof(bool) * total_regions); memset(global_variables.buffer_dirty_regions, 0, sizeof(bool) * total_regions);
} else { } else {
uint32_t region_byte_size = sizeof(GlobalVariables::Value) * GlobalVariables::BUFFER_DIRTY_REGION_SIZE; uint32_t region_byte_size = sizeof(GlobalVariables::Value) * GlobalVariables::BUFFER_DIRTY_REGION_SIZE;
@ -8403,10 +8403,10 @@ RendererStorageRD::RendererStorageRD() {
global_variables.buffer_size = GLOBAL_GET("rendering/limits/global_shader_variables/buffer_size"); global_variables.buffer_size = GLOBAL_GET("rendering/limits/global_shader_variables/buffer_size");
global_variables.buffer_size = MAX(4096, global_variables.buffer_size); global_variables.buffer_size = MAX(4096, global_variables.buffer_size);
global_variables.buffer_values = memnew_arr(GlobalVariables::Value, global_variables.buffer_size); global_variables.buffer_values = memnew_arr(GlobalVariables::Value, global_variables.buffer_size);
zeromem(global_variables.buffer_values, sizeof(GlobalVariables::Value) * global_variables.buffer_size); memset(global_variables.buffer_values, 0, sizeof(GlobalVariables::Value) * global_variables.buffer_size);
global_variables.buffer_usage = memnew_arr(GlobalVariables::ValueUsage, global_variables.buffer_size); global_variables.buffer_usage = memnew_arr(GlobalVariables::ValueUsage, global_variables.buffer_size);
global_variables.buffer_dirty_regions = memnew_arr(bool, global_variables.buffer_size / GlobalVariables::BUFFER_DIRTY_REGION_SIZE); global_variables.buffer_dirty_regions = memnew_arr(bool, global_variables.buffer_size / GlobalVariables::BUFFER_DIRTY_REGION_SIZE);
zeromem(global_variables.buffer_dirty_regions, sizeof(bool) * global_variables.buffer_size / GlobalVariables::BUFFER_DIRTY_REGION_SIZE); memset(global_variables.buffer_dirty_regions, 0, sizeof(bool) * global_variables.buffer_size / GlobalVariables::BUFFER_DIRTY_REGION_SIZE);
global_variables.buffer = RD::get_singleton()->storage_buffer_create(sizeof(GlobalVariables::Value) * global_variables.buffer_size); global_variables.buffer = RD::get_singleton()->storage_buffer_create(sizeof(GlobalVariables::Value) * global_variables.buffer_size);
material_update_list = nullptr; material_update_list = nullptr;

View File

@ -349,7 +349,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
for (int i = 0; i < p_vertex_array_len; i++) { for (int i = 0; i < p_vertex_array_len; i++) {
float vector[2] = { src[i].x, src[i].y }; float vector[2] = { src[i].x, src[i].y };
copymem(&vw[p_offsets[ai] + i * p_vertex_stride], vector, sizeof(float) * 2); memcpy(&vw[p_offsets[ai] + i * p_vertex_stride], vector, sizeof(float) * 2);
if (i == 0) { if (i == 0) {
aabb = Rect2(src[i], SMALL_VEC2); //must have a bit of size aabb = Rect2(src[i], SMALL_VEC2); //must have a bit of size
@ -374,7 +374,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
for (int i = 0; i < p_vertex_array_len; i++) { for (int i = 0; i < p_vertex_array_len; i++) {
float vector[3] = { src[i].x, src[i].y, src[i].z }; float vector[3] = { src[i].x, src[i].y, src[i].z };
copymem(&vw[p_offsets[ai] + i * p_vertex_stride], vector, sizeof(float) * 3); memcpy(&vw[p_offsets[ai] + i * p_vertex_stride], vector, sizeof(float) * 3);
if (i == 0) { if (i == 0) {
aabb = AABB(src[i], SMALL_VEC3); aabb = AABB(src[i], SMALL_VEC3);
@ -403,7 +403,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
value |= CLAMP(int(n.y * 1023.0), 0, 1023) << 10; value |= CLAMP(int(n.y * 1023.0), 0, 1023) << 10;
value |= CLAMP(int(n.z * 1023.0), 0, 1023) << 20; value |= CLAMP(int(n.z * 1023.0), 0, 1023) << 20;
copymem(&vw[p_offsets[ai] + i * p_vertex_stride], &value, 4); memcpy(&vw[p_offsets[ai] + i * p_vertex_stride], &value, 4);
} }
} break; } break;
@ -424,7 +424,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
value |= CLAMP(int((src[i * 4 + 2] * 0.5 + 0.5) * 1023.0), 0, 1023) << 20; value |= CLAMP(int((src[i * 4 + 2] * 0.5 + 0.5) * 1023.0), 0, 1023) << 20;
value |= CLAMP(int((src[i * 4 + 3] * 0.5 + 0.5) * 3.0), 0, 3) << 30; value |= CLAMP(int((src[i * 4 + 3] * 0.5 + 0.5) * 3.0), 0, 3) << 30;
copymem(&vw[p_offsets[ai] + i * p_vertex_stride], &value, 4); memcpy(&vw[p_offsets[ai] + i * p_vertex_stride], &value, 4);
} }
} break; } break;
@ -442,7 +442,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
color16[1] = Math::make_half_float(src[i].g); color16[1] = Math::make_half_float(src[i].g);
color16[2] = Math::make_half_float(src[i].b); color16[2] = Math::make_half_float(src[i].b);
color16[3] = Math::make_half_float(src[i].a); color16[3] = Math::make_half_float(src[i].a);
copymem(&aw[p_offsets[ai] + i * p_attrib_stride], color16, 8); memcpy(&aw[p_offsets[ai] + i * p_attrib_stride], color16, 8);
} }
} break; } break;
case RS::ARRAY_TEX_UV: { case RS::ARRAY_TEX_UV: {
@ -457,7 +457,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
for (int i = 0; i < p_vertex_array_len; i++) { for (int i = 0; i < p_vertex_array_len; i++) {
float uv[2] = { src[i].x, src[i].y }; float uv[2] = { src[i].x, src[i].y };
copymem(&aw[p_offsets[ai] + i * p_attrib_stride], uv, 2 * 4); memcpy(&aw[p_offsets[ai] + i * p_attrib_stride], uv, 2 * 4);
} }
} break; } break;
@ -473,7 +473,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
for (int i = 0; i < p_vertex_array_len; i++) { for (int i = 0; i < p_vertex_array_len; i++) {
uint16_t uv[2] = { Math::make_half_float(src[i].x), Math::make_half_float(src[i].y) }; uint16_t uv[2] = { Math::make_half_float(src[i].x), Math::make_half_float(src[i].y) };
copymem(&aw[p_offsets[ai] + i * p_attrib_stride], uv, 2 * 2); memcpy(&aw[p_offsets[ai] + i * p_attrib_stride], uv, 2 * 2);
} }
} break; } break;
case RS::ARRAY_CUSTOM0: case RS::ARRAY_CUSTOM0:
@ -495,7 +495,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
const uint8_t *src = array.ptr(); const uint8_t *src = array.ptr();
for (int i = 0; i < p_vertex_array_len; i++) { for (int i = 0; i < p_vertex_array_len; i++) {
copymem(&aw[p_offsets[ai] + i * p_attrib_stride], &src[i * 4], 4); memcpy(&aw[p_offsets[ai] + i * p_attrib_stride], &src[i * 4], 4);
} }
} break; } break;
@ -510,7 +510,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
const uint8_t *src = array.ptr(); const uint8_t *src = array.ptr();
for (int i = 0; i < p_vertex_array_len; i++) { for (int i = 0; i < p_vertex_array_len; i++) {
copymem(&aw[p_offsets[ai] + i * p_attrib_stride], &src[i * 8], 8); memcpy(&aw[p_offsets[ai] + i * p_attrib_stride], &src[i * 8], 8);
} }
} break; } break;
case ARRAY_CUSTOM_R_FLOAT: case ARRAY_CUSTOM_R_FLOAT:
@ -528,7 +528,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
const float *src = array.ptr(); const float *src = array.ptr();
for (int i = 0; i < p_vertex_array_len; i++) { for (int i = 0; i < p_vertex_array_len; i++) {
copymem(&aw[p_offsets[ai] + i * p_attrib_stride], &src[i * s], 4 * s); memcpy(&aw[p_offsets[ai] + i * p_attrib_stride], &src[i * s], 4 * s);
} }
} break; } break;
default: { default: {
@ -554,7 +554,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
data[j] = CLAMP(src[i * bone_count + j] * 65535, 0, 65535); data[j] = CLAMP(src[i * bone_count + j] * 65535, 0, 65535);
} }
copymem(&sw[p_offsets[ai] + i * p_skin_stride], data, 2 * bone_count); memcpy(&sw[p_offsets[ai] + i * p_skin_stride], data, 2 * bone_count);
} }
} }
@ -578,7 +578,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
max_bone = MAX(data[j], max_bone); max_bone = MAX(data[j], max_bone);
} }
copymem(&sw[p_offsets[ai] + i * p_skin_stride], data, 2 * bone_count); memcpy(&sw[p_offsets[ai] + i * p_skin_stride], data, 2 * bone_count);
} }
} break; } break;
@ -600,11 +600,11 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
if (p_vertex_array_len < (1 << 16)) { if (p_vertex_array_len < (1 << 16)) {
uint16_t v = src[i]; uint16_t v = src[i];
copymem(&iw[i * 2], &v, 2); memcpy(&iw[i * 2], &v, 2);
} else { } else {
uint32_t v = src[i]; uint32_t v = src[i];
copymem(&iw[i * 4], &v, 4); memcpy(&iw[i * 4], &v, 4);
} }
} }
} break; } break;
@ -1172,7 +1172,7 @@ Array RenderingServer::_get_array_from_surface(uint32_t p_format, Vector<uint8_t
for (int j = 0; j < p_vertex_len; j++) { for (int j = 0; j < p_vertex_len; j++) {
const uint8_t *v = (const uint8_t *)&ar[j * attrib_elem_size + offsets[i]]; const uint8_t *v = (const uint8_t *)&ar[j * attrib_elem_size + offsets[i]];
copymem(&w[j * s], v, s); memcpy(&w[j * s], v, s);
} }
ret[i] = arr; ret[i] = arr;
@ -1189,7 +1189,7 @@ Array RenderingServer::_get_array_from_surface(uint32_t p_format, Vector<uint8_t
for (int j = 0; j < p_vertex_len; j++) { for (int j = 0; j < p_vertex_len; j++) {
const float *v = (const float *)&ar[j * attrib_elem_size + offsets[i]]; const float *v = (const float *)&ar[j * attrib_elem_size + offsets[i]];
copymem(&w[j * s], v, s * sizeof(float)); memcpy(&w[j * s], v, s * sizeof(float));
} }
ret[i] = arr; ret[i] = arr;

View File

@ -211,7 +211,7 @@ public:
ERR_FAIL_COND_V(err != OK, err); ERR_FAIL_COND_V(err != OK, err);
ERR_FAIL_COND_V(p_len < r_read, ERR_OUT_OF_MEMORY); ERR_FAIL_COND_V(p_len < r_read, ERR_OUT_OF_MEMORY);
copymem(p_buffer, buffer, r_read); memcpy(p_buffer, buffer, r_read);
r_ip = udp->get_packet_address(); r_ip = udp->get_packet_address();
r_port = udp->get_packet_port(); r_port = udp->get_packet_port();
return err; return err;
@ -315,7 +315,7 @@ public:
Vector<String> s = E->key().rsplit(":", false, 1); Vector<String> s = E->key().rsplit(":", false, 1);
ERR_CONTINUE(s.size() != 2); // BUG! ERR_CONTINUE(s.size() != 2); // BUG!
copymem(p_buffer, buffer, r_read); memcpy(p_buffer, buffer, r_read);
r_ip = s[0]; r_ip = s[0];
r_port = s[1].to_int(); r_port = s[1].to_int();
break; // err = OK break; // err = OK