Re: Free Info
| From: | Steve Williams | Date: | Fri, 11 Dec 1998 15:02:25 +0000 |
| Subject: | Re: Free Info | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-2777@lists.php.net to get a copy of this message | ||
Rasmus Lerdorf wrote:
>
> > Freeing 80c6cf8 (8 bytes), allocated in ðj
> >
> > on line 1799<br>
> > Freeing 80c0558 (8 bytes), allocated in functions/unified_odbc.c on line
> > 1799<br>
> >
> >
> > The first Freeing statement looks as if the memory is screwed up - is
> > this a valid assumption?
>
> Looks like it. But it would be safe to assume that it should have said
> functions/unified_odbc.c. What is happening on line 1799 there?
>
> Basically what you are dealing with here is PHP's memory manager. The
> emalloc() and related functions are used to request a block of memory from
> PHP's memory manager. It does not necessarily have to be freed since the
> memory manager will free it when the request terminates to ensure that
> there will be no memory leaks. However, things allocated with emalloc(),
> estrdrup(), etc. should be freed by calling efree(). If something is not
> efreed()'ed you get the above warning. It is saying that an 8 byte chunk
> of memory was allocated on line 1799 and was never freed'ed before request
> shutdown and that the memory manager is freeing it.
>
> So, what you need to look at is what you are allocating here and where
> this bit of memory should logically be freed'ed. It may not be the actual
> cause of your problems, but it might point you in the right direction and
> it should definitely be fixed.
>
> -Rasmus
>
1799 is allocation of a connection handle. Persistent handles are
allocated using malloc,
none-persistent handles are allocated using emalloc. I have discovered
one place where the deallocation for a none-persistent handle uses free
instead of efree (line 1868). Changing this gets rid of the debug
message, but this doesn't solve the problem :-(
Steve
--
Steve Williams Interactive Media & Tools Group
Empress Software Inc. http://www.empress.com
--
PHP Development Mailing List http://www.php.net/
To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net
For help: php-dev-help@lists.php.net