diff --git a/ext/com_dotnet/com_typeinfo.c b/ext/com_dotnet/com_typeinfo.c index 28306b5609b08..fb6173dd131ca 100644 --- a/ext/com_dotnet/com_typeinfo.c +++ b/ext/com_dotnet/com_typeinfo.c @@ -184,7 +184,6 @@ PHP_COM_DOTNET_API zend_result php_com_import_typelib(ITypeLib *TL, int mode, in VARDESC *pVarDesc; UINT NameCount; BSTR bstr_ids; - zend_constant c; zval *exists, results, value; if (TL == NULL) { @@ -224,16 +223,13 @@ PHP_COM_DOTNET_API zend_result php_com_import_typelib(ITypeLib *TL, int mode, in /* register the constant */ if (Z_TYPE(value) == IS_LONG) { - ZEND_CONSTANT_SET_FLAGS(&c, mode, 0); - ZVAL_LONG(&c.value, Z_LVAL(value)); - if (mode & CONST_PERSISTENT) { - /* duplicate string in a persistent manner */ - c.name = zend_string_dup(const_name, /* persistent */ true); - zend_string_release_ex(const_name, /* persistent */ false); - } else { - c.name = const_name; - } - zend_register_constant(&c); + zend_register_long_constant( + ZSTR_VAL(const_name), + ZSTR_LEN(const_name), + Z_LVAL(value), + mode, + 0 + ); } ITypeInfo_ReleaseVarDesc(TypeInfo, pVarDesc); }