2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
[gcc.git] / libstdc++-v3 / include / parallel / multiway_merge.h
index 1c73ad0042db8b93acbc8c57483c9b25fad9bfa0..a5fd3be1bd08e859ab9ea0636e6b9102277f96d4 100644 (file)
@@ -1045,12 +1045,11 @@ namespace __gnu_parallel
        _ValueType;
 
       // __k sequences.
-      const _SeqNumber __k
-       = static_cast<_SeqNumber>(__seqs_end - __seqs_begin);
+      _SeqNumber __k = static_cast<_SeqNumber>(__seqs_end - __seqs_begin);
 
-      const _ThreadIndex __num_threads = omp_get_num_threads();
+      _ThreadIndex __num_threads = omp_get_num_threads();
 
-      const _DifferenceType __num_samples =
+      _DifferenceType __num_samples =
        __gnu_parallel::_Settings::get().merge_oversampling * __num_threads;
 
       _ValueType* __samples = static_cast<_ValueType*>
@@ -1097,10 +1096,6 @@ namespace __gnu_parallel
              __pieces[__slab][__seq].second =
                _GLIBCXX_PARALLEL_LENGTH(__seqs_begin[__seq]);
          }
-
-      for (_SeqNumber __s = 0; __s < __k; ++__s)
-       for (_DifferenceType __i = 0; __i < __num_samples; ++__i)
-         __samples[__s * __num_samples + __i].~_ValueType();
       ::operator delete(__samples);
     }
 
@@ -1263,10 +1258,10 @@ namespace __gnu_parallel
        __length = std::min<_DifferenceTp>(__length, __total_length);
 
        if (__total_length == 0 || __k == 0)
-         {
-           delete[] __ne_seqs;
-           return __target;
-         }
+       {
+          delete[] __ne_seqs;
+          return __target;
+       }
 
        std::vector<std::pair<_DifferenceType, _DifferenceType> >* __pieces;