[C++-sig] Memory leak when using return_internal_reference !?

gideon may gideon at computer.org
Wed Jun 4 20:07:10 CEST 2003


Hi Dave,

I'm experiencing a memory leak when using the return_internal_reference 
policy.

It's probably best explained using the the test_pointer_adoption_ext module 
and a
little test program :

----------- leak.py -----------------

from test_pointer_adoption_ext import *

a = create("leak")
while 1:
    innards = a.get_inner()
    innards = None
    print ".",
--------------------------------------

When running this program, there is a serious memory leak. When I take out
the line 'innards = a.get_inner()' everything is OK.
I tried to hunt it down and it seems that life_support system created
in life_support.cpp is never deleted, i.e. life_support_dealloc is never 
called.

Do you have any idea what could be the problem ?

I'm using return_internal_reference quite extensively and couldn't live
without it :-)

ciao,

gideon




More information about the Cplusplus-sig mailing list