Re: Free Info
| From: | Rasmus Lerdorf | Date: | Thu, 01 Jan 1970 00:00:00 +0000 |
| Subject: | Re: Free Info | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-2776@lists.php.net to get a copy of this message | ||
> 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
--
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