Skip to content

Commit

Permalink
Merge pull request #1211 from adamscott/fix-deprecated-builtins-clang
Browse files Browse the repository at this point in the history
Fix Clang deprecated builtins
  • Loading branch information
akien-mga authored Aug 16, 2023
2 parents df55005 + 5c26284 commit 524bbd3
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions include/godot_cpp/templates/cowdata.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@

#include <cstring>
#include <new>
#include <type_traits>

namespace godot {

Expand Down Expand Up @@ -210,9 +211,9 @@ void CowData<T>::_unref(void *p_data) {
if (refc->decrement() > 0) {
return; // still in use
}
// clean up

if (!__has_trivial_destructor(T)) {
// clean up
if (std::is_trivially_destructible<T>::value) {
uint32_t *count = _get_size();
T *data = (T *)(count + 1);

Expand Down Expand Up @@ -247,7 +248,7 @@ uint32_t CowData<T>::_copy_on_write() {
T *_data = (T *)(mem_new);

// initialize new elements
if (__has_trivial_copy(T)) {
if (std::is_trivially_copyable<T>::value) {
memcpy(mem_new, _ptr, current_size * sizeof(T));

} else {
Expand Down Expand Up @@ -310,7 +311,7 @@ Error CowData<T>::resize(int p_size) {

// construct the newly created elements

if (!__has_trivial_constructor(T)) {
if (!std::is_trivially_constructible<T>::value) {
T *elems = _get_data();

for (int i = *_get_size(); i < p_size; i++) {
Expand All @@ -321,7 +322,7 @@ Error CowData<T>::resize(int p_size) {
*_get_size() = p_size;

} else if (p_size < current_size) {
if (!__has_trivial_destructor(T)) {
if (!std::is_trivially_destructible<T>::value) {
// deinitialize no longer needed elements
for (uint32_t i = p_size; i < *_get_size(); i++) {
T *t = &_get_data()[i];
Expand Down

0 comments on commit 524bbd3

Please sign in to comment.