@@ -53,10 +53,6 @@ static bool php_libxml_initialized = false;
53
53
static bool php_libxml_per_request_initialization = true;
54
54
static xmlExternalEntityLoader php_libxml_default_entity_loader ;
55
55
56
- typedef struct php_libxml_func_handler {
57
- php_libxml_export_node export_func ;
58
- } php_libxml_func_handler ;
59
-
60
56
static HashTable php_libxml_exports ;
61
57
62
58
static ZEND_DECLARE_MODULE_GLOBALS (libxml )
@@ -901,11 +897,6 @@ PHP_LIBXML_API void php_libxml_error_handler(void *ctx, const char *msg, ...)
901
897
va_end (args );
902
898
}
903
899
904
- static void php_libxml_exports_dtor (zval * zv )
905
- {
906
- free (Z_PTR_P (zv ));
907
- }
908
-
909
900
PHP_LIBXML_API void php_libxml_initialize (void )
910
901
{
911
902
if (!php_libxml_initialized ) {
@@ -917,7 +908,7 @@ PHP_LIBXML_API void php_libxml_initialize(void)
917
908
php_libxml_default_entity_loader = xmlGetExternalEntityLoader ();
918
909
xmlSetExternalEntityLoader (php_libxml_pre_ext_ent_loader );
919
910
920
- zend_hash_init (& php_libxml_exports , 0 , NULL , php_libxml_exports_dtor , 1 );
911
+ zend_hash_init (& php_libxml_exports , 0 , NULL , NULL , 1 );
921
912
922
913
php_libxml_initialized = true;
923
914
}
@@ -1273,13 +1264,10 @@ bool php_libxml_xmlCheckUTF8(const unsigned char *s)
1273
1264
1274
1265
zval * php_libxml_register_export (const zend_class_entry * ce , php_libxml_export_node export_function )
1275
1266
{
1276
- php_libxml_func_handler export_hnd ;
1277
-
1278
1267
/* Initialize in case this module hasn't been loaded yet */
1279
1268
php_libxml_initialize ();
1280
- export_hnd .export_func = export_function ;
1281
1269
1282
- return zend_hash_add_mem (& php_libxml_exports , ce -> name , & export_hnd , sizeof ( export_hnd ) );
1270
+ return zend_hash_add_ptr (& php_libxml_exports , ce -> name , export_function );
1283
1271
}
1284
1272
1285
1273
PHP_LIBXML_API xmlNodePtr php_libxml_import_node (zval * object )
@@ -1291,9 +1279,9 @@ PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object)
1291
1279
while (ce -> parent != NULL ) {
1292
1280
ce = ce -> parent ;
1293
1281
}
1294
- const php_libxml_func_handler * export_hnd = zend_hash_find_ptr (& php_libxml_exports , ce -> name );
1295
- if (export_hnd ) {
1296
- node = export_hnd -> export_func (object );
1282
+ const php_libxml_export_node export_function = zend_hash_find_ptr (& php_libxml_exports , ce -> name );
1283
+ if (export_function ) {
1284
+ node = export_function (object );
1297
1285
}
1298
1286
}
1299
1287
return node ;
0 commit comments