mysqlnd_library_initted = TRUE;
_mysqlnd_init_ps_subsystem();
/* Should be calloc, as mnd_calloc will reference LOCK_access*/
- mysqlnd_global_stats = calloc(1, sizeof(MYSQLND_STATS));
-#ifdef ZTS
- mysqlnd_global_stats->LOCK_access = tsrm_mutex_alloc();
-#endif
+ mysqlnd_stats_init(&mysqlnd_global_stats);
}
}
/* }}} */
void mysqlnd_library_end(TSRMLS_D)
{
if (mysqlnd_library_initted == TRUE) {
-#ifdef ZTS
- tsrm_mutex_free(mysqlnd_global_stats->LOCK_access);
-#endif
- /* mnd_free will reference LOCK_access and crash...*/
- free(mysqlnd_global_stats);
+ mysqlnd_stats_end(mysqlnd_global_stats);
mysqlnd_global_stats = NULL;
mysqlnd_library_initted = FALSE;
}
/* }}} */
+/* {{{ mysqlnd_stats_init */
+void
+mysqlnd_stats_init(MYSQLND_STATS ** stats)
+{
+ *stats = calloc(1, sizeof(MYSQLND_STATS));
+#ifdef ZTS
+ (*stats)->LOCK_access = tsrm_mutex_alloc();
+#endif
+
+}
+/* }}} */
+
+
+/* {{{ mysqlnd_stats_end */
+void
+mysqlnd_stats_end(MYSQLND_STATS * stats)
+{
+#ifdef ZTS
+ tsrm_mutex_free(stats->LOCK_access);
+#endif
+ /* mnd_free will reference LOCK_access and crash...*/
+ free(stats);
+}
+/* }}} */
+
+
/*
* Local variables:
* tab-width: 4
void mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, zval *return_value
TSRMLS_DC ZEND_FILE_LINE_DC);
+
+void mysqlnd_stats_init(MYSQLND_STATS ** stats);
+void mysqlnd_stats_end(MYSQLND_STATS * stats);
+
#endif /* MYSQLND_STATISTICS_H */