From: | Lee Kindness <lkindness(at)csl(dot)co(dot)uk> |
---|---|
To: | Christof Petig <christof(at)petig-baender(dot)de> |
Cc: | Michael Meskes <meskes(at)postgresql(dot)org>, Lee Kindness <lkindness(at)csl(dot)co(dot)uk>, PostgreSQL Interfaces <pgsql-interfaces(at)postgresql(dot)org>, Mark Aves <maves(at)csl(dot)co(dot)uk>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [INTERFACES] ECPG: FETCH ALL|n FROM cursor - Memory allocation? |
Date: | 2002-05-06 10:24:36 |
Message-ID: | 15574.23012.920919.499183@kelvin.csl.co.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-interfaces |
Okay, lets see if i've got this right...
If I allocate the memory before the FETCH then I (naturally) free
it. However If I NULL initialise the pointer then libecpg will
allocate the memory and I must NOT free it - libecpg will free it
automatically... Yeah?
I think this highlights the need for some documentation on this
aspect.
Regards, Lee Kindness.
Christof Petig writes:
> Michael Meskes wrote:
> > On Thu, Apr 25, 2002 at 12:42:00PM +0100, Lee Kindness wrote:
> >>Should the input pointers be NULL initialised? How should the memory
> >>be freed?
> >
> >
> > A simple free() will do. You also can free all automatically
> > allocated memory from the most recent executed statement by calling
> > ECPGfree_auto_mem(). But this is not documented and will never be.
> >
> > The correct way is to free(array1) and free(array2) while libecpg will
> > free the internal structures when the next statement is executed.
>
> Never, never mix these two! ECPGfree_auto_mem will free even memory
> which has already been free'd by the user, perhaps we should get rid of
> this method (any allocated memory regions are stored in a list, if you
> never call ECPGfree_auto_mem, this list grows and grows).
>
> Christof
>
From | Date | Subject | |
---|---|---|---|
Next Message | Hannu Krosing | 2002-05-06 10:48:32 | Re: Native Windows, Apache Portable Runtime |
Previous Message | Cyril VELTER | 2002-05-06 08:21:37 | Re: Native Windows, Apache Portable Runtime |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Meskes | 2002-05-06 10:59:58 | Re: [INTERFACES] ECPG: FETCH ALL|n FROM cursor - Memory allocation? |
Previous Message | Kenny Carruthers | 2002-05-06 07:53:47 | Using C functions with triggers |