problem with php api

aotto1968 <[email protected]> Wed, 31 May 2023 10:22:21 +0200
Newsgroups comp.lang.php
Organization A noiseless patient Spider
Message-ID <[email protected]>
Hi,

the following code fails if shared library is loaded with dl()

 >>>>>
...
PHP_MINIT_FUNCTION(phpmkkernel)
{
#if defined(ZTS) && defined(COMPILE_DL_PHPMKKERNEL)
   ZEND_TSRMLS_CACHE_UPDATE();
#endif

#if defined(ZTS)
...
#endif

   /* If you have INI entries, uncomment these lines
   REGISTER_INI_ENTRIES();
   */

   return LibMkKernel_MInit     (INIT_FUNC_ARGS_PASSTHRU)  ;
}


static ZEND_RESULT_CODE LibMkKernel_MInit (INIT_FUNC_ARGS) {
...
   MK(MkErrorE) = zend_register_internal_enum("PhpMsgque\\MkKernel\\MkErrorE", IS_LONG, NULL);
   zend_enum_add_case_cstr(MK(MkErrorE), "OK", OT_TMP_INT_OBJ(0));
   zend_enum_add_case_cstr(MK(MkErrorE), "CONTINUE", OT_TMP_INT_OBJ(1));
   zend_enum_add_case_cstr(MK(MkErrorE), "ERROR", OT_TMP_INT_OBJ(2));
...
   return SUCCESS;
}
<<<<<

the problem is an assert in create_enum_case_ast

    ZEND_ASSERT(ZSTR_IS_INTERNED(class_name));

if shared library is loaded with "extension" in php.ini than it is fine

    extension="..."


question: what I have to do ?

mfg ao