registering object constants leaking memory.

From: Date: Thu, 07 Apr 2005 15:10:53 +0000
Subject: registering object constants leaking memory.
Groups: php.internals 
Request: Send a blank email to internals+get-15895@lists.php.net to get a copy of this message
I'm using the code below to register object constants, however I'm getting a memory leak on the line shown.. , any ideas how to avoid this? /var/svn_live/dbdo/dbdo.c(401) : Freeing 0x0860FC34 (16 bytes), script=examples/info.php #define hash_add_assoc_long(__arg, __key, __val) hash_add_assoc_long_ex(__arg, __key, strlen(__key)+1, __val) int hash_add_assoc_long_ex(HashTable *arg, char *key, uint key_len, long n) { zval *tmp; MAKE_STD_ZVAL(tmp); // <-- 401 leaking here. ZVAL_LONG(tmp, n); return zend_symtable_update(arg, key, key_len, (void *) &tmp, sizeof(zval *), NULL); } PHP_RINIT_FUNCTION(dbdo) { ..... zend_hash_init(&dbdo_class_entry_ce->constants_table, 0, NULL, NULL, 1); /* fetch all returns */ hash_add_assoc_long(&(dbdo_class_entry_ce->constants_table), "OBJECTS", 0); hash_add_assoc_long(&(dbdo_class_entry_ce->constants_table), "KEY_VALUE", 1); hash_add_assoc_long(&(dbdo_class_entry_ce->constants_table), "VALUE", 2); hash_add_assoc_long(&(dbdo_class_entry_ce->constants_table), "SINGLE", 3); /* update/delete build or use fetchedobject. */ hash_add_assoc_long(&(dbdo_class_entry_ce->constants_table), "BUILD", 1); /* error constants */ hash_add_assoc_long(&(dbdo_class_entry_ce->constants_table), "E_ALL", 3); hash_add_assoc_long(&(dbdo_class_entry_ce->constants_table), "E_FULL", 63); ....

« previous php.internals (#15895) next »