incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-578) purify reports mismatched new/delete in facet implementation.
Date Thu, 11 Oct 2007 17:21:51 GMT

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

Martin Sebor commented on STDCXX-578:
-------------------------------------

Could you add a comment to the code explaining why we're using operator new() instead of the
new expression so someone doesn't accidentally revert your change in the future? (I would
be tempted to use the simpler new expression and avoid the cast.)

> purify reports mismatched new/delete in facet implementation.
> -------------------------------------------------------------
>
>                 Key: STDCXX-578
>                 URL: https://issues.apache.org/jira/browse/STDCXX-578
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 22. Localization
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-578.patch
>
>
> ****  Purify instrumented ./stocks (pid 19642)  ****
> FMM: Freeing mismatched memory:
>   * This is occurring while in thread 19642:
>     operator delete(*) [rtlib.o]
>     __rw::__rw_facet::~__rw_facet[not-in-charge]() [facet.cpp:139]
>     std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char>
> >::~time_put[not-in-charge]() [_time_put.h:105]
>     std::time_put_byname<char, std::ostreambuf_iterator<char, std::char_traits<char>
> >::~time_put_byname[in-charge deleting]() [ti_time_put.cpp:105]
>     __rw::__rw_facet::_C_manage(__rw::__rw_facet*, __rw::__rw_facet::_C_facet_type, char
const*, __rw::__rw_facet*  (*)(unsigned, char const*)) [facet.cpp:427]
>     __rw::__rw_locale::~__rw_locale[in-charge]() [locale_body.cpp:692]
>   * Attempting to free block at 0x80f3fe0 in the heap.
>   * Address 0x80f3fe0 is at the beginning of a malloc'd block of 2452 bytes.
>   * This block was allocated from thread -1207973632:
>     malloc         [rtlib.o]
>     operator new(unsigned) [libstd15d.so]
>     operator new [](unsigned) [libstd15d.so]
>     __rw::__rw_get_timepunct(__rw::__rw_facet const*, int, unsigned) [time_put.cpp:454]
>     __rw::__rw_get_time_put_data(__rw::__rw_time_put_data&, __rw::__rw_facet const*,
tm const*, char, char, bool) [time_put.cpp:2115]
>     __rw::__rw_put_time(__rw::__rw_facet const*, char*, unsigned, std::ios_base&,
char, tm const*, char, char, int, int) [time_put.cpp:2666]
>   * This block of memory was obtained using an allocation routine which is
>     not compatible with the routine by which it is being freed.
> Memory is allocated with array new, but deallocated with operator delete.

-- 
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