smartdb icon indicating copy to clipboard operation
smartdb copied to clipboard

内存泄漏,如果打开db之后连续插入数据存在内存泄漏,需要修改database.hpp的prepare和close函数:

Open BreakingY opened this issue 1 year ago • 0 comments

bool prepare(const std::string& sql)
    {
        // 释放上一次的资源,否则内存泄漏
        if(statement_){
            sqlite3_finalize(statement_);
            statement_ = nullptr;
        }
        code_ = sqlite3_prepare_v2(db_handle_, sql.c_str(), -1, &statement_, nullptr);
        return code_ == SQLITE_OK;
    }
bool close()
    {
        if (db_handle_ == nullptr)
        {
            return true;
        }

        if(statement_){
            sqlite3_finalize(statement_);
            statement_ = nullptr;
        }
        //sqlite3_finalize(statement_);
        code_ = close_db_handle();
        //statement_ = nullptr;
        db_handle_ = nullptr;
        return code_ == SQLITE_OK;
    }

BreakingY avatar Jan 15 '24 03:01 BreakingY