diff --git a/src/common/CvtFormat.cpp b/src/common/CvtFormat.cpp index 25e911b3881..997cec2136a 100644 --- a/src/common/CvtFormat.cpp +++ b/src/common/CvtFormat.cpp @@ -1348,7 +1348,7 @@ namespace break; } if (strOffset >= strLength) - cb->err(Arg::Gds(isc_data_for_format_is_exhausted) << string(it->patternStr.data())); + cb->err(Arg::Gds(isc_data_for_format_is_exhausted) << string(it->patternStr)); std::string_view patternStr = it->patternStr; diff --git a/src/common/classes/fb_string.h b/src/common/classes/fb_string.h index 657da3fe054..9090e54bf53 100644 --- a/src/common/classes/fb_string.h +++ b/src/common/classes/fb_string.h @@ -691,26 +691,28 @@ namespace Firebird } public: StringBase() noexcept : AbstractString(Comparator::getMaxLength()) {} - StringBase(const StringType& v) : AbstractString(Comparator::getMaxLength(), v) {} - StringBase(const void* s, size_type n) : AbstractString(Comparator::getMaxLength(), n, s) {} - StringBase(const_pointer s) : - AbstractString(Comparator::getMaxLength(), s ? length(s) : 0, s) {} - explicit StringBase(const unsigned char* s) : - AbstractString(Comparator::getMaxLength(), length((char*) s), (char*) s) {} - StringBase(const MetaString& v) : AbstractString(Comparator::getMaxLength(), v) {} - StringBase(size_type n, char_type c) : AbstractString(Comparator::getMaxLength(), n, c) {} - StringBase(const_iterator first, const_iterator last) : - AbstractString(Comparator::getMaxLength(), last - first, first) {} - explicit StringBase(MemoryPool& p) noexcept : AbstractString(Comparator::getMaxLength(), p) {} - StringBase(MemoryPool& p, const AbstractString& v) : AbstractString(Comparator::getMaxLength(), p, v) {} - StringBase(MemoryPool& p, const_pointer s) : - AbstractString(Comparator::getMaxLength(), p, s, s ? length(s) : 0) {} - StringBase(MemoryPool& p, const char_type* s, size_type l) : - AbstractString(Comparator::getMaxLength(), p, s, l) {} - StringBase(StringType&& rhs) : - AbstractString(Comparator::getMaxLength(), std::forward(rhs)) {} - StringBase(MemoryPool& p, StringType&& rhs) : - AbstractString(Comparator::getMaxLength(), p, std::forward(rhs)) {} + StringBase(const StringType& v) : AbstractString(Comparator::getMaxLength(), v) {} + StringBase(const void* s, size_type n) : AbstractString(Comparator::getMaxLength(), n, s) {} + StringBase(const_pointer s) : + AbstractString(Comparator::getMaxLength(), s ? length(s) : 0, s) {} + StringBase(std::string_view sv) : + AbstractString(Comparator::getMaxLength(), static_cast(sv.length()), sv.data()) {} + explicit StringBase(const unsigned char* s) : + AbstractString(Comparator::getMaxLength(), length((char*) s), (char*) s) {} + StringBase(const MetaString& v) : AbstractString(Comparator::getMaxLength(), v) {} + StringBase(size_type n, char_type c) : AbstractString(Comparator::getMaxLength(), n, c) {} + StringBase(const_iterator first, const_iterator last) : + AbstractString(Comparator::getMaxLength(), last - first, first) {} + explicit StringBase(MemoryPool& p) noexcept : AbstractString(Comparator::getMaxLength(), p) {} + StringBase(MemoryPool& p, const AbstractString& v) : AbstractString(Comparator::getMaxLength(), p, v) {} + StringBase(MemoryPool& p, const_pointer s) : + AbstractString(Comparator::getMaxLength(), p, s, s ? length(s) : 0) {} + StringBase(MemoryPool& p, const char_type* s, size_type l) : + AbstractString(Comparator::getMaxLength(), p, s, l) {} + StringBase(StringType&& rhs) : + AbstractString(Comparator::getMaxLength(), std::forward(rhs)) {} + StringBase(MemoryPool& p, StringType&& rhs) : + AbstractString(Comparator::getMaxLength(), p, std::forward(rhs)) {} static size_type max_length() noexcept { diff --git a/src/jrd/btr.cpp b/src/jrd/btr.cpp index 1efc404c7f0..4a903ccbb31 100644 --- a/src/jrd/btr.cpp +++ b/src/jrd/btr.cpp @@ -6428,7 +6428,7 @@ static ULONG insert_node(thread_db* tdbb, // For checking on duplicate nodes we should find the first matching key. UCHAR* pointer = find_node_start_point(bucket, key, 0, &prefix, idx->idx_flags & idx_descending, - false, true, validateDuplicates ? NO_VALUE : newRecordNumber); + 0, true, validateDuplicates ? NO_VALUE : newRecordNumber); if (!pointer) return NO_VALUE_PAGE; @@ -7235,8 +7235,8 @@ static contents remove_leaf_node(thread_db* tdbb, index_insertion* insertion, WI UCHAR* pointer; USHORT prefix; while (!(pointer = find_node_start_point(page, key, 0, &prefix, - (idx->idx_flags & idx_descending), - false, false, + idx->idx_flags & idx_descending, + 0, false, (validateDuplicates ? NO_VALUE : insertion->iib_number)))) { page = (btree_page*) CCH_HANDOFF(tdbb, window, page->btr_sibling, LCK_write, pag_index);