From ff1e0821d1174428dd70331bd864de1334ab0567 Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Thu, 30 Apr 2015 12:36:39 +0400 Subject: [PATCH] MDEV-8073 - Build error in sql/mdl.cc on OS X 10.10 C++03 seem to require default constructor for const objects even though they're fully initialized. There is defect report for this: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253 Apparently some compilers (e.g. gcc) addressed this defect report, while some (e.g. clang) did not. Added empty default constructor to MDL_scoped_lock and MDL_object_lock classes. Also replaced lf_hash_search_using_hash_value() with lf_hash_search(). The latter will call mdl_key->hash_value() anyway. --- sql/mdl.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sql/mdl.cc b/sql/mdl.cc index fcb03d61fab..55e39d0ee0a 100644 --- a/sql/mdl.cc +++ b/sql/mdl.cc @@ -346,6 +346,7 @@ public: */ struct MDL_scoped_lock : public MDL_lock_strategy { + MDL_scoped_lock() {} virtual const bitmap_t *incompatible_granted_types_bitmap() const { return m_granted_incompatible; } virtual const bitmap_t *incompatible_waiting_types_bitmap() const @@ -382,6 +383,7 @@ public: */ struct MDL_object_lock : public MDL_lock_strategy { + MDL_object_lock() {} virtual const bitmap_t *incompatible_granted_types_bitmap() const { return m_granted_incompatible; } virtual const bitmap_t *incompatible_waiting_types_bitmap() const @@ -741,8 +743,8 @@ MDL_lock* MDL_map::find_or_insert(LF_PINS *pins, const MDL_key *mdl_key) } retry: - while (!(lock= (MDL_lock*) lf_hash_search_using_hash_value(&m_locks, pins, - mdl_key->hash_value(), mdl_key->ptr(), mdl_key->length()))) + while (!(lock= (MDL_lock*) lf_hash_search(&m_locks, pins, mdl_key->ptr(), + mdl_key->length()))) if (lf_hash_insert(&m_locks, pins, (uchar*) mdl_key) == -1) return NULL; @@ -780,10 +782,8 @@ MDL_map::get_lock_owner(LF_PINS *pins, const MDL_key *mdl_key) } else { - lock= (MDL_lock*) lf_hash_search_using_hash_value(&m_locks, pins, - mdl_key->hash_value(), - mdl_key->ptr(), - mdl_key->length()); + lock= (MDL_lock*) lf_hash_search(&m_locks, pins, mdl_key->ptr(), + mdl_key->length()); if (lock) { /*