[C++-sig] Memory Leaks In VS.NET 2003 With BOOST_PYTHON_MODULE
Ralf W. Grosse-Kunstleve
rwgk at yahoo.com
Thu Oct 13 17:59:14 CEST 2005
--- mjkeyes at sbcglobal.net wrote:
> Hey again, I'm back.
Hi Arnold! :)
> Here is some pseudo-code of what I'm doing:
Could you please turn this into a self-contained reproducer? Please explain
exactly how you compile and link. Note that you have to be very careful to not
mix debug and release builds under Windows.
> class A
> {
> public:
> void SetString(const std::string &sVal)
> {
> m_sString = sVal; <--- Memory leak
I am doing things like this all the time and I am sure it doesn't leak for me.
> }
>
> void DoStuff()
> {
> SetString(msc_sString);
> }
> protected:
> static const std::string msc_sString;
> }
Probably a side issue: do you really want "static" here?
>
> class B
> {
> public:
> object CreateClassA()
> {
> return object(new CreateClassA()); <---- memory leak
What is this? Does this even compile?
In any event, of course you get a memory leak if you use new like that.
Ideally, you don't have any "unencapsulated" new in your code. Always use
boost::shared_ptr<T>(new T) or std::auto_ptr<>(new T) or any other smart
pointer.
> Any suggestions? I'm not getting any errors from the interpreter.
We need a complete reproducer.
Cheers,
Ralf
__________________________________
Yahoo! Music Unlimited
Access over 1 million songs. Try it free.
http://music.yahoo.com/unlimited/
More information about the Cplusplus-sig
mailing list