Author: faridz
Date: Wed Oct 24 05:25:41 2007
New Revision: 587876

URL: http://svn.apache.org/viewvc?rev=587876&view=rev
Log:
2007-10-24 Farid Zaripov <[EMAIL PROTECTED]>

        Merged r587873 from branches/4.2.x with a fix for STDCXX-587
        * 20.temp.buffer.mt.cpp (test_return_buffer): Set buffer pointer
        to 0 after deallocating.
        (thr_func): Provide default values for buffers. Deallocate buffers
        that remain allocated after thread loop.

Modified:
    incubator/stdcxx/trunk/tests/utilities/20.temp.buffer.mt.cpp

Modified: incubator/stdcxx/trunk/tests/utilities/20.temp.buffer.mt.cpp
URL: 
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/utilities/20.temp.buffer.mt.cpp?rev=587876&r1=587875&r2=587876&view=diff
==============================================================================
--- incubator/stdcxx/trunk/tests/utilities/20.temp.buffer.mt.cpp (original)
+++ incubator/stdcxx/trunk/tests/utilities/20.temp.buffer.mt.cpp Wed Oct 24 
05:25:41 2007
@@ -117,6 +117,7 @@
     assert (len == buf.second * sizeof (T));
 
     std::return_temporary_buffer<T>(buf.first);
+    buf.first = 0;
 }
 
 /**************************************************************************/
@@ -137,10 +138,10 @@
 
 #endif   // _RWSTD_INT64_T
 
-    std::pair<_RWSTD_INT8_T*,  std::ptrdiff_t> buf0;
-    std::pair<_RWSTD_INT16_T*, std::ptrdiff_t> buf1;
-    std::pair<_RWSTD_INT32_T*, std::ptrdiff_t> buf2;
-    std::pair<Type64*,         std::ptrdiff_t> buf3;
+    std::pair<_RWSTD_INT8_T*,  std::ptrdiff_t> buf0 (0, 0);
+    std::pair<_RWSTD_INT16_T*, std::ptrdiff_t> buf1 (0, 0);
+    std::pair<_RWSTD_INT32_T*, std::ptrdiff_t> buf2 (0, 0);
+    std::pair<Type64*,         std::ptrdiff_t> buf3 (0, 0);
 
     for (unsigned i = 0; i != rw_opt_nloops; ++i) {
 
@@ -181,6 +182,12 @@
             break;
         }
     }
+
+    // free any buffers that remain allocated
+    if (buf0.first) test_return_buffer (targs, buf0);
+    if (buf1.first) test_return_buffer (targs, buf1);
+    if (buf2.first) test_return_buffer (targs, buf2);
+    if (buf3.first) test_return_buffer (targs, buf3);
 
     return 0;
 }


Reply via email to