stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Farid Zaripov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-587) purify reports memory leak from __rw_tmpbuf in 20.temp.buffer.mt
Date Tue, 23 Oct 2007 17:17:51 GMT

    [ https://issues.apache.org/jira/browse/STDCXX-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12537081
] 

Farid Zaripov commented on STDCXX-587:
--------------------------------------

Since rw_opt_nloops is just a counter, how about the following patch?

-----------------
Index: 20.temp.buffer.mt.cpp
===================================================================
--- 20.temp.buffer.mt.cpp	(revision 587473)
+++ 20.temp.buffer.mt.cpp	(working copy)
@@ -48,7 +48,7 @@
 #endif
 
 /* extern */ unsigned rw_opt_nthreads = 4 <= MAX_THREADS ? 4 : MAX_THREADS;
-/* extern */ unsigned rw_opt_nloops   = 1024 * 1024;
+/* extern */ unsigned rw_opt_nloops   = 128 * 1024;
 
 /**************************************************************************/
 
@@ -142,7 +142,7 @@
     std::pair<_RWSTD_INT32_T*, std::ptrdiff_t> buf2;
     std::pair<Type64*,         std::ptrdiff_t> buf3;
 
-    for (unsigned i = 0; i != rw_opt_nloops; ++i) {
+    for (unsigned i = 0; i != rw_opt_nloops * 8; ++i) {
 
         const unsigned nelems = (i + targs->threadno_) % 32;
-----------------


> purify reports memory leak from __rw_tmpbuf in 20.temp.buffer.mt
> ----------------------------------------------------------------
>
>                 Key: STDCXX-587
>                 URL: https://issues.apache.org/jira/browse/STDCXX-587
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>            Reporter: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-587.patch
>
>
> Each test thread iterates some number of times switching on a counter. If the last iteration
runs one of the allocation functions, the temporary buffer will not be deallocated when the
thread exits.
> Purify: Searching for all memory leaks...
> Memory leaked: 42 bytes (6.98%); potentially leaked: 0 bytes (0%)
> MLK: 24 bytes leaked at 0x81089d0
>   * This memory was allocated from:
>     malloc         [rtlib.o]
>     operator new(unsigned) [libstd15d.so]
>     __rw::__rw_allocate(unsigned, int) [memory.cpp:53]
>     __rw_tmpbuf    [tmpbuf.cpp:115]
>     std::pair<long long*, int > std::get_temporary_buffer<long long, int >(int,
long long*) [_rawiter.h:138]
>     std::pair<long long*, int > std::get_temporary_buffer<long long>(int)
[_rawiter.h:153]
> MLK: 18 bytes leaked at 0x8108a38
>   * This memory was allocated from:
>     malloc         [rtlib.o]
>     operator new(unsigned) [libstd15d.so]
>     __rw::__rw_allocate(unsigned, int) [memory.cpp:53]
>     __rw_tmpbuf    [tmpbuf.cpp:115]
>     std::pair<short*, int > std::get_temporary_buffer<short, int >(int, short*)
[_rawiter.h:138]
>     std::pair<short*, int > std::get_temporary_buffer<short>(int) [_rawiter.h:153]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message