File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -2208,13 +2208,30 @@ ZEND_API int zend_get_module_started(const char *module_name) /* {{{ */
2208
2208
}
2209
2209
/* }}} */
2210
2210
2211
+ static int clean_module_class (const zend_class_entry * * ce , int * module_number TSRMLS_DC ) /* {{{ */
2212
+ {
2213
+ if ((* ce )-> type == ZEND_INTERNAL_CLASS && (* ce )-> module -> module_number == * module_number ) {
2214
+ return ZEND_HASH_APPLY_REMOVE ;
2215
+ } else {
2216
+ return ZEND_HASH_APPLY_KEEP ;
2217
+ }
2218
+ }
2219
+ /* }}} */
2220
+
2221
+ static void clean_module_classes (int module_number TSRMLS_DC ) /* {{{ */
2222
+ {
2223
+ zend_hash_apply_with_argument (EG (class_table ), (apply_func_arg_t ) clean_module_class , (void * ) & module_number TSRMLS_CC );
2224
+ }
2225
+ /* }}} */
2226
+
2211
2227
void module_destructor (zend_module_entry * module ) /* {{{ */
2212
2228
{
2213
2229
TSRMLS_FETCH ();
2214
2230
2215
2231
if (module -> type == MODULE_TEMPORARY ) {
2216
2232
zend_clean_module_rsrc_dtors (module -> module_number TSRMLS_CC );
2217
2233
clean_module_constants (module -> module_number TSRMLS_CC );
2234
+ clean_module_classes (module -> module_number TSRMLS_CC );
2218
2235
}
2219
2236
2220
2237
if (module -> module_started && module -> module_shutdown_func ) {
You can’t perform that action at this time.
0 commit comments