From f6eea9486ae1935017f42d1f89005ddafb0bd53a Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Thu, 25 Jan 2018 10:52:02 -0800 Subject: Changes imported from Abseil "staging" branch: - a74a7e9027e3f90835ae0f553f98be294781da18 Internal change by Abseil Team - 2d32db6ed063f93b67886b9c27602d5aea3c21f7 Add /D_SCL_SECURE_NO_WARNINGS to MSVC builds to disable c... by Jon Cohen - 54f40318d1de67b6b25f8aa68343f8bbcde8c304 Use sized delete in FixedArray. by Chris Kennelly - 193f50b3500ab1a102a00df4e05ad7b969e9337b Fixes some warnings that show up during builds with msvc. by Greg Miller GitOrigin-RevId: a74a7e9027e3f90835ae0f553f98be294781da18 Change-Id: I6d2b1f496974a1399ca5db6b71274368c2699a59 --- CMakeLists.txt | 2 +- absl/base/internal/spinlock.h | 2 +- absl/container/fixed_array.h | 8 ++------ absl/container/fixed_array_test.cc | 1 + absl/types/any.h | 1 + 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c65805e..9d32623 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ if (MSVC) # /wd4267 conversion from 'size_t' to 'type2' # /wd4800 force value to bool 'true' or 'false' (performance warning) add_compile_options(/W3 /WX /wd4005 /wd4068 /wd4244 /wd4267 /wd4800) - add_definitions(/DNOMINMAX /DWIN32_LEAN_AND_MEAN=1 /D_CRT_SECURE_NO_WARNINGS) + add_definitions(/DNOMINMAX /DWIN32_LEAN_AND_MEAN=1 /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS) else() set(ABSL_STD_CXX_FLAG "-std=c++11" CACHE STRING "c++ std flag (default: c++11)") endif() diff --git a/absl/base/internal/spinlock.h b/absl/base/internal/spinlock.h index a9037e3..212abc6 100644 --- a/absl/base/internal/spinlock.h +++ b/absl/base/internal/spinlock.h @@ -227,7 +227,7 @@ inline uint32_t SpinLock::TryLockInternal(uint32_t lock_value, kSpinLockHeld | lock_value | wait_cycles | sched_disabled_bit, std::memory_order_acquire, std::memory_order_relaxed)) { } else { - base_internal::SchedulingGuard::EnableRescheduling(sched_disabled_bit); + base_internal::SchedulingGuard::EnableRescheduling(sched_disabled_bit != 0); } return lock_value; diff --git a/absl/container/fixed_array.h b/absl/container/fixed_array.h index 1fec9d2..b92d905 100644 --- a/absl/container/fixed_array.h +++ b/absl/container/fixed_array.h @@ -458,7 +458,7 @@ class FixedArray { // Loop optimizes to nothing for trivially destructible T. for (Holder* p = end(); p != begin();) (--p)->~Holder(); if (IsAllocated(size())) { - ::operator delete[](begin()); + std::allocator().deallocate(p_, n_); } else { this->AnnotateDestruct(size()); } @@ -470,17 +470,13 @@ class FixedArray { private: Holder* MakeHolder(size_type n) { if (IsAllocated(n)) { - return Allocate(n); + return std::allocator().allocate(n); } else { this->AnnotateConstruct(n); return this->data(); } } - Holder* Allocate(size_type n) { - return static_cast(::operator new[](n * sizeof(Holder))); - } - bool IsAllocated(size_type n) const { return n > inline_elements; } const size_type n_; diff --git a/absl/container/fixed_array_test.cc b/absl/container/fixed_array_test.cc index b6782f5..2142132 100644 --- a/absl/container/fixed_array_test.cc +++ b/absl/container/fixed_array_test.cc @@ -504,6 +504,7 @@ struct PickyDelete { TEST(FixedArrayTest, UsesGlobalAlloc) { absl::FixedArray a(5); } + TEST(FixedArrayTest, Data) { static const int kInput[] = { 2, 3, 5, 7, 11, 13, 17 }; absl::FixedArray fa(std::begin(kInput), std::end(kInput)); diff --git a/absl/types/any.h b/absl/types/any.h index 2e7bf21..cee9cd3 100644 --- a/absl/types/any.h +++ b/absl/types/any.h @@ -373,6 +373,7 @@ class any { return typeid(void); } #endif // ABSL_ANY_DETAIL_HAS_RTTI + private: // Tagged type-erased abstraction for holding a cloneable object. class ObjInterface { -- cgit v1.2.3