From a73d60adaa95d5aa0558b66502b63930ad6fb176 Mon Sep 17 00:00:00 2001 From: Kenichi Ishigaki Date: Tue, 18 Sep 2012 07:07:29 +0000 Subject: [PATCH] patch from VOVKASM 3: too many mortals --- dbdimp.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dbdimp.c b/dbdimp.c index e135add..284c2e4 100644 --- a/dbdimp.c +++ b/dbdimp.c @@ -1242,18 +1242,18 @@ sqlite_compile_options() #define _stores_status(op, key) \ if (sqlite3_status(op, &cur, &hi, reset) == SQLITE_OK) { \ - anon = (HV*)sv_2mortal((SV*)newHV()); \ + anon = newHV(); \ hv_stores(anon, "current", newSViv(cur)); \ hv_stores(anon, "highwater", newSViv(hi)); \ - hv_stores(hv, key, newRV_inc((SV*)anon)); \ + hv_stores(hv, key, newRV_noinc((SV*)anon)); \ } #define _stores_dbstatus(op, key) \ if (sqlite3_db_status(imp_dbh->db, op, &cur, &hi, reset) == SQLITE_OK) { \ - anon = (HV*)sv_2mortal((SV*)newHV()); \ + anon = newHV(); \ hv_stores(anon, "current", newSViv(cur)); \ hv_stores(anon, "highwater", newSViv(hi)); \ - hv_stores(hv, key, newRV_inc((SV*)anon)); \ + hv_stores(hv, key, newRV_noinc((SV*)anon)); \ } #define _stores_ststatus(op, key) \ @@ -1264,7 +1264,7 @@ _sqlite_status(int reset) { dTHX; int cur, hi; - HV *hv = (HV*)sv_2mortal((SV*)newHV()); + HV *hv = newHV(); HV *anon; _stores_status(SQLITE_STATUS_MEMORY_USED, "memory_used"); @@ -1289,7 +1289,7 @@ _sqlite_db_status(pTHX_ SV* dbh, int reset) { D_imp_dbh(dbh); int cur, hi; - HV *hv = (HV*)sv_2mortal((SV*)newHV()); + HV *hv = newHV(); HV *anon; _stores_dbstatus(SQLITE_DBSTATUS_LOOKASIDE_USED, "lookaside_used"); @@ -1310,7 +1310,7 @@ HV * _sqlite_st_status(pTHX_ SV* sth, int reset) { D_imp_sth(sth); - HV *hv = (HV*)sv_2mortal((SV*)newHV()); + HV *hv = newHV(); _stores_ststatus(SQLITE_STMTSTATUS_FULLSCAN_STEP, "fullscan_step"); _stores_ststatus(SQLITE_STMTSTATUS_SORT, "sort"); @@ -1513,7 +1513,7 @@ sqlite_db_table_column_metadata(pTHX_ SV *dbh, SV *dbname, SV *tablename, SV *co const char *datatype, *collseq; int notnull, primary, autoinc; int rc; - HV *metadata = (HV*)sv_2mortal((SV*)newHV()); + HV *metadata = newHV(); if (!DBIc_ACTIVE(imp_dbh)) { sqlite_error(dbh, -2, "attempt to fetch table column metadata on inactive database handle");