Merge pull request #63906 from Faless/fix/4.x_warnings
This commit is contained in:
commit
57aac04480
7 changed files with 26 additions and 21 deletions
|
|
@ -36,6 +36,7 @@
|
|||
#include "core/templates/safe_refcount.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <type_traits>
|
||||
|
||||
template <class T>
|
||||
class Vector;
|
||||
|
|
@ -205,7 +206,7 @@ void CowData<T>::_unref(void *p_data) {
|
|||
}
|
||||
// clean up
|
||||
|
||||
if (!__has_trivial_destructor(T)) {
|
||||
if (!std::is_trivially_destructible<T>::value) {
|
||||
uint32_t *count = _get_size();
|
||||
T *data = (T *)(count + 1);
|
||||
|
||||
|
|
@ -240,7 +241,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 {
|
||||
|
|
@ -304,7 +305,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) {
|
||||
for (int i = *_get_size(); i < p_size; i++) {
|
||||
memnew_placement(&_ptr[i], T);
|
||||
}
|
||||
|
|
@ -315,7 +316,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 = &_ptr[i];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue