2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
[gcc.git] / libstdc++-v3 / include / parallel / multiway_mergesort.h
index 80267f923b5554a4f54fae70c8fdd42a4f2060af..2cb8013876699d06f787dbab162ca79a4919e600 100644 (file)
@@ -378,8 +378,6 @@ namespace __gnu_parallel
 
 #     pragma omp barrier
 
-      for (_DifferenceType __i = 0; __i < __length_local; ++__i)
-       __sd->_M_temporary[__iam][__i].~_ValueType();
       ::operator delete(__sd->_M_temporary[__iam]);
     }
 
@@ -415,7 +413,6 @@ namespace __gnu_parallel
       // shared variables
       _PMWMSSortingData<_RAIter> __sd;
       _DifferenceType* __starts;
-      _DifferenceType __size;
 
 #     pragma omp parallel num_threads(__num_threads)
       {
@@ -430,7 +427,7 @@ namespace __gnu_parallel
 
          if (!__exact)
            {
-             __size =
+             _DifferenceType __size =
                (_Settings::get().sort_mwms_oversampling * __num_threads - 1)
                * __num_threads;
              __sd._M_samples = static_cast<_ValueType*>
@@ -466,11 +463,7 @@ namespace __gnu_parallel
       delete[] __sd._M_temporary;
 
       if (!__exact)
-       {
-         for (_DifferenceType __i = 0; __i < __size; ++__i)
-           __sd._M_samples[__i].~_ValueType();
-         ::operator delete(__sd._M_samples);
-       }
+       ::operator delete(__sd._M_samples);
 
       delete[] __sd._M_offsets;
       delete[] __sd._M_pieces;