}
pefree(H, dbh->is_persistent);
dbh->driver_data = NULL;
+ pdo_dblib_err_dtor(&H->err);
}
return 0;
}
}
/* }}} */
-static void pdo_dblib_err_dtor(pdo_dblib_err *err)
-{
- if (err->dberrstr) {
- efree(err->dberrstr);
- err->dberrstr = NULL;
- }
- if (err->lastmsg) {
- efree(err->lastmsg);
- err->lastmsg = NULL;
- }
- if (err->oserrstr) {
- efree(err->oserrstr);
- err->oserrstr = NULL;
- }
-}
-
static int pdo_dblib_stmt_cursor_closer(pdo_stmt_t *stmt)
{
pdo_dblib_stmt *S = (pdo_dblib_stmt*)stmt->driver_data;
return 0;
}
+void pdo_dblib_err_dtor(pdo_dblib_err *err)
+{
+ if (!err) {
+ return;
+ }
+
+ if (err->dberrstr) {
+ efree(err->dberrstr);
+ err->dberrstr = NULL;
+ }
+ if (err->lastmsg) {
+ efree(err->lastmsg);
+ err->lastmsg = NULL;
+ }
+ if (err->oserrstr) {
+ efree(err->oserrstr);
+ err->oserrstr = NULL;
+ }
+}
+
static PHP_GINIT_FUNCTION(dblib)
{
memset(dblib_globals, 0, sizeof(*dblib_globals));
char *lastmsg;
} pdo_dblib_err;
+void pdo_dblib_err_dtor(pdo_dblib_err *err);
+
typedef struct {
LOGINREC *login;
DBPROCESS *link;