mirror of
https://github.com/DBD-SQLite/DBD-SQLite
synced 2025-06-08 22:58:17 -04:00
savepv and free unprepared_statements attribute when necessary, to fix #11 (Grinnz++)
This commit is contained in:
parent
348ca9afb5
commit
01123b1321
1 changed files with 6 additions and 2 deletions
8
dbdimp.c
8
dbdimp.c
|
@ -895,10 +895,12 @@ sqlite_st_prepare_sv(SV *sth, imp_sth_t *imp_sth, SV *sv_statement, SV *attribs)
|
||||||
}
|
}
|
||||||
return FALSE; /* -> undef in lib/DBD/SQLite.pm */
|
return FALSE; /* -> undef in lib/DBD/SQLite.pm */
|
||||||
}
|
}
|
||||||
if (&extra) {
|
if (&extra && imp_dbh->allow_multiple_statements) {
|
||||||
imp_sth->unprepared_statements = extra;
|
imp_sth->unprepared_statements = savepv(extra);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
if (imp_dbh->allow_multiple_statements)
|
||||||
|
Safefree(imp_sth->unprepared_statements);
|
||||||
imp_sth->unprepared_statements = NULL;
|
imp_sth->unprepared_statements = NULL;
|
||||||
}
|
}
|
||||||
/* Add the statement to the front of the list to keep track of
|
/* Add the statement to the front of the list to keep track of
|
||||||
|
@ -1295,6 +1297,8 @@ sqlite_st_destroy(SV *sth, imp_sth_t *imp_sth)
|
||||||
imp_sth->stmt = NULL;
|
imp_sth->stmt = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (imp_dbh->allow_multiple_statements)
|
||||||
|
Safefree(imp_sth->unprepared_statements);
|
||||||
SvREFCNT_dec((SV*)imp_sth->params);
|
SvREFCNT_dec((SV*)imp_sth->params);
|
||||||
SvREFCNT_dec((SV*)imp_sth->col_types);
|
SvREFCNT_dec((SV*)imp_sth->col_types);
|
||||||
DBIc_IMPSET_off(imp_sth);
|
DBIc_IMPSET_off(imp_sth);
|
||||||
|
|
Loading…
Add table
Reference in a new issue