diff options
Diffstat (limited to 'meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch')
-rw-r--r-- | meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch new file mode 100644 index 0000000000..acb96f40d5 --- /dev/null +++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch @@ -0,0 +1,63 @@ +From 787d5052a6034cc722b073c652cc610ae037f933 Mon Sep 17 00:00:00 2001 +From: Levi Tamasi <ltamasi@fb.com> +Date: Fri, 22 Nov 2019 18:12:35 -0800 +Subject: [PATCH 1/2] Fix the constness issues around + autovector::iterator_impl's dereference operators (#6057) + +Summary: +As described in detail in issue https://github.com/facebook/rocksdb/issues/6048, iterators' dereference operators +(`*`, `->`, and `[]`) should return `pointer`s/`reference`s (as opposed to +`const_pointer`s/`const_reference`s) even if the iterator itself is `const` +to be in sync with the standard's iterator concept. +Pull Request resolved: https://github.com/facebook/rocksdb/pull/6057 + +Test Plan: make check + +Differential Revision: D18623235 + +Pulled By: ltamasi + +fbshipit-source-id: 04e82d73bc0c67fb0ded018383af8dfc332050cc +--- + thirdparty/rocksdb/util/autovector.h | 15 ++++----------- + 1 file changed, 4 insertions(+), 11 deletions(-) + +diff --git a/thirdparty/rocksdb/util/autovector.h b/thirdparty/rocksdb/util/autovector.h +index b5c84712..6d337908 100644 +--- a/thirdparty/rocksdb/util/autovector.h ++++ b/thirdparty/rocksdb/util/autovector.h +@@ -120,27 +120,20 @@ class autovector { + } + + // -- Reference +- reference operator*() { ++ reference operator*() const { + assert(vect_->size() >= index_); + return (*vect_)[index_]; + } + +- const_reference operator*() const { +- assert(vect_->size() >= index_); +- return (*vect_)[index_]; +- } +- +- pointer operator->() { ++ pointer operator->() const { + assert(vect_->size() >= index_); + return &(*vect_)[index_]; + } + +- const_pointer operator->() const { +- assert(vect_->size() >= index_); +- return &(*vect_)[index_]; ++ reference operator[](difference_type len) const { ++ return *(*this + len); + } + +- + // -- Logical Operators + bool operator==(const self_type& other) const { + assert(vect_ == other.vect_); +-- +2.41.0 + |