This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Debug unordered containers code cleanup


On 10/23/2018 11:52 AM, Jonathan Wakely wrote:
On 22/10/18 22:45 +0200, François Dumont wrote:
I plan to commit the attached patch this week if not told otherwise.

Looks good.


This is to generalize usage of C++11 direct initialization in unordered containers.

It also avoids a number of safe iterator instantiations.

Would the following patch also make sense?

--- a/libstdc++-v3/include/debug/safe_unordered_container.h
+++ b/libstdc++-v3/include/debug/safe_unordered_container.h
@@ -66,18 +66,18 @@ namespace __gnu_debug
      void
      _M_invalidate_locals()
      {
-       auto __local_end = _M_cont()._M_base().end(0);
+       auto __local_end = _M_cont()._M_base().cend(0);
       this->_M_invalidate_local_if(
- [__local_end](__decltype(_M_cont()._M_base().cend(0)) __it)
+               [__local_end](__decltype(__local_end) __it)
               { return __it != __local_end; });
      }

      void
      _M_invalidate_all()
      {
-       auto __end = _M_cont()._M_base().end();
+       auto __end = _M_cont()._M_base().cend();
       this->_M_invalidate_if(
-               [__end](__decltype(_M_cont()._M_base().cend()) __it)
+               [__end](__decltype(__end) __it)
               { return __it != __end; });
       _M_invalidate_locals();
      }
@@ -92,7 +92,7 @@ namespace __gnu_debug

      /** Invalidates all local iterators @c x that reference this container,
         are not singular, and for which @c __pred(x) returns @c
-         true. @c __pred will be invoked with the normal ilocal iterators
+         true. @c __pred will be invoked with the normal local iterators
         nested in the safe ones. */
      template<typename _Predicate>
       void



Yes, looks like a nice cleanup too.

I'll integrate it in mine and commit all the changes once tests are completed.

François


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]