Problem destroying class constants
| From: | Cristiano Duarte | Date: | Sat, 04 Oct 2003 20:20:29 +0000 |
| Subject: | Problem destroying class constants | ||
| Groups: | php.pecl.dev | ||
| Request: | Send a blank email to pecl-dev+get-92@lists.php.net to get a copy of this message | ||
Hi PECL !
I'm developing a CORBA extension in C++ for PHP5 and I got stuck with a
segmentation fault at the very ending of the script. I gdb'ed it and found
out that the problem is zend_hash_destroy trying to destroy the class
constants hashtable that I declared. So that's my code. Can somebody tell me
what I'm doing wrong ?
void zend_register_org_omg_corba_tckind(TSRMLS_D)
{
zend_class_entry org_omg_corba_tckind;
zval *z_aux;
INIT_CLASS_ENTRY(org_omg_corba_tckind, "org__omg__corba__tckind",
org_omg_corba_tckind_functions);
org_omg_corba_tckind.name_length = strlen("org__omg__corba__tckind");
org_omg_corba_tckind_ptr =
zend_register_internal_class(&org_omg_corba_tckind TSRMLS_CC);
org_omg_corba_tckind_ptr->ce_flags = ZEND_ACC_ABSTRACT;
ZEND_INIT_SYMTABLE(&org_omg_corba_tckind_ptr->constants_table);
int l = sizeof(org_omg_corba_tckind::tc) /
sizeof(org_omg_corba_tckind::tc_item);
for (int i=0; i < l; ++i) {
MAKE_STD_ZVAL(z_aux);
ZVAL_LONG(z_aux, (long)org_omg_corba_tckind::tc[i].value);
ZEND_SET_SYMBOL(&org_omg_corba_tckind_ptr->constants_table,
org_omg_corba_tckind::tc[i].name, z_aux);
}
}
GDB reports this(at the end):
-----------------------------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 23553)]
zend_hash_destroy (ht=0x82b3cd4) at
/usr/src/zend2/php-src/Zend/zend_hash.c:511
511 p = p->pListNext;
org_omg_corba_tckind_ptr->constants_table is @0x82b3cd4
Best regards,
Cristiano Duarte