You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Farid Zaripov (JIRA)" <ji...@apache.org> on 2007/10/23 19:17:51 UTC
[jira] Commented: (STDCXX-587) purify reports memory leak from
__rw_tmpbuf in 20.temp.buffer.mt
[ 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.