From ce31e41ab7d612d024ca1dfbdf519176436ea13a Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 26 Oct 2025 12:51:20 +0100 Subject: [PATCH] dtoolbase: Work around macOS compiler bug with empty vector Observed with macOS 15.4 SDK when passed two equal pointers to vector_uchar --- dtool/src/dtoolbase/pvector.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dtool/src/dtoolbase/pvector.h b/dtool/src/dtoolbase/pvector.h index be60897d21..7561047add 100644 --- a/dtool/src/dtoolbase/pvector.h +++ b/dtool/src/dtoolbase/pvector.h @@ -51,7 +51,13 @@ public: pvector(pvector &&from) noexcept : base_class(std::move(from)) {}; explicit pvector(size_type n, TypeHandle type_handle = pvector_type_handle) : base_class(n, Type(), allocator(type_handle)) { } explicit pvector(size_type n, const Type &value, TypeHandle type_handle = pvector_type_handle) : base_class(n, value, allocator(type_handle)) { } +#ifdef __APPLE__ + pvector(const Type *begin, const Type *end, TypeHandle type_handle = pvector_type_handle) : base_class(allocator(type_handle)) { + this->insert(this->end(), begin, end); + } +#else pvector(const Type *begin, const Type *end, TypeHandle type_handle = pvector_type_handle) : base_class(begin, end, allocator(type_handle)) { } +#endif pvector(std::initializer_list init, TypeHandle type_handle = pvector_type_handle) : base_class(std::move(init), allocator(type_handle)) { } pvector &operator =(const pvector ©) {